• Keine Ergebnisse gefunden

Universit¨at Karlsruhe (TH) Lehrstuhl f¨ur Programmierparadigmen

N/A
N/A
Protected

Academic year: 2022

Aktie "Universit¨at Karlsruhe (TH) Lehrstuhl f¨ur Programmierparadigmen"

Copied!
2
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Universit¨ at Karlsruhe (TH)

Lehrstuhl f¨ur Programmierparadigmen

Theorembeweiser und ihre Anwendungen SS 2009 http://pp.info.uni-karlsruhe.de/

Ubungsleiter:¨ Daniel Wasserrab wasserra@ipd.info.uni-karlsruhe.de

Ubungsblatt 10¨ Besprechung: 30.06.2009

1 Finger¨ ubungen: 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

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

oops

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

oops

2 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

(2)

TBA SS 2009 Ubungsblatt 10¨ S. 2

3 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 wie b range f haben, l¨asst sich daraus unmittelbar ein x 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

Referenzen

ÄHNLICHE DOKUMENTE

Je nachdem welche Programmiersprache ihnen am besten liegt k¨ onnen Sie ihren Compiler in C/C++ oder Java entwickeln. Die sp¨ ater f¨ ur Optimierungen benutze Bibliothek

Die lexikalische Analyse ist strenggenommen nur eine Optimierung, die die Eingabe in eine Form bringt die besser f¨ ur die syntaktische Analyse geeignet ist.. Sie f¨ uhrt zu

Zwar ist ASCII heutzutage so gut wie ¨ uberall unterst¨ utzt, viele Sprachen ben¨ otigen aber weitere Zeichen die in ASCII nicht enthalten sind. Typische ASCII-Erweiterungen im

Es wird also anscheinend kein speziellere Datentyp f¨ ur Closures angelegt, der einen Funktionszeiger und einen Zeiger auf die Umgebung

• Nehmen Sie an die Anzahl der Register ist auf 3 beschr¨ ankt, spielt die Auswertungsreihenfolge bei den Ausdr¨ ucken jetzt noch eine Rolle. Aufgabe

Konstruieren Sie unter der Voraussetzung, dass alle nicht konstanten Operanden im Arbeitsspeicher stehen, Syntaxb¨ aume f¨ ur die folgenden Anweisungen:. 1. x = x

Skizzieren Sie Anordnung der Objekte auf dem Heap f¨ ur die Stelle nach dem Aufruf von ’A.create()’ unter der Annahme, dass beim Start der main Methode der Heap v¨ ollig leer

Semantische Analyse: Namensanalyse, Typanalyse, Operatoridentifikation, Konsistenzpr¨ ufung, Sprach- abh¨ angige Sonderaufgaben, Struktur¨ aquivalenz, Definitionstabelle,