• Keine Ergebnisse gefunden

Lehrstuhl f¨ur Programmierparadigmen Daniel Wasserrab

N/A
N/A
Protected

Academic year: 2022

Aktie "Lehrstuhl f¨ur Programmierparadigmen Daniel Wasserrab"

Copied!
3
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Lehrstuhl f¨ ur Programmierparadigmen

Daniel Wasserrab

daniel.wasserrab@kit.edu

Theorembeweiserpraktikum – SS 2010

http://pp.info.uni-karlsruhe.de/lehre/SS2010/tba

Blatt 6: Lesbare Beweise mit Isar Besprechung: 18.05.2010

1 Nat¨ urliches Schließen mittels Isar

Wir wollen in dieser Aufgabe einige Aussagen von Blatt 1 nochmals beweisen – diesmal jedoch mittels Verwendung von Isar. Versuchen Sie dabei, das Beweisskript analog Ihren ¨Uberlegungen und dabei so

¨ubersichtlich und verst¨andlich wie m¨oglich zu halten.

Hinweise:

• Sie d¨urfen Fallunterscheidungen benutzen, jedochnurinproof Statements, alsoproof(cases P).

• Sie d¨urfen auchsimpbenutzen, allerdings nur mit Optiononly und vorher bewiesenen Lemmas (also keinauto!)

• Aussagen, die durch from, hence, thus, with etc. zum Beweis hinzugef¨ugt werden, werden nicht automatisch zu Pr¨amissen. Oftmals muss also vor Anwendung eines erule (manchmal auch einesrule) erst die Regel mittels eines apply -“zusammengef¨ugt” werden.

by assumptionkann durch. abgek¨urzt werden

• Evtl. k¨onnten Sie f¨ur Widerspruchsbeweise dieses Lemma brauchen:

ccontr: P = False) = P

• Sie d¨urfen auch gerne die Reihenfolge der Lemmas ver¨andern, wenn Sie eines zum Beweis eines anderen verwenden wollen

Beispiel:

lemma imp uncurry: "(P −→ (Q −→ R)) −→ P Q −→ R"

proof

assume pqr:"P −→ Q −→ R"

show "P Q −→ R"

proof

assume "P Q"

hence "P" and "Q" by -(erule conjE,assumption)+

from pqr ‘P‘ have "Q −→ R" by(rule mp) with ‘Q‘ show "R" by -(rule mp)

qed qed

(2)

Und jetzt Sie:

lemma "A B −→ B A"

oops

lemma "(A B) −→ (A B)"

oops

lemma "((A B) C) −→ A (B C)"

oops

lemma "(A A) = (A A)"

oops

lemma S: "(A −→ B −→ C) −→ (A −→ B) −→ A −→ C"

oops

lemma "(A −→ B) −→ (B −→ C) −→ A −→ C"

oops

lemma "¬ ¬ A −→ A"

oops

lemma "A −→ ¬ ¬ A"

oops

lemma "(¬ A −→ B) −→ B −→ A)"

oops

lemma "((A −→ B) −→ A) −→ A"

oops

lemma "(A −→ B) = (¬ A B)"

oops

lemma "(¬ (A B)) = (¬ A ∧ ¬ B)"

oops

lemma "(¬ (A B)) = (¬ A ∨ ¬ B)"

oops

2 Quantoren in Isar

Beweisen Sie folgende Aussagen mittels eines strukturierten Beweises in Isar. Sie d¨urfen zwar auto- matische Taktiken verwenden, jedoch bitte nicht um das gesamte Lemma zu beweisen, die Beweisidee soll strukturiert aufgeschrieben werden.

Hinweis: wenn Sie eine Aussage und die entsprechend negierte Aussage in Ihren Annahmen ha- ben, k¨onnen Sie den entsprechenden Ausdruck gleich zu False auswerten lassen mittels der Taktik contradiction.

lemma assumes "∃x. y. P x y" shows "∀y. x. P x y"

oops

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

oops

Theorembeweiserpraktikum – ¨Ubung 6 2

(3)

lemma "(∀x. P x −→ Q) = ((∃x. P x) −→ Q)"

oops

lemma "∃x. P x −→ (∀x. P x)"

oops

3 R¨ atsel: Der reiche Großvater

Zeigen Sie, dass folgende Aussage gilt:

Wenn jeder arme Mann einen reichen Vater hat, dann gibt es einen reichen Mann mit einem reichen Großvater theorem "∀x. ¬ rich x −→ rich (father x)

=⇒ ∃y. rich y rich(father(father y))"

oops

Hinweise:

• Gibt es ¨uberhaupt einen reichen Mann?

• Uberlegen Sie sich den Beweis erst auf Papier und versuchen Sie ihn dann m¨¨ oglichst analog in Isar zu formulieren

• Sie werden in jedem Fall Fallunterscheidungen brauchen

4 Cantors Theorem

Sie sollen nun Cantors Theorem beweisen; dieses sagt aus, dass es keine surjektive Funktion von einer Menge auf ihre Potenzmenge geben kann. Formalisiert:

theorem "∃S. S / range (f :: ’a ’a set)"

Dabei bezeichnetrange f die Wertemenge einer Funktion.

Hinweise:

• Der Knackpunkt des Beweises ist das Finden der richtigen Menge S. Versuchen Sie es erstmal alleine, erinnern Sie sich (falls bekannt) an das sogenannteCantor’sche Diagonalverfahren. An- sonsten versuchen Sie ihr Gl¨uck im Internet, der Name der ¨Ubung sollte Hinweis genug sein

;)

• Auch hier sollten Sie sich Ihren Beweis erst auf Papier ¨uberlegen und dann m¨oglichst analog in Isar ¨ubertragen

• Falls Sie eine Aussage wieb range f haben, l¨asst sich daraus unmittelbar einx ausw¨ahlen (“obtainen”), so dass b = f x gilt, da die Regel rangeE:[[b range f; V

x. b = f x = P]] = P als Eliminationsregel in allen Taktiken des automatischen Schließens existiert

Theorembeweiserpraktikum – ¨Ubung 6 3

Referenzen

ÄHNLICHE DOKUMENTE

Zu jedem (Interferenz-)Graphen l¨ asst sich ein passendes Programm (mit einer Gr¨ osse linear in der Anzahl der Kanten) angeben. Ein Programm l¨ asst sich in polynomieller Zeit

Es gibt daf¨ ur zwei Operationen, welche f¨ ur Up-Casts typsicher sind, static cast und dynamic cast (Bemerkung: C-Style Casts, also z.B. (C)b sind nicht typsicher, sollten also mit

Die Big-Step und Small-Step-Semantiken verwenden f¨ ur Ausdr¨ ucke die Semantikfunktionen A J K und B J K , die f¨ ur alle Ausdr¨ ucke und Zust¨ ande definiert sind und in einem

4.1 wurde eine Small-Step-Semantik f¨ ur die idealisierte Assembler-Sprache ASM

Die Maschine, auf der die ¨ ubersetzten Ausdr¨ ucke abgearbeitet werden sollen, nimmt eine Liste von Instruktionen, einen (anfangs leeren) Stack und einen Zustand mit der

Beachte dass sich diese Implementierung nicht direkt mit der Implementierung von for mittels while kombinieren l¨ asst, da auch bei continue die Z¨ ahlvariable erh¨ oht werden

Somit l¨ asst sich nicht garantieren, dass die L¨ osung als F¨ arbung f¨ ur das urspr¨ ungliche Programm

• Gibt es an einer Gabelung im Ablaufgraph mehrere n¨ achste Verwendungen, so soll der kleinste Wert ubernommen werden. Die n¨ achste Benutzung von y innerhalb der Schleife ist also