FürSollte ich universelle Quantifizierung in der Lemma-Formulierung verwenden?
datatype natural = Zero | Succ natural
primrec add :: "natural ⇒ natural ⇒ natural"
where
"add Zero m = m"
| "add (Succ n) m = Succ (add n m)"
I
beweisenlemma add_succ_right: "⋀ m n. add m (Succ n) = Succ (add m n)"
Für mathematische zu sein, ist es wichtig, Allquantifizierung zu haben. Doch für die Nutzung dieser Tatsache in dem Vereinfacher, ist es besser, es zu tun, ohne:
lemma add_succ_right_rewrite: "add m (Succ n) = Succ (add m n)"
Was ist die gemeinsame Weisheit über diese Versionen, die man soll ich unter welchen Umständen bevorzugen?
"Freie Variablen in Lemma-Anweisungen werden automatisch quantifiziert" - mithilfe von schematischen Variablen in der bewiesenen Aussage? – Gergely
Ja, freie Variablen und werden automatisch in schematische Variablen umgewandelt, wenn sie den Bereich verlassen, in dem sie festgelegt sind (entweder explizit mit 'fixes' oder implizit als Teil des Befehls 'lemma'). –