Ich habe Probleme, das Konzept von multiple successes
in Coq (8.5p1, ch9.2) Verzweigung und Backtracking-Verhalten zu verstehen. Zum Beispiel aus der Dokumentation:mehrere Erfolge bei Coq-Verzweigungen und Backtracking?
Backtracking Verzweigung
Wir sind mit der folgenden Struktur verzweigen:
ausdr1 + expr2
Taktik kann mit mehreren Erfolgen zu sehen. Wenn eine Taktik fehlschlägt fragt es nach mehr Erfolgen der vorherigen Taktik. expr1 + expr2 hat alle die Erfolge von v1 gefolgt von allen Erfolgen von v2.
Was ich nicht verstehe, ist, warum brauchen wir in erster Linie mehrere Erfolge? Ist nicht ein Erfolg gut genug, um einen Beweis zu beenden?
Auch aus der Dokumentation, so scheint es, dass es weniger kostspielig Verzweigungs Regeln sind, die irgendwie „voreingenommen“ sind, einschließlich
first [ expr1 | ::: | exprn ]
und
expr1 || expr2
Warum wir die kostspieligere Option brauchen +
und nicht immer die letzteren, effizientere taktische?