• Keine Ergebnisse gefunden

2 Reflexiv-transitive H¨ ulle

N/A
N/A
Protected

Academic year: 2022

Aktie "2 Reflexiv-transitive H¨ ulle"

Copied!
1
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 11¨ Besprechung: 07.07.2009

1 Rotation mal ungew¨ ohnlich

Wir definieren eine Funktion auf Listen, welche das erste Element an die letzte Stelle schiebt:

fun rot :: "’a list ’a list"

where "rot [] = []"

| "rot [x] = [x]"

| "rot (x#y#zs) = y # rot(x#zs)"

Die von Isabelle automatisch erstellte Rekursionsregel lautet rot.induct:

[[P []; V

x. P [x]; V

x y zs. P (x # zs) = P (x # y # zs)]] = P a0

Damit beweisen Sie bitte folgende Aussagen mittels einesverst¨andlichen Isar-Beweises:

lemma "length (rot xs) = length xs"

oops

lemma "xs 6= [] = rot xs = tl xs @ [hd xs]"

oops

2 Reflexiv-transitive H¨ ulle

Wir definieren die reflexiv-transitive H¨ulle einer bin¨aren Pr¨adikatsrmittels eines induktiven Pr¨adikats:

inductive rtc :: "(’a ’a bool) ’a ’a bool" ("( *)" [1000] 1000) for r::"’a ’a bool"

where refl: "r* x x"

| step: "[[r x y; r* y z]] = r* x z"

Anstattrtc r darf man alsor* schreiben. Auch hier generiert Isabelle automatisch eine Induktionsre- gel rtc.induct: [[r* x1 x2; V

x. P x x; V

x y z. [[r x y; r* y z; P y z]] = P x z]] = P x1 x2 Zeigen Sie jetzt, dassr* tats¨achlich transitiv ist:

lemma "[[r* x y; r* y z]] = r* x z"

oops

Außerdem beweisen Sie noch, dass r* idempotent (die reflexiv-transitive H¨ulle von r* gleich r*) ist.

Dazu brauchen Sie folgende Aussage:ext: (V

x. ?f x = ?g x) = ?f = ?g lemma rtc idemp: "(r*)* = r*"

proof(rule ext)+

oops

Alle Beweise sollen nat¨urlich mittels Isar erstellt werden.

Referenzen

ÄHNLICHE DOKUMENTE

Achtung: Die Berechnung von 4 × 4-Determinanten funktioniert nicht v¨ ollig analog, hier egeben sich insgesamt 24 Summanden (mit einer nicht ganz so regelm¨ aßigen Struktur) mit je

Kontrolliere, ob diese drei Vektoren linear unabh¨ angig sind.. ~ u zeigt die Projektionsrichtung bei der Projektion auf

Wir nehmen an, dass die Wahrscheinlichkeit eines Digraphen mit n Knoten und m Kanten eine Funktion (nur) von n und m istm. Daraus folgt (wir lassen der Einfachheit halber

Wir nehmen an, dass die Wahrscheinlichkeit eines Digraphen mit n Knoten und m Kanten eine Funktion (nur) von n und m istm. Daraus folgt (wir lassen der Einfachheit halber

On economical construction of the transitive closure of an oriented graph.

Durchlaufe Graphen, indem wir, solange m¨ oglich, den vordersten Knoten v aus der Queue nehmen, ihn behandeln und die Liste seiner noch nicht behandelten Nachbarn in die Queue

should be solved at home and delivered at Wednesday, the 7th November, before the beginning of

a.3 Wenn ein lineares Gleichungssystem mit n Gleichungen und n Variablen lösbar ist, dann ist die Lösung eindeutig.. a.4 Ein lineares Gleichungssystem mit mehr Gleichungen als