Betrachten wir als Beispiel die folgende Definition von Ungleichheit der natürlichen Zahlen in Isabelle:Wie kann ich Irreflexität einer induktiv definierten Beziehung in Isabelle nachweisen?
inductive unequal :: "nat ⇒ nat ⇒ bool" where
zero_suc: "unequal 0 (Suc _)" |
suc_zero: "unequal (Suc _) 0" |
suc_suc: "unequal n m ⟹ unequal (Suc n) (Suc m)"
I Irreflexivität von unequal
beweisen wollen, das heißt, ¬ unequal n n
. Für die Zwecke Abbildung lassen beweisen mir zuerst die erfundene Lemma ¬ unequal (n + m) (n + m)
:
lemma "¬ unequal (n + m) (n + m)"
proof
assume "unequal (n + m) (n + m)"
then show False
proof (induction "n + m" "n + m" arbitrary: n m)
case zero_suc
then show False by simp
next
case suc_zero
then show False by simp
next
case suc_suc
then show False by presburger
qed
qed
In den ersten beiden Fällen False
müssen aus den Annahmen abgeleitet werden 0 = n + m
und Suc _ = n + m
, die trivial ist.
Ich würde erwarten, dass der Nachweis von ¬ unequal n n
kann in analoger Weise durchgeführt werden, das heißt, nach dem folgende Muster:
lemma "¬ unequal n n"
proof
assume "unequal n n"
then show False
proof (induction n n arbitrary: n)
case zero_suc
then show False sorry
next
case suc_zero
then show False sorry
next
case suc_suc
then show False sorry
qed
qed
Insbesondere würde ich erwarten, dass in den ersten beiden Fällen, I die Annahmen 0 = n
und Suc _ = n
erhalten. Jedoch bekomme ich überhaupt keine Annahmen, was bedeutet, dass ich gebeten werde, False
aus dem Nichts zu beweisen. Warum ist das und wie kann ich den Beweis für Ungleichheit erbringen?
Induktion über "ungleich" ist eigentlich was ich wollte. Mein tatsächliches Problem ist nicht Ungleichheit, sondern Bisimilarität. In dieser Situation ist die von Ihnen beschriebene Lösung nicht wirklich eine Option. Und ich verstehe nicht, warum Induktion über "ungleich" hier nicht funktioniert. Immerhin hat es im Beispiel mit 'n + m' funktioniert. –
Nachdem ich den Teil der Induktionsbeweismethode im Isabelle/Isar Referenzhandbuch sorgfältig studiert hatte, fand ich die Lösung für mein Problem. Ich werde die Frage in Kürze selbst beantworten. Trotzdem, danke für deine Mühe. –
Ok. Ich freue mich auf deine Antwort. – Bruno