Widerspruch Muster zum ausdrucken

Condividi con i tuoi amici

Dieser Befehl gilt für jedes Ziel. Der Argumentbegriff muss ein freier Teilbegriff des aktuellen Ziels sein. Das Befehlsmuster führt die Erweiterung des aktuellen Ziels (z. B. T) durch diese Taktik durch diese Taktik aus. Die Widerspruchstaktik versucht, im aktuellen Kontext (nach allen Intros) eine Hypothese zu finden, die einem leeren induktiven Typ (z.B. False), der Negation eines singletons induktiven Typs (z.B. True oder x=x) oder zwei widersprüchlichen Hypothesen entspricht. Dieser Befehl fügt der Hinweisliste mit dem Kopfsymbol des Begriffstyps einen einfachen Anwendenterm hinzu. Die Kosten für diesen Hinweis ist die Anzahl der Teilziele, die durch einfache Anwendung Begriff oder Num generiert, wenn angegeben. Das zugeordnete Muster wird aus der Schlussfolgerung des Begriffstyps oder des angegebenen Musters abgeleitet, falls angegeben. Für den Fall, dass die abgeleitete Art des Begriffs nicht mit einem Produkt beginnt, ist die Taktik, die in der Hinweisliste hinzugefügt wird, der genaue Begriff. Falls dieser Typ jedoch auf einen Typ reduziert werden kann, der mit einem Produkt beginnt, wird der taktische einfache Anwendungsbegriff auch in der Hinweisliste gespeichert.

Wenn der abgeleitete Begriffstyp eine abhängige Quantifizierung einer Variablen enthält, die nur in den Prämissen des Typs und nicht in seiner Schlussfolgerung vorkommt, kann keine Instanz für die Variable durch Vereinheitlichung mit dem Ziel abgeleitet werden. In diesem Fall wird der Hinweis zur Hinweisliste von eauto anstelle der Hinweisliste des automatischen Teils hinzugefügt und eine Warnung wird gedruckt. Ein typisches Beispiel für einen Hinweis, der nur von eauto verwendet wird, ist ein Transitiv-Lemma. Steuert bei Intros intropattern_list, wie ein Konjunktivmuster behandelt wird, das nicht genügend einfache Muster enthält, um alle Argumente im Konstruktor abzugleichen. Wenn festgelegt (Standardeinstellung), generiert Coq zusätzliche Namen, die der Anzahl der Argumente entsprechen. Wenn Sie das Flag aufsetzen, werden stattdessen die zusätzlichen Hypothesen in das Ziel gesetzt, ein Verhalten, das den Intro-Mustern von SSReflect ähnlicher ist. Mit Einführungsmustern können Sie den Namen angeben, der Variablen und Hypothesen zugewiesen werden soll, die durch Taktiken eingeführt werden. Sie können auch eine eingeführte Hypothese in mehrere Hypothesen oder Unterziele aufteilen. Häufige Taktiken, die Intro-Muster akzeptieren, sind Behauptung, Intros und Zerstörung.

Wenn z. B. das aktuelle Ziel T als “(varphi)(t) aussprechbar ist, bei dem die Notation alle Instanzen von t in .(`varphi`)(t) erfasst, dann wandelt pattern t es in (Spaß x:A => `(`varphi`)(x)) t um. Diese Taktik kann z. B. dann angewendet werden, wenn die anzuwendende Taktik beim Matching fehlschlägt. Hier haben Sie entweder die Passage, die 3 Probleme oder Lösungen vorschlägt, und den Vortrag, der entweder Lösungen für die Probleme bietet oder Zweifel an den Lösungen aufkommen lässt. Das ist in gewissem Sinne ein Gegenwort, oder man kann es als Widerspruchstyp bezeichnen.

Diese Taktik gilt für jedes Ziel. Der Argumentbegriff ist ein Begriff, der im lokalen Kontext wohlgeformt ist, und der Argumentident ist eine Hypothese des Kontextes. Der taktikanwendenBegriff in ident versucht, die Schlussfolgerung des Typs des Identis mit einer nicht abhängigen Prämisse der Art des Begriffs abzugleichen, und versucht sie von rechts nach links. Wenn dies gelingt, wird die Aussage des Hypothesenidentes durch die Schlussfolgerung der Art des Begriffs ersetzt. Die Taktik gibt auch so viele Teilziele zurück wie die Anzahl anderer nicht abhängiger Räumlichkeiten in der Art des Begriffs und der nicht abhängigen Räumlichkeiten des Typs von Ident. Wenn die Schlussfolgerung des Begriffsnichts nicht mit dem Ziel übereinstimmt und die Schlussfolgerung ein induktiver Typ ist, der isomorph zu einem Tupeltyp ist, dann wird das Tupel (rekursiv) zersetzt und die erste Komponente des Tupels, von der eine nicht abhängige Prämisse mit der Schlussfolgerung des Typs des Identis übereinstimmt. Die Tupeln werden in einer breiten ersten Reihenfolge von links nach rechts zersetzt (z. B.

wenn der Typ von H1 A ->B ist und der Typ H2 A ist, dann wird H1 in H2 angewendet, um den Typ Von H2 in B umwandelt). Die anwendung Taktik basiert auf Muster erster Ordnung, die mit abhängigen Typen übereinstimmen. Dies verhält sich im Allgemeinen als Inversion, verwendet aber Namen in or_and_intropattern_loc zum Benennen von Hypothesen. Die or_and_intropattern_loc muss das Formular [p11 … p1n | … | pm1 … pmn ] wobei m die Anzahl der Konstruktoren des Typs des Identisten ist.

Condividi sui Social