• Keine Ergebnisse gefunden

Rechner¨ubung zu Theorembeweiser und ihre Anwendungen

N/A
N/A
Protected

Academic year: 2022

Aktie "Rechner¨ubung zu Theorembeweiser und ihre Anwendungen"

Copied!
10
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Rechner¨ ubung zu Theorembeweiser und ihre Anwendungen

Prof. Dr.-Ing. Gregor Snelting Dipl.-Inf. Univ. Daniel Wasserrab

Lehrstuhl Programmierparadigmen IPD Snelting

Universit¨at Karlsruhe (TH)

(2)

Teil X

Strukturierte Beweise mittels Isar:Quantoren

IPD Snelting, Uni Karlsruhe (TH) Rechner¨ubung TBA Sommersemester 2009 73 / 76

(3)

Allquantoren in zu zeigenden Aussagen

Wie gehe ich mit Parametern um?

Beispiel:

lemma assumes "¬(∃x. ¬P x)" shows "∀x. P x"

proof

nach Anwendung vonproof (implizitallI) subgoal:x. P x doch show "∀x. P x"funktioniert nicht!

Parameter m¨ussen zu Beginn des Beweises “gefixt” werden:

a b c. Pwird zu fix a b c und show P Unser Beispiel:

lemma assumes "¬(∃x. ¬P x)" shows "∀x. P x"

proof fix x

show "P x" . . . qed

(4)

Allquantoren in zu zeigenden Aussagen

Wie gehe ich mit Parametern um?

Beispiel:

lemma assumes "¬(∃x. ¬P x)" shows "∀x. P x"

proof

nach Anwendung vonproof (implizitallI) subgoal:x. P x doch show "∀x. P x"funktioniert nicht!

Parameter m¨ussen zu Beginn des Beweises “gefixt” werden:

a b c. Pwird zu fix a b c und show P Unser Beispiel:

lemma assumes "¬(∃x. ¬P x)" shows "∀x. P x"

proof fix x

show "P x" . . . qed

IPD Snelting, Uni Karlsruhe (TH) Rechner¨ubung TBA Sommersemester 2009 74 / 76

(5)

Allquantoren in zu zeigenden Aussagen

Wie gehe ich mit Parametern um?

Beispiel:

lemma assumes "¬(∃x. ¬P x)" shows "∀x. P x"

proof

nach Anwendung vonproof (implizitallI) subgoal:x. P x doch show "∀x. P x"funktioniert nicht!

Parameter m¨ussen zu Beginn des Beweises “gefixt” werden:

a b c. Pwird zu fix a b c und show P Unser Beispiel:

lemma assumes "¬(∃x. ¬P x)" shows "∀x. P x"

proof fix x

show "P x" . . . qed

(6)

Repr¨ asentanten

Um aus Existenzquantoren Repr¨asentanten zu erhalten, obtain Syntax: obtainRepr¨asentant where Aussage Beweis

Beispiel:

lemma "∃x. P x =⇒ ¬( x. ¬ P x)"

proof

assume ex: "∃x. P x"

from ex obtain z where "P z" by blast . . .

Repr¨asentantenname kann beliebig gew¨ahlt sein (nicht vorhandene Variable!)

Aussage nachwhere kann beliebigen Namen erhalten auch aus Allquantorobtainm¨oglich

IPD Snelting, Uni Karlsruhe (TH) Rechner¨ubung TBA Sommersemester 2009 75 / 76

(7)

Repr¨ asentanten

Um aus Existenzquantoren Repr¨asentanten zu erhalten, obtain Syntax: obtainRepr¨asentant where Aussage Beweis

Beispiel:

lemma "∃x. P x =⇒ ¬( x. ¬ P x)"

proof

assume ex: "∃x. P x"

from ex obtain z where "P z" by blast . . .

Repr¨asentantenname kann beliebig gew¨ahlt sein (nicht vorhandene Variable!)

Aussage nachwhere kann beliebigen Namen erhalten auch aus Allquantorobtainm¨oglich

(8)

obtain-Beweise

Was genau passiert bei den obtain-Beweisen?

Isabelle baut aus Zeile obtain x where "P x"

Beweisziel(∀x. P x = thesis) = thesis (thesis beliebige Aussage) Also (mittels geeigneter Annahmen) linke Seite der

"P x = thesis"–Metaimplikation zeigen f¨ur beliebigex

Trotzdem Keine Panik!

Wenn nachwhere exakt Aussage einer Existanzaussage, Beweis einfach mittel blast

auch sonst meist Beweis mittelsblast oder auto manchmal evtl. noch Fallunterscheidung n¨otig (z.B. Repr¨asentant ist Tupel)

IPD Snelting, Uni Karlsruhe (TH) Rechner¨ubung TBA Sommersemester 2009 76 / 76

(9)

obtain-Beweise

Was genau passiert bei den obtain-Beweisen?

Isabelle baut aus Zeile obtain x where "P x"

Beweisziel(∀x. P x = thesis) = thesis (thesis beliebige Aussage) Also (mittels geeigneter Annahmen) linke Seite der

"P x = thesis"–Metaimplikation zeigen f¨ur beliebigex Trotzdem Keine Panik!

Wenn nachwhere exakt Aussage einer Existanzaussage, Beweis einfach mittel blast

auch sonst meist Beweis mittelsblast oder auto manchmal evtl. noch Fallunterscheidung n¨otig (z.B. Repr¨asentant ist Tupel)

(10)

obtain-Beweise

Was genau passiert bei den obtain-Beweisen?

Isabelle baut aus Zeile obtain x where "P x"

Beweisziel(∀x. P x = thesis) = thesis (thesis beliebige Aussage) Also (mittels geeigneter Annahmen) linke Seite der

"P x = thesis"–Metaimplikation zeigen f¨ur beliebigex Trotzdem Keine Panik!

Wenn nachwhere exakt Aussage einer Existanzaussage, Beweis einfach mittel blast

auch sonst meist Beweis mittelsblast oder auto manchmal evtl. noch Fallunterscheidung n¨otig (z.B. Repr¨asentant ist Tupel)

IPD Snelting, Uni Karlsruhe (TH) Rechner¨ubung TBA Sommersemester 2009 76 / 76

Referenzen

ÄHNLICHE DOKUMENTE

Anweisungen: alle strukturierten Kontrollanweisungen (if, Schleifen, break, continue, return) keine unstrukturierten (goto, switch, longjmp) Variablen: globale und lokale auto

eliminiert die passende Pr¨ amisse und ersetzt Beweis der Konklusion der Regel durch Beweise der weiteren Pr¨ amissen der Regel. andere vorhandene Pr¨ amissen bleiben

meist nicht gewollt, da schlecht Aussagen dar¨ uber m¨ oglich Besser: entsprechende Variable gleich festlegen.. Methodik: rule_tac v1 =

nat¨ urliche Zahl (ungleich 0) ist Nachfolger einer nat¨ urlichen Zahl nichtleere Liste ist Liste mit zus¨ atzlichem Kopfelement.. nichtleere Menge ist Menge mit einem zus¨

Analog: Ganze Pr¨ amissen instantiieren ebenso eckige Klammer,. Schl¨ usselwort OF ,

was passiert jedoch, wenn ein “Teillemma” nur gezeigt werden kann, wenn Induktionshypothese bestimmte Variablen allquantifizieren muss. Kennen allgemein schon die L¨ osung:

Lemma besteht aus Pr¨ amissen und Konklusion, dann Liste der Pr¨ amissen nach Schl¨ usselwort assumes, evtl.. Lemma mit Pr¨ amissen

voriger Ansatz mit Benamung der F¨ alle kann nicht funktionieren Jedoch trotzdem case m¨ oglich durch Nummerierung der F¨ alle angegebene F¨ alle bekommen nach Reihenfolge Nummer.