Definitorische Konstruktion induktiver Datentypen in Isabelle/HOL



Ähnliche Dokumente
4. Musterlösung. Problem 1: Kreuzende Schnitte **

Methoden der innerbetrieblichen Leistungsverrechnung

Funktionsgleichungen folgende Funktionsgleichungen aus der Vorlesung erhält. = e

1 Definition und Grundbegriffe

Nernstscher Verteilungssatz

FORMELSAMMLUNG STATISTIK (I)

Für jeden reinen, ideal kristallisierten Stoff ist die Entropie am absoluten Nullpunkt gleich

Kreditpunkte-Klausur zur Lehrveranstaltung Projektmanagement (inkl. Netzplantechnik)

Polygonalisierung einer Kugel. Verfahren für die Polygonalisierung einer Kugel. Eldar Sultanow, Universität Potsdam,

12 LK Ph / Gr Elektrische Leistung im Wechselstromkreis 1/ ω Additionstheorem: 2 sin 2 2

Beim Wiegen von 50 Reispaketen ergaben sich folgende Gewichte X(in Gramm):

Praktikum Physikalische Chemie I (C-2) Versuch Nr. 6

4.6 Das Pumping-Lemma für reguläre Sprachen:

Gruppe. Lineare Block-Codes

Seminar Analysis und Geometrie Professor Dr. Martin Schmidt - Markus Knopf - Jörg Zentgraf. - Fixpunktsatz von Schauder -

Ionenselektive Elektroden (Potentiometrie)

nonparametrische Tests werden auch verteilungsfreie Tests genannt, da sie keine spezielle Verteilung der Daten in der Population voraussetzen

2 Zufallsvariable und Verteilungen

Lineare Regression (1) - Einführung I -

Free Riding in Joint Audits A Game-Theoretic Analysis

6. Modelle mit binären abhängigen Variablen

Elemente der Mathematik - Sommer 2016

Flußnetzwerke - Strukturbildung in der natürlichen Umwelt -

2. Nullstellensuche. Eines der ältesten numerischen Probleme stellt die Bestimmung der Nullstellen einer Funktion f(x) = 0 dar.

Netzwerkstrukturen. Entfernung in Kilometer:

Ich habe ein Beispiel ähnlich dem der Ansys-Issue [ansys_advantage_vol2_issue3.pdf] durchgeführt. Es stammt aus dem Dokument Rfatigue.pdf.

Einbau-/Betriebsanleitung Stahl-PE-Übergang Typ PESS / Typ PESVS Originalbetriebsanleitung Für künftige Verwendung aufbewahren!

18. Dynamisches Programmieren

binäre Suchbäume Informatik I 6. Kapitel binäre Suchbäume binäre Suchbäume Rainer Schrader 4. Juni 2008 O(n) im worst-case Wir haben bisher behandelt:

IT- und Fachwissen: Was zusammengehört, muss wieder zusammenwachsen.

3.2 Die Kennzeichnung von Partikeln Partikelmerkmale

Für wen ist dieses Buch? Was ist dieses Buch? Besonderheiten. Neu in dieser Auflage

Konkave und Konvexe Funktionen

3. Lineare Algebra (Teil 2)

Zinseszinsformel (Abschnitt 1.2) Begriffe und Symbole der Zinsrechnung. Die vier Fragestellungen der Zinseszinsrechnung 4. Investition & Finanzierung

Wir betrachten in diesem Abschnitt Matrixspiele in der Maximierungsform, also endliche 2 Personen Nullsummenspiele der Gestalt

Statistik und Wahrscheinlichkeit

1.1 Das Prinzip von No Arbitrage

Netzsicherheit I, WS 2008/2009 Übung 3. Prof. Dr. Jörg Schwenk

Institut für Stochastik Prof. Dr. N. Bäuerle Dipl.-Math. S. Urban

ERP Cloud Tutorial. E-Commerce ECM ERP SFA EDI. Backup. Preise erfassen.

Sei T( x ) die Tangente an den Graphen der Funktion f(x) im Punkt ( x 0, f(x 0 ) ) : T( x ) = f(x 0 ) + f (x 0 ) ( x - x 0 ).

Aufgabe 8 (Gewinnmaximierung bei vollständiger Konkurrenz):

1 BWL 4 Tutorium V vom

Analysis I. Vorlesung 17. Logarithmen. R R, x exp x,

Spiele und Codes. Rafael Mechtel

Lösungen der Aufgaben zu Kapitel 2

1 - Prüfungsvorbereitungsseminar

Das zum dualen Problem (10.2) gehörige Barriere-Problem lautet analog

Informatik II. Minimalpolynome und Implikanten. Minimalpolynome. Minimalpolynome. Rainer Schrader. 27. Oktober Was bisher geschah: Definition

Franzis Verlag, Poing ISBN Autor des Buches: Leonhard Stiny

Standortplanung. Positionierung von einem Notfallhubschrauber in Südtirol. Feuerwehrhaus Zentrallagerpositionierung

1.1 Grundbegriffe und Grundgesetze 29

Der Satz von COOK (1971)

Finanzwirtschaft. Kapitel 3: Simultane Investitions- und Finanzplanung. Lehrstuhl für Finanzwirtschaft - Universität Bremen 1

Lehrstuhl für Empirische Wirtschaftsforschung und Ökonometrie Dr. Roland Füss Statistik II: Schließende Statistik SS 2007

Stochastische Prozesse

6. Übung zur Linearen Algebra II

Wechselstrom. Dr. F. Raemy Wechselspannung und Wechselstrom können stets wie folgt dargestellt werden : U t. cos (! t + " I ) = 0 $ " I

3.3 Lineare Abbildungen und Matrizen

Lösungen zum 3. Aufgabenblock

Übungsklausur zur Vorlesung Wahrscheinlichkeit und Regression Lösungen. Übungsklausur Wahrscheinlichkeit und Regression Die Lösungen

"Zukunft der Arbeit" Arbeiten bis 70 - Utopie - oder bald Realität? Die Arbeitnehmer der Zukunft

Grundlagen der makroökonomischen Analyse kleiner offener Volkswirtschaften

Einführung in die Finanzmathematik

Prof. Dr. Jürgen Dassow Otto-von-Guericke-Universität Magdeburg Fakultät für Informatik. Codierungstheorie und Kryptographie

Klassische Gatter und Logikelemente. Seminarvortrag zu Ausgewählte Kapitel der Quantentheorie Quantenalgorithmen

Vorlesung 3 Differentialgeometrie in der Physik 13

Entscheidungsprobleme der Marktforschung (1)

Die Transzendenz der Eulerschen Zahl e

Bedingte Entropie. Bedingte Entropie. Bedingte Entropie. Kapitel 4: Bedingte Entropie I(X;Y) H(X Y) H(Y) H(X) H(XY)

Fachbereich Mathematik Prof. K. Grosse-Brauckmann D. Frisch WS 2007/08 10./ Gruppenübung

6.5. Rückgewinnung des Zeitvorgangs: Rolle der Pole und Nullstellen

Die Zahl i phantastisch, praktisch, anschaulich

Die Ausgangssituation Das Beispiel-Szenario... 14

Daten sind in Tabellenform gegeben durch die Eingabe von FORMELN können mit diesen Daten automatisierte Berechnungen durchgeführt werden.

Arbeitsgruppe Radiochemie Radiochemisches Praktikum P 06. Einführung in die Statistik. 1. Zählung von radioaktiven Zerfällen und Statistik 2

13.Selbstinduktion; Induktivität

Seminar Einführung in die Kunst mathematischer Ungleichungen

Unter der Drehgruppe verstehen wir diegruppe der homogenen linearen Transformationen

Grundlagen der Mathematik I Lösungsvorschlag zum 12. Tutoriumsblatt

Kreditrisikomodellierung und Risikogewichte im Neuen Baseler Accord

Datenträger löschen und einrichten

Versicherungstechnischer Umgang mit Risiko

1 Finanzmathematik. 1.1 Das Modell. Sei Xt

9 Komplexe Zahlen ( ) ( ) 9.1 Ziele. 9.2 Warum braucht man komplexe Zahlen? 9.3 Darstellung von komplexen Zahlen. r 2. j 2. j 1.

Mathematik für das Ingenieurstudium

Lineare Optimierung Einführung

1 = Gl.(12.7) Der Vergleich mit Gl. (12.3) zeigt, dass für die laminare Rohrströmung die Rohrreibungszahl

Die Jordansche Normalform

Weitere NP-vollständige Probleme

AUFGABEN ZUR INFORMATIONSTHEORIE

2.6 Struktursatz und Anwendungen

Auswertung univariater Datenmengen - deskriptiv

Gesetzlicher Unfallversicherungsschutz für Schülerinnen und Schüler

d da B A Die gesamte Erscheinung der magnetischen Feldlinien bezeichnet man als magnetischen Fluss. = 1 V s = 1 Wb

Eva Hoppe Stand: 2000

Multilineare Algebra und ihre Anwendungen. Nr. 6: Normalformen. Verfasser: Yee Song Ko Adrian Jenni Rebecca Huber Damian Hodel

Transkript:

TECHNISCHE UNIVERSITÄT MÜNCHEN INSTITUT FÜR INFORMATIK Defntorsche Konstrukton nduktver Datentypen n Isabelle/HOL Dplomarbet Stefan Berghofer

INSTITUT FÜR INFORMATIK TECHNISCHE UNIVERSITÄT MÜNCHEN Defntorsche Konstrukton nduktver Datentypen n Isabelle/HOL Dplomarbet Stefan Berghofer Aufgabensteller : Prof Tobas Npkow, PhD Betreuer : Markus Wenzel Davd von Ohemb Abgabedatum : 24 September 1998

Ich verschere, daß ch dese Dplomarbet selbständg verfaßt und nur de angegebenen Quellen und Hlfsmttel verwendet habe München, den 24 September 1998 (Stefan Berghofer)

Zusammenfassung Induktve Datentypen stellen en wchtges Hlfsmttel zur Spezfkaton funktonaler Programme dar Wr beschreben de Implementerung enes Datentyppakets für Isabelle/HOL, das neue Datentypen defntorsch enführt Herfür wrd zunächst de repräsenterende Menge des Datentyps nduktv defnert und dann de Isomorphe zwschen deser Menge und dem neuen Typ durch ene HOL-Typdefnton ausgedrückt Aus deser Defnton werden dann wchtge charakterstsche Egenschaften des Datentyps we Verschedenhet und Injektvtät der Konstruktoren sowe ene strukturelle Induktonsregel abgeletet Ebenfalls durch ene nduktve Defnton wrd en Kombnator für prmtve Rekurson auf dem Datentyp konstruert Durch de defntorsche Vorgehenswese wrd schergestellt, daß durch das Hnzufügen von Datentypen zu Theoren de Exstenz von Modellen erhalten blebt Das beschrebene Datentyppaket erlaubt de Defnton von verschränkt und verschachtelt rekursven Datentypen, so daß de mesten für de praktsche Anwendung wchtgen Klassen von Datentypen abgedeckt snd Des weteren kann das Paket lecht auf Datentypen mt belebgem Verzwegungsgrad erwetert werden

Inhaltsverzechns 1 Enletung 1 11 Motvaton und Enordnung 1 12 Aufgabenstellung 1 13 Aufbau der Arbet 2 14 Enführendes Bespel 2 2 Grundlagen und Werkzeuge 6 21 Isabelle 6 22 Isabelle/HOL 7 221 Typen 8 222 Logsche Verknüpfungen und Inferenzregeln 9 223 Defntorsche Theoreerweterung 11 23 Theoretsche Grundlagen 13 231 Fxpunkte 13 232 Induktve Defntonen 15 3 Arten und Egenschaften von Datentypen 24 31 Grundlagen 24 32 Verschränkt rekursve Datentypen 26 33 Verschachtelt rekursve Datentypen 30 4 Konstrukton von Datentypen n HOL 36 41 Auffalten verschachtelt rekursver Defntonen 37 42 Konstrukton der repräsenterenden Mengen 38 421 En Unversum für rekursve Typen 39 422 Induktve Defnton der repräsenterenden Mengen 41 43 Bewes von Isomorphe-Egenschaften 43

INHALTSVERZEICHNIS 431 Defnton von Repräsentatonsfunktonen 45 432 Surjektvtät der Repräsentatonsfunktonen 47 433 Injektvtät der Repräsentatonsfunktonen 49 434 Werteberech der Repräsentatonsfunktonen 52 435 Umkehrung der Repräsentatonsfunktonen 53 44 Defnton der Konstruktoren 54 45 Repräsentatonsabhängge Bewese 54 451 Verschedenhet von Konstruktoren 54 452 Injektvtät von Konstruktoren 55 453 Strukturelle Indukton 56 46 Repräsentatonsunabhängge Bewese 60 461 Fallunterschedung 61 462 Prmtve Rekurson 61 4621 Induktve Defnton der Funktonsgraphen 61 4622 Totaltät und Endeutgket 63 4623 Defnton der Kombnatoren 65 4624 Charakterstsche Glechungen 66 463 Case-Kombnator 67 5 Erweterungsmöglchketen 68 51 Verschachtelt rekursve Datentypen mt Funktonstypen 68 52 En Unversum für Datentypen mt belebgem Verzwegungsgrad 70 53 Konstrukton enes Datentyps mt unendlchem Verzwegungsgrad 72 531 Repräsenterende Menge 72 532 Konstruktoren 72 533 Induktonsregel 73 534 Prmtve Rekurson 74 6 Verglech mt anderen Arbeten 77 61 Andere auf HOL baserende Datentyppakete 77 62 Alternatve Formulerung charakterstscher Theoreme 78 63 Alternatve Konstruktonsverfahren 82 7 Schlußbemerkungen 85 71 Ausblck auf conduktve Datentypen 85 72 Wetere Arbetspunkte 86

INHALTSVERZEICHNIS A Häufg verwendete HOL-Regeln 87 B Beweslaufzet enger Datentypen 88 C Bewesene Theoreme 89

The method of postulatng what we want has many advantages; they are the same as the advantages of theft over honest tol Let us leave them to others and proceed wth our honest tol Bertrand Russell, Introducton to Mathematcal Phlosophy

Kaptel 1 Enletung 11 Motvaton und Enordnung Set engen Jahren werden Computerprogramme n mmer größerem Ausmaß zur Steuerung von Abläufen engesetzt, de unser alltäglches Leben betreffen So enthält zb schon jedes handelsüblche Mobltelefon Software m Umfang von mehreren tausend Lnes of Code Da Software zunehmend auch n scherhetskrtschen Berechen engesetzt wrd, wo Fehlfunktonen oder Ausfälle telwese mmense Kosten verursachen oder gar Menschenleben gefährden können, kommt der Frage der Korrekthet von Software ene wachsende Bedeutung zu In besonders spektakulärer Wese wurde dese Problematk durch den Absturz der europäschen Trägerrakete Arane 5 deutlch gemacht, be dem en Schaden von über ener Mllarde DM entstand Auch wenn vele Praktker behaupten, durch besonders ausführlches Testen alle Programmerfehler aufdecken zu können, kann der Nachwes der tatsächlchen Korrekthet von Software nur durch enen formalen Bewes erbracht werden Aufgrund der hohen Komplextät von Software-Systemen st es jedoch sehr schwer und auch unüberschtlch, enen derartgen Korrekthetsbewes nur auf dem Paper zu führen In desem Zusammenhang snd daher maschnelle Verfkatonswerkzeuge von großem Nutzen En solches Werkzeug st der genersche Theorembeweser Isabelle [Paulson, 1993a] Herbe bedeutet genersch, daß Isabelle ncht auf ene enzge, fest enprogrammerte Logk beschränkt st, sondern velmehr ene Implementerungsplattform für ene große Klasse verschedener Logken darstellt Ene solche mplementerte Logk st Isabelle/HOL, de wegen hrer Ausdrucksstärke und hres enfachen Typsystems ene gute Ausgangsbass für de Verfkaton von Programmen betet Ene wchtges Instrument zur Formalserung von Programmen und deren Egenschaften snd nduktve Datentypen, also Typen, für de en Induktonsprnzp ähnlch dem aus der Mathematk bekannten Prnzp der vollständgen Indukton für natürlche Zahlen glt 12 Aufgabenstellung Für Isabelle/HOL exsterte berets en Paket zur Beschrebung nduktver Datentypen, das de Egenschaften des Typs we zb Induktonsregeln als Axome enführte Dese Vorgehenswese 1

KAPITEL 1 EINLEITUNG 2 brgt jedoch de Gefahr n sch, daß durch de Enführung fehlerhafter Axome Inkonsstenzen entstehen können Scherer und methodsch angemessener st es, Datentypen defntorsch durch Angabe ener geegneten Repräsentaton enzuführen, aus der dann de gewünschten Egenschaften des Datentyps als Theoreme abgeletet werden können De m Rahmen der Dplomarbet zu bearbetende Aufgabenstellung bestand nun m wesentlchen aus zwe Telen: Zum enen sollte theoretsch untersucht werden, ob und we bestmmte Klassen von Datentypen n Isabelle/HOL repräsentert werden können Außerdem sollte, aufbauend auf den angestellten theoretschen Überlegungen, de Implementerung enes defntorschen Datentyppakets für Isabelle/HOL vorgenommen werden, das auch de n der Praxs häufg vorkommenden Fälle von nduktven Datentypen mt verschränkter und verschachtelter Rekurson behandeln kann 13 Aufbau der Arbet Kaptel 2 führt zunächst de notwendgen Grundlagen en Des umfaßt zum enen das verwendete Bewessystem Isabelle sowe de Logk Isabelle/HOL, wobe nsbesondere auf das Prnzp der defntorschen Theoreerweterung engegangen wrd Außerdem werden enge wchtge theoretsche Konzepte we Fxpunkte und nduktve Defntonen behandelt Kaptel 3 beschrebt auf relatv abstraktem Nveau de Klassen der verschränkt und verschachtelt rekursven Datentypen, de mt dem m Rahmen der Dplomarbet mplementerten Paket defnert werden können Es wrd herbe en Überblck über de durch de Defnton engeführten Konstanten und Funktonen sowe de bewesenen charakterstschen Theoreme gegeben Kaptel 4 behandelt anschleßend de Repräsentaton der n Kaptel 3 beschrebenen Datentypen n Isabelle/HOL sowe de zum Ensatz kommenden Bewestechnken, de auch n Form von Isabelle-Bewesprozeduren mplementert wurden Kaptel 5 dskutert ene möglche Erweterung des Datentyppakets auf ene engeschränkte Klasse verschachtelt rekursver Datentypen mt Funktonstypen Das beschrebene Konstruktonsverfahren gehört zwar ncht zum Funktonsumfang des mplementerten Pakets, jedoch wurde de Konstrukton für enen spezellen Typ exemplarsch n Isabelle/HOL durchgeführt Kaptel 6 enthält enen Verglech mt anderen auf HOL baserenden Datentyppaketen n Hnblck auf de Formulerung der charakterstschen Theoreme und de zum Ensatz kommenden Konstruktonsverfahren 14 Enführendes Bespel Als enführendes Bespel wollen wr de Formalserung ener enfachen funktonalen Programmersprache betrachten Dese Programmersprache soll dabe sowohl arthmetsche Ausdrücke, dargestellt durch den Typ α aexp, als auch boolesche Ausdrücke, dargestellt durch

KAPITEL 1 EINLEITUNG 3 den Typ α bexp enthalten Wr beschreben nun de Typen α aexp und α bexp durch folgende Datentypdefnton datatype α aexp = If then else (α bexp) (α aexp) (α aexp) Sum (α aexp) (α aexp) Dff (α aexp) (α aexp) Var α Num nat and α bexp = Less (α aexp) (α aexp) And (α bexp) (α bexp) Or (α bexp) (α bexp) Durch dese Defnton werden de njektven Funktonen Sum :: α aexp α aexp α aexp, And :: α bexp α bexp α bexp, etc engeführt, de auch als Konstruktoren des Datentyps bezechnet werden Alle zulässgen Ausdrücke der Programmersprache können mt Hlfe deser Konstruktoren aufgebaut werden En zulässger Ausdruck st bespelswese If then else (And (Less (Var x) (Num 2)) (Less (Num 1) (Var y))) (Sum (Sum (Num 1) (Var x)) (Var y)) (Dff (Var y) (Num 2)) wobe x und y Varablennamen vom Typ α snd Damt st de Syntax der Programmersprache formalsert Auf syntaktscher Ebene kann nun ene Substtuton von Varablen durch Ausdrücke vom Typ α aexp mt Hlfe der Funktonen subst aexp :: (α α aexp) α aexp α aexp subst bexp :: (α α aexp) α bexp α bexp durchgeführt werden Dese Substtutonsfunktonen können mttels prmtver Rekurson durch de Glechungen subst aexp f (If then else b a 1 a 2 ) = If then else (subst bexp f b) (subst aexp f a 1 ) (subst aexp f a 2 ) subst aexp f (Sum a 1 a 2 ) = Sum (subst aexp f a 1 ) (subst aexp f a 2 ) subst aexp f (Dff a 1 a 2 ) = Dff (subst aexp f a 1 ) (subst aexp f a 2 ) subst aexp f (Var v) = f v subst aexp f (Num n) = Num n subst bexp f (Less a 1 a 2 ) = Less (subst aexp f a 1 ) (subst aexp f a 2 ) subst bexp f (And b 1 b 2 ) = And (subst bexp f b 1 ) (subst bexp f b 2 ) subst bexp f (Or b 1 b 2 ) = Or (subst bexp f b 1 ) (subst bexp f b 2 ) spezfzert werden Auffallend herbe st, daß de Funktonen mttels Fallunterschedung über de verschedenen Konstruktoren defnert werden, wobe als Argumente für de rekursven Aufrufe von subst aexp und subst bexp mmer nur de auf der lnken Sete der jewelgen Glechung angegebenen Argumente des Konstruktors verwendet werden Des stellt scher, daß de rekursven Argumente mt jedem Aufruf strukturell klener werden und de Funktonen daher stets termneren

KAPITEL 1 EINLEITUNG 4 De Semantk ener solchen Programmersprache beschrebt man typscherwese durch Auswertungsfunktonen eval aexp :: (α nat) α aexp nat eval bexp :: (α nat) α bexp bool de den Wert enes Ausdrucks bzgl ener bestmmten Belegung env der Varablen ermtteln Ebenfalls mttels prmtver Rekurson können dese Auswertungsfunktonen nun durch de Glechungen eval aexp env (If then else b a 1 a 2 ) = f eval bexp env b then eval aexp env a 1 else eval aexp env a 2 eval aexp env (Sum a 1 a 2 ) = eval aexp env a 1 + eval aexp env a 2 eval aexp env (Dff a 1 a 2 ) = eval aexp env a 1 eval aexp env a 2 eval aexp env (Var v) = env v eval aexp env (Num n) = n eval bexp env (Less a 1 a 2 ) = eval aexp env a 1 < eval aexp env a 2 eval bexp env (And b 1 b 2 ) = eval bexp env b 1 eval bexp env b 2 eval bexp env (Or b 1 b 2 ) = eval bexp env b 1 eval bexp env b 2 charaktersert werden De Grunddee besteht herbe darn, de Operatoren der Programmersprache we zb Sum und And auf de entsprechenden HOL-Operatoren + und abzublden In velen Lehrbüchern über Semantk fndet man n desem Zusammenhang oft Theoreme, de Substtutons- und Auswertungsfunktonen mtenander n Bezehung setzten Für de her betrachtete Programmersprache läßt sch deser Zusammenhang durch eval aexp env (subst aexp (Var(v := a )) a) = eval aexp (env(v := eval aexp env a )) a eval bexp env (subst bexp (Var(v := a )) b) = eval bexp (env(v := eval aexp env a )) b ausdrücken, wobe f (x := y) z f x = z then y else f z De Funkton subst aexp (Var(v := a )) ersetzt genau de Varable v n enem Ausdruck durch a und läßt de restlchen Varablen unverändert Das obge Theorem besagt also, daß de Auswertung jewels das gleche Ergebns lefert, wenn man vor der Auswertung alle Vorkommen von v durch a ersetzt, oder wenn man de Belegung env an der Stelle v geegnet verändert Das n deser Stuaton üblcherwese zur Anwendung kommende Bewesprnzp wrd mest als strukturelle Indukton bezechnet, da es sch am Aufbau der Ausdrücke orentert Für de

KAPITEL 1 EINLEITUNG 5 Datentypen α aexp und α bexp wrd des durch de Regel b, a 1, a 2 P 2 b P 1 a 1 P 1 a 2 = P 1 (If then else b a 1 a 2 ) a 1, a 2 P 1 a 1 P 1 a 2 = P 1 (Sum a 1 a 2 ) a 1, a 2 P 1 a 1 P 1 a 2 = P 1 (Dff a 1 a 2 ) v P 1 (Var v) n P 1 (Num n) a 1, a 2 P 1 a 1 P 1 a 2 = P 2 (Less a 1 a 2 ) b 1, b 2 P 2 b 1 P 2 b 2 = P 2 (And b 1 b 2 ) b 1, b 2 P 2 b 1 P 2 b 2 = P 2 (Or b 1 b 2 ) P 1 a P 2 b ausgedrückt Da de Datentypen α aexp und α bexp verschränkt rekursv snd, müssen de Egenschaften P 1 und P 2 smultan bewesen werden Für den Konstruktor If then else müßte bem Bewes des obgen Substtutonstheorems gemäß der Induktonsregel de Implkaton b, a 1, a 2 eval bexp env (subst bexp (Var(v := a )) b) = eval bexp (env(v := eval aexp env a )) b eval aexp env (subst aexp (Var(v := a )) a 1 ) = eval aexp (env(v := eval aexp env a )) a 1 eval aexp env (subst aexp (Var(v := a )) a 2 ) = eval aexp (env(v := eval aexp env a )) a 2 = eval aexp env (subst aexp (Var(v := a )) (If then else b a 1 a 2 )) = eval aexp (env(v := eval aexp env a )) (If then else b a 1 a 2 ) gezegt werden, dh unter der Induktonsvoraussetzung, daß de zu bewesenden Egenschaften berets für b, a 1 und a 2 gelten, muß de Gültgket der Egenschaft für If then else b a 1 a 2 nachgewesen werden Wr können des lecht durch folgende Umformung zegen: eval aexp env (subst aexp (Var(v := a )) (If then else b a 1 a 2 )) = {charakterstsche Glechungen für subst aexp} eval aexp env (If then else (subst bexp (Var(v := a )) b) (subst aexp (Var(v := a )) a 1 ) (subst aexp (Var(v := a )) a 2 )) = {charakterstsche Glechungen für eval aexp} f (eval bexp env (subst bexp (Var(v := a )) b)) then (eval aexp env (subst aexp (Var(v := a )) a 1 )) else (eval aexp env (subst aexp (Var(v := a )) a 2 )) = {Induktonsvoraussetzung} f (eval bexp (env(v := eval aexp env a )) b) then (eval aexp (env(v := eval aexp env a )) a 1 ) else (eval aexp (env(v := eval aexp env a )) a 2 ) = {charakterstsche Glechungen für eval aexp} eval aexp (env(v := eval aexp env a )) (If then else b a 1 a 2 )

Kaptel 2 Grundlagen und Werkzeuge 21 Isabelle Isabelle st en generscher Theorembeweser, der an der Unverstät Cambrdge n Zusammenarbet mt der Technschen Unverstät München unter der Letung von Dr Lawrence C Paulson und Prof Tobas Npkow entwckelt wurde Isabelle wurde n der funktonalen Programmersprache ML mplementert und st auf ener Velzahl verschedener Plattformen verfügbar Im Gegensatz zu anderen Bewesern we PVS oder dem HOL-System von Gordon und Melham [Gordon, Melham, 1993] st Isabelle ncht auf ene enzge, fest enprogrammerte Logk beschränkt Charakterstsch für de Archtektur von Isabelle st de Auftelung n verschedene Schchten: De Bass von Isabelle bldet de sogenannte Metalogk, Isabelle/Pure Des st m wesentlchen ene ntutonstsche Logk höherer Stufe, de auf dem enfach getypten Lambda- Kalkül aufbaut Als logsche Verknüpfungen stehen auf deser Ebene Allquantfzerung x φ, Implkaton φ = ψ und Glechhet a b zur Verfügung Mt Hlfe des Lambda- Kalküls kann unter anderem das für vele Logken wchtge Konzept der Substtuton formal präzse ausgedrückt werden Das Typsystem von Isabelle/Pure unterstützt Polymorphe sowe das aus der Programmersprache Haskell bekannte Konzept der Typklassen Innerhalb deser Metalogk von Isabelle können ene Velzahl von Objektlogken we zb Hgher Order Logc (HOL) oder Zermelo-Fraenkel Mengenlehre (ZF) formalsert werden Objektlogk-Schlußregeln der Form φ 1 φ n ψ können mt Hlfe der Meta-Implkaton durch φ 1 = ( = (φ n = ψ) ) bzw abkürzend [φ 1 ; ; φ n ] = ψ 6

KAPITEL 2 GRUNDLAGEN UND WERKZEUGE 7 ausgedrückt werden De Schlußregeln der Metalogk von Isabelle snd als ML-Funktonen realsert, de Theoreme auf Theoreme abblden So wrd zb de Elmnaton der Meta-Implkaton φ = ψ ψ φ durch de ML-Funkton mples elm des Typs thm thm thm realsert Be thm handelt es sch um enen abstrakten Datentyp, der nur von bestmmten Funktonen verarbetet werden kann So st es nsbesondere ncht möglch, völlg unkontrollert belebge Theoreme zu erzeugen De wohl wchtgste Meta-Inferenzregel stellt de sogenannte Resolutonsregel [ψ 1 ; ; ψ m ] = ψ [φ 1 ; ; φ n ] = φ ([φ 1 ; ; φ 1 ; ψ 1 ; ; ψ m ; φ +1 ; ; φ n ] = φ)σ wobe ψσ = φ σ dar: Snd zwe Theoreme [[ψ 1 ; ; ψ m ] = ψ und [φ 1 ; ; φ n ] = φ gegeben und bestzen de Prämsse φ und de Konkluson ψ enen Unfkator σ, so erhält man en neues Theorem, ndem man φ durch de Prämssen ψ 1,, ψ m ersetzt und den Unfkator σ anwendet Dese Regel st für de Konstrukton von Bewesen n Isabelle von entschedender Bedeutung Schwerpunktmäßg werden von Isabelle sogenannte Rückwärtsbewese unterstützt Beweszustände werden herbe durch Theoreme der Art [φ 1 ; ; φ n ] = φ repräsentert, wobe φ das egentlche Beweszel st und φ 1,, φ n de noch zu bewesenden Telzele darstellen Zum Bewes des Theorems φ wrd ausgehend vom (trvalen) Theorem φ = φ der Beweszustand schrttwese mt Hlfe der Resolutonsregel mmer weter verfenert, bs der Beweszustand kene Prämssen mehr hat Zur Durchführung deser Bewesschrtte denen sogenannte Taktken Herbe handelt es sch um Funktonen, de aus enem Beweszustand ene Menge möglcher neuer Beweszustände erzeugen So wrd zb de obge Resolutonsregel durch resolve tac rules realsert, wobe versucht wrd, de Konkluson ener der Regeln aus rules mt dem Telzel φ zu unfzeren Des weteren st es möglch, mttels sogenannter Tactcals aus enzelnen Taktken neue Taktken zu konstrueren So lefert zb de Taktk ALLGOALS tactc neue Beweszustände, de sch nach Anwendung von tactc auf alle Telzele des aktuellen Beweszustandes ergeben Ene detallerte Beschrebung aller Isabelle zugrundelegender Konzepte, der beretgestellten Funktonen und deren Verwendung, sowe enger mplementerter Objektlogken st n [Paulson, 1993a], [Paulson, 1993b] und [Paulson, 1993c] zu fnden Für ene genauere theoretsche Betrachtung der Metalogk von Isabelle sowe der maßgeblchen Desgn-Prnzpen se auf [Paulson, 1989] verwesen 22 Isabelle/HOL Ene der n Isabelle mplementerten Objektlogken st Isabelle/HOL HOL steht für Hgher Order Logc und geht auf Alonzo Churchs Smple Theory of Types [Church, 1940] zurück

KAPITEL 2 GRUNDLAGEN UND WERKZEUGE 8 Im Gegensatz zur herkömmlchen Prädkatenlogk erster Stufe, n der sch bekanntlch vele wchtge mathematsche Begrffe we zb Endlchket ncht charakterseren lassen, st HOL relatv ausdrucksstark, was dese Logk nsbesondere auch für praktsche Anwendungen we bespelswese Software- und Hardwareverfkaton nteressant macht De Implementerung von HOL n Isabelle erfolgte n Anlehnung an das HOL-Sytem von Gordon und Melham [Gordon, Melham, 1993] Im folgenden wollen wr enge Aspekte von HOL genauer beleuchten, de m weteren Verlauf der Arbet von Bedeutung sen werden 221 Typen Typen spelen n velen Berechen der Informatk ene wchtge Rolle So denen se n Programmersprachen we zb Java oder ML dazu, festzulegen, welche Arten von Operatonen auf bestmmten Elementen zugelassen snd, weshalb vele Fehler berets zur Übersetzungszet erkannt werden können So sollten zb Ausdrücke we sqrt("hello world" + 5) von Complern abgewesen werden Auch n der Logk snd Typen zur Vermedung von Inkonsstenzen von Bedeutung De Notwendgket von Typen wurde herbe erstmals von Bertrand Russell erkannt, auf den das folgende Paradoxon zurückgeht: Gegeben se de Menge M = {x x / x} dh de Menge aller Mengen, de sch selbst ncht enthalten Nmmt man nun an, daß M M glt, so folgt aufgrund der Defnton von M, daß M / M gelten muß Nmmt man M / M an, so folgt M M Isabelle/HOL übernmmt das Typsystem der Metalogk Isabelle/Pure Es werden folgende Arten von Typen unterscheden: Typvarablen α bzw α :: S Herbe bezechnet S ene Sorte der Gestalt {C 1,, C n }, wobe C ene Typklasse darstellt Zusammengesetzte Typen (τ 1,, τ n )t Herbe st t en sogenannter Typkonstruktor Insbesondere st auch der Fall n = 0 engeschlossen Funktonstypen τ τ Typen, n denen Typvarablen vorkommen, werden auch als polymorph bezechnet Sorten bzw Typklassen denen dazu, den Grad der Polymorphe genauer zu doseren Herbe steht α :: {C 1,, C n } für enen belebgen Typ, der den Typklassen C 1,, C n angehört Typklassen können dabe als ene Ansammlung von Typen mt bestmmten Egenschaften verstanden werden So steht zb α :: {ord} für enen belebgen Typ, auf dem ene Ordnung darstellt In Isabelle/HOL werden zahlreche Typkonstruktoren defnert, unter anderem de nullstellgen Typkonstruktoren bool und nat, de enstellgen Typkonstruktoren set und lst, sowe de zwestellgen Typkonstruktoren + (dsjunkte Summe) und (kartessches Produkt) Typkonstruktoren bestzen sogenannte Artäten, de de Typklassen-Zugehörgket enes Typs (τ 1,, τ n )t n Abhänggket von der Typklassen-Zugehörgket der Typargumente τ 1,, τ n ausdrücken So kann durch de Artät :: (ord, ord)ord ausgedrückt werden, daß auf dem

KAPITEL 2 GRUNDLAGEN UND WERKZEUGE 9 Typ τ τ ene (zb lexkographsche) Ordnung darstellt, falls auf τ und τ ene Ordnung darstellt Auf semantscher Ebene stellt de Interpretaton [τ ] enes Typs τ ene Menge aus dem sogenannten Unversum U dar Be U handelt es sch um ene Menge von Mengen, de bestmmte theoretsch nteressante Egenschaften we Abgeschlossenhet unter Bldung von Telmengen und Funktonenräumen bestzt De Interpretaton enes nullstellgen Typkonstruktors st ene Menge aus U, während de Interpretaton enes mehrstellgen Typkonstruktors t ene Funkton U U U st Be polymorphen Typen st de Interpretaton zusätzlch von der Belegung der Typvarablen abhängg Für de Korrekthet der m folgenden Abschntt beschrebenen Inferenzregeln von HOL st von entschedender Bedeutung, daß de durch [τ ] bezechnete Menge stets nchtleer st Ene genauere formale Betrachtung der Semantk von Typen und Termen n HOL st n [Gordon, Melham, 1993] zu fnden De folgende Abbldung zegt enge n Isabelle/HOL defnerte Konstanten und deren Typ 0 :: nat Suc :: nat nat length :: α lst nat hd :: α lst α tl :: α lst α lst :: α α bool :: α α set bool Abbldung 21: Konstanten aus Isabelle/HOL Betrachtet man das anfangs erwähnte Paradoxon, so kann festgestellt werden, daß x x (und damt auch x / x, was (x x) entsprcht) ncht wohlgetypt st, da x sonst sowohl vom Typ α als auch vom Typ α set sen müßte Das Problem legt präzser ausgedrückt darn, daß de Typen α und α set aufgrund des Vorkommens von α n α set ncht unfzerbar snd, was oft mt dem Schlagwort occurs check ausgedrückt wrd 222 Logsche Verknüpfungen und Inferenzregeln In der Logk Isabelle/HOL stehen alle grundlegenden logschen Operatoren we :: bool bool :: bool bool bool :: bool bool bool :: bool bool bool :: (α bool) bool :: (α bool) bool 1 :: (α bool) bool zur Verfügung Herbe bezechnet bool den Typ der Wahrhetswerte n HOL Bewese n HOL werden mt Hlfe des Kalküls des natürlchen Schleßens geführt, das auf Gerhard Gentzen zurückgeht Für jeden der oben angegebenen logschen Operatoren exsteren herbe Enführungs- und Elmnatonsregeln We berets n Abschntt 21 erwähnt, werden Inferenz-

KAPITEL 2 GRUNDLAGEN UND WERKZEUGE 10 regeln von Objektlogken mt Hlfe der Metalogk von Isabelle formulert Ene Inferenzregel we P Q P Q wrd n Isabelle bespelswese durch [P; Q ] = P Q (conji) ausgedrückt De Regel zur Enführung der Implkaton lautet (P = Q) = P Q (mpi) De Objekt-Implkaton wrd herbe auf de Meta-Implkaton = zurückgeführt, de zur Darstellung der lokalen Annahmen enes Beweszels dent De Regel ( x P x ) = x P x (alli) für de Enführung des Allquantors führt den Objekt-Allquantor auf den Meta-Allquantor zurück Spezelle Meta-Inferenzregeln für = und we Lftng über Annahmen und Lftng über Parameter, de n [Paulson, 1989, Paulson, 1993a] genauer beschreben werden, stellen scher, daß de lokalen Annahmen enes Beweszels n alle daraus entstehenden Telzele übernommen und Nebenbedngungen von Quantorenregeln we x ncht fre n engehalten werden Für de Korrekthet der Quantorenregeln x P x = P (y :: τ) P (y :: τ) = x P x (spec) (exi) st bedeutsam, daß de Interpretaton [τ ] des Typs τ stets ene nchtleere Menge st So wäre zb de mttels (spec) und (exi) abletbare Formel x P(x) = x P(x) falsch, falls x enen leeren Typ bestzen würde Erläuterungen zu deser Problematk fnden sch n [Paulson, 1990] Bemerkung 21 Zur Verenfachung der Notaton werden wr be der Darstellung von Bewesen n den folgenden Kapteln ncht mehr zwschen Meta- und Objekt-Implkaton bzw Meta- und Objekt- Allquantor unterscheden Wr verwenden für Allquantfkaton und = für Implkaton, um Verwechslungen mt Funktonstypen zu vermeden Um de Darstellung der Bewese kompakt zu halten, werden außerdem elementare Bewesschrtte we zb Implkatons- und Allquantor- Enführung mest weggelassen In der Form [P x 1 x n ] x1,,x n Q x 1 x n R noterte Inferenzregeln snd glechbedeutend mt (( x 1,, x n P x 1 x n = Q x 1 x n ) ) = R

KAPITEL 2 GRUNDLAGEN UND WERKZEUGE 11 Ene Besonderhet von HOL st der sogenannte Hlbertsche Aus- Hlberts ε - Operator wahloperator ε :: (α bool) α Für en Prädkat P auf dem Typ α lefert εx P x en ncht genauer festgelegtes Element vom Typ α mt der Egenschaft P, falls en solches exstert Herbe st zu beachten, daß εx P x mmer en Ergebns lefert auch dann, wenn ken Element mt der Egenschaft P exstert Deses Verhalten von ε kann durch de Glechung P (εx P x) = x P x (select eq Ex) beschreben werden Falls genau en Element mt der Egenschaft P exstert, kann de Regel 1 x P x P a (εx P x) = a verwendet werden, wobe (select1 equalty) 1 x P x x P x ( yp y = y = x) De Konstante arbtrary In manchen Fällen kann es hlfrech sen, en unversell verwendbares, ncht näher spezfzertes don t care - Element zur Verfügung zu haben Herzu dent de polymorphe Konstante arbtrary :: α 223 Defntorsche Theoreerweterung Das Ergebns der Formalserung enes Sachverhalts n Isabelle/HOL snd sogenannte Theoren Ene Theore besteht aus ener Menge von Typkonstruktoren und Konstanten, oft auch Sgnatur genannt, sowe aus ener Menge von Axomen Be der Entwcklung neuer Theoren geht man n der Regel von bestehenden Theoren aus, de man um zusätzlche Typkonstruktoren, Konstanten und Axome erwetert Ene wchtge Grundphlosophe von HOL st es, herbe ncht das Hnzufügen belebger Axome zu erlauben, sondern nur sogenannte defntorsche Erweterungsmechansmen zuzulassen De Verwendung derartger Erweterungsmechansmen garantert, daß be der Erweterung de Exstenz von Modellen erhalten blebt, dh de entstehende Theore en Modell bestzt, falls de ursprünglche Theore en Modell hatte Unter enem Modell M versteht man herbe ene Interpretaton von Typkonstruktoren und Konstanten, so daß de Interpretaton jedes Axoms der Theore bzgl M für jede Belegung der freen Varablen stets wahr st Für ene formale Defnton des Modellbegrffs se weder auf [Gordon, Melham, 1993] verwesen De Exstenz enes Modells mplzert de sogenannte syntaktsche Konsstenz ener Theore Ene Theore heßt herbe syntaktsch konsstent, wenn n hr ncht jede Formel nsbesondere ncht False abletbar st Man beachte, daß de syntaktsche Konsstenz ener Theore jedoch ncht unbedngt de Exstenz enes Modells mplzert Im wesentlchen werden von HOL folgende Arten der defntorschen Theoreerweterung unterstützt:

KAPITEL 2 GRUNDLAGEN UND WERKZEUGE 12 Konstantendefnton De Konstante c kann zur Sgnatur hnzugefügt und en Axom der Gestalt c v 1 v n t engeführt werden, falls TVars(t) TVars(c) sowe Vars(t) {v 1,, v n } glt, c neu st und ncht n t vorkommt Typdefnton Se t rep set en Term vom Typ τ set, der ene nchtleere Menge beschrebt, dh es glt u t rep set für geegnetes u Weterhn se TVars(t rep set) {α 1,, α n } Dann kann der Typ (α 1,, α n )t und de Konstanten Abs t :: τ (α 1,, α n )t Rep t :: (α 1,, α n )t τ zur Sgnatur hnzugefügt sowe de Axome Abs t(rep t(x)) = x (Rep t nverse) y t rep set = Rep t(abs t(y)) = y (Abs t nverse) Rep t(x) t rep set (Rep t) engeführt werden De Grunddee der Typdefnton besteht herbe darn, neue Typen durch Telmengen berets exsterender Typen zu repräsenteren De Axome (Rep t nverse), (Abs t nverse) und (Rep t) drücken herbe de Exstenz ener Bjekton zwschen der Menge τ rep set und den Elementen des neuen Typs (α 1,, α n )t aus, was oft auch als Isomorphe bezechnet wrd Deser Sachverhalt st n Abbldung 22 graphsch dargestellt De Bewesbarket von u t rep set st notwendg, da Typen n HOL, we berets n Abschntt 221 erwähnt, nur durch nchtleere Mengen repräsentert werden dürfen τ Abs t (α 1,, α n )t t rep set Rep t Abbldung 22: Defnton enes neuen Typs Da Rep t de Umkehrfunkton Abs t und Abs t auf der Menge t rep set de Umkehrfunkton Rep t bestzt, folgt sofort de Injektvtät von Rep t sowe de Injektvtät von Abs t auf der Menge t rep set, dh Rep t(x 1 ) = Rep t(x 2 ) = x 1 = x 2 y 1 t rep set y 2 t rep set Abs t(y 1 ) = Abs t(y 2 ) = y 1 = y 2

KAPITEL 2 GRUNDLAGEN UND WERKZEUGE 13 De repräsenterende Menge muß herbe so geschckt gewählt werden, daß sch de für den neuen Typ gewünschten Egenschaften mt Hlfe der Isomorphe aus den entsprechenden Egenschaften der repräsenterenden Menge herleten lassen Elementare Funktonen auf dem neuen Typ werden herbe mttels Abs t und Rep t ausgedrückt Snd de charakterstschen Egenschaften enmal bewesen, kann von der konkreten Repräsentaton des Typs völlg abstrahert werden Im Gegensatz zur axomatschen Vorgehenswese, de mmer de Gefahr von Inkonsstenzen n sch brgt, können mt desem Verfahren abstrakte Datentypen scher engeführt werden En formaler Bewes der Tatsache, daß de Exstenz von Modellen be Verwendung der obgen Defntonsmechansmen tatsächlch erhalten blebt, st wederum n [Gordon, Melham, 1993] zu fnden Mt Hlfe des beschrebenen Verfahrens kann so bespelswese der Typ der dsjunkten Summe α + β beschreben werden Als repräsenterende Menge wrd herbe sum :: (α β bool bool)set sum {f ( a f = λ x, y, p x = a p) ( b f = λ x, y, p y = b p)} verwendet De beden Injektonen Inl :: α α + β und Inr :: β α + β snd defnert durch Inl a Abs sum(λ x, y, p x = a p) Inr b Abs sum(λ x, y, p y = b p) An desem Bespel wrd deutlch, daß selbst de Konstrukton enfacher Typen relatv umständlch und mtunter auch undurchschtg sen kann Es st daher erforderlch, für bestmmte Klassen häufg vorkommender Typen Verfahren für deren systematsche Konstrukton zu entwckeln 23 Theoretsche Grundlagen Der folgende Abschntt behandelt enge theoretsche Grundlagen we Fxpunkte und nduktve Defntonen, de für de Konstrukton von Datentypen wchtg snd De beschrebenen abstrakten Konzepte snd n Isabelle/HOL n Form von Theoren bzw generschen Bewesprozeduren mplementert De folgenden Bewese werden daher n Anlehnung an Isabelle/HOL oft n enem rückwärtsgerchteten Stl und unter Verwendung von für HOL typscher Notaton präsentert, wobe von konkreten Implementerungsdetals jedoch wetgehend abstrahert wrd 231 Fxpunkte Im folgenden wollen wr kurz auf enge wchtge Ergebnsse aus der Fxpunkttheore engehen, de für de präzse mathematsche Beschrebung von Datentypen und rekursven Funktonen sowe nduktven Defntonen von zentraler Bedeutung snd

KAPITEL 2 GRUNDLAGEN UND WERKZEUGE 14 Defnton 22 (Untere Schranke) Se S S ene Ordnungsrelaton auf S und T S Dann heßt b S untere Schranke von T, falls b x für alle x T glt g heßt größte untere Schranke (Infmum) von T, falls b g für alle unteren Schranken b von T glt Falls ene solche stets endeutge größte untere Schranke von T exstert, wrd dese auch mt T bezechnet Defnton 23 (Vollständger Verband) Ene Menge S zusammen mt ener Ordnungsrelaton S S heßt vollständger Verband (S, ), falls jede Menge T S ene größte untere Schranke bzgl bestzt Defnton 24 (Monotone von Funktonen) Ene Funkton F : S S heßt monoton, falls für alle x, y glt: x y = F (x) F (y) Theorem 25 (Knaster-Tarsk) Se (S, ) en vollständger Verband und F : S S ene monotone Funkton Dann exstert en durch lfp(f ) = {x F (x) x} endeutg bestmmter klenster Fxpunkt von F, dh es glt F (lfp(f )) = lfp(f ) und F (x) x = lfp(f ) x Bewes Bezechne P = {x F (x) x} de Menge der sogenannten Präfxpunkte von F Für jedes x P glt lfp(f ) x, da lfp(f ) ene untere Schranke der Menge P st Aufgrund der Monotone von F glt daher auch F (lfp(f )) F (x) Wegen F (x) x folgt heraus F (lfp(f )) x, dh F (lfp(f )) st ebenfalls ene untere Schranke von P Da lfp(f ) de größte untere Schranke von P st, glt daher F (lfp(f )) lfp(f ), dh lfp(f ) st en Präfxpunkt von F Aufgrund sener Defnton st lfp(f ) offenschtlch auch der klenste Präfxpunkt von F Aus F (lfp(f )) lfp(f ) folgt F (F (lfp(f ))) F (lfp(f )) aufgrund der Monotone von F Es glt also auch F (lfp(f )) P und damt lfp(f ) F (lfp(f )) Damt glt F (lfp(f )) = lfp(f ) In den folgenden Abschntten werden hauptsächlch vollständge Verbände der Form (P(S), ) von Bedeutung sen Herbe bezechnet P(S) = {x x S} de Potenzmenge von S, weshalb

KAPITEL 2 GRUNDLAGEN UND WERKZEUGE 15 (P(S), ) auch Potenzmengenverband genannt wrd De größte untere Schranke ener Menge T P(S) st herbe durch T bestmmt Ene Menge M S mt der Egenschaft F (M ) M wrd auch als unter F abgeschlossen bezechnet lfp(f ) stellt also de klenste unter F abgeschlossene Menge dar De Begrffe klenste obere Schranke und größter Fxpunkt werden dual dazu defnert So glt gfp(f ) = {x x F (x)} Man beachte, daß n enem vollständgen Verband jede belebge Menge auch ene endeutge klenste obere Schranke bestzt, nämlch T = {x y T y x} In velen Arbeten über Datentypen we zb [Hensel, Jacobs, 1997], de ncht Mengenlehre, sondern Kategorentheore als Grundlage verwenden, fndet man oft de Begrffe ntale Algebren bzw termnale Coalgebren Dese stellen das kategorentheoretsche Analogon zum Konzept des klensten bzw größten Fxpunkts dar 232 Induktve Defntonen Unter ener nduktv defnerten Menge versteht man de klenste Menge, de unter bestmmten Regeln abgeschlossen st So kann zb de Menge even der postven geraden Zahlen durch folgende zwe Regeln charaktersert werden: 0 even n even n + 2 even Derartge Regeln bezechnet man auch als Enführungsregeln De erste Regel besagt, daß 0 ene gerade Zahl st De zwete Regel besagt, daß n + 2 ebenfalls ene gerade Zahl st, falls n ene gerade Zahl st Man beachte, daß de Menge der postven geraden Zahlen ncht de enzge unter desen Regeln abgeschlossene Menge st So st zb auch de Menge IN der natürlchen Zahlen und de Menge IR der reellen Zahlen unter desen Regeln abgeschlossen, denn 0 st auch ene reelle Zahl und n + 2 st auch ene reelle Zahl, falls n ene reelle Zahl st Jedoch stellt de Menge der postven geraden Zahlen de klenste unter desen Regeln abgeschlossene Menge dar We n Abschntt 231 angedeutet, st de klenste unter ener monotonen Funkton F abgeschlossene Menge genau der klenste Fxpunkt von F De Menge der postven geraden Zahlen läßt sch daher we folgt als Fxpunkt ener geegneten Funkton F, de sch drekt aus den Enführungsregeln ergbt, defneren: F (M ) = {x x = 0 n x = n + 2 n M } even = lfp(f ) = {x F (x) x} Aus deser Defnton lassen sch nun mt Hlfe der Fxpunktegenschaft de obgen Enführungsregeln ableten, denn es glt offenschtlch 0 {x x = 0 n x = n + 2 n lfp(f )} = F (lfp(f )) = lfp(f ) = even

KAPITEL 2 GRUNDLAGEN UND WERKZEUGE 16 Ist n even = lfp(f ) so glt n + 2 {x x = 0 n x = n + 2 n lfp(f )} = even Aus der Tatsache, daß lfp(f ) de klenste unter F abgeschlossene Menge st, läßt sch unmttelbar de Induktonsregel mono(f ) F ({x P(x)}) {x P(x)} lfp(f ) {x P(x)} (weakind) ableten Dese Regel läßt sch noch zu mono(f ) verstärken F (lfp(f ) {x P(x)}) {x P(x)} lfp(f ) {x P(x)} (strongind) Bewes Se F monoton und es gelte F (lfp(f ) {x P(x)}) {x P(x)} Offenschtlch st lfp(f ) {x P(x)} lfp(f ) woraus aufgrund der Monotone von F sowe der Fxpunktegenschaft F (lfp(f ) {x P(x)}) F (lfp(f )) = lfp(f ) folgt Damt glt F (lfp(f ) {x P(x)}) lfp(f ) {x P(x)} Mt Hlfe von (weakind) folgt heraus lfp(f ) lfp(f ) {x P(x)} {x P(x)} Aus deser abstrakten Induktonsregel kann nun für jede nduktv defnerte Menge ene spezelle Induktonsregel abgeletet werden So erhält man zb für de Menge even de Induktonsregel x even P(0) n P(n) n even = P(n + 2) P(x) Bewes Im folgenden se weder F (M ) = {x x = 0 n x = n + 2 n M } even = lfp(f )

KAPITEL 2 GRUNDLAGEN UND WERKZEUGE 17 und es gelte P(0), n P(n) n even = P(n + 2) sowe x even Wr zegen nun {x x = 0 n x = n + 2 n even {x P(x)}} {x P(x)} } {{ } F (even {x P(x)}) Se z {x x = 0 n x = n + 2 n even {x P(x)}} Es snd nun zwe Fälle zu unterscheden: 1 z = 0 Gemäß Voraussetzung glt P(0) und damt z {x P(x)} 2 z = n + 2 n even {x P(x)} Es glt P(n) n even, woraus nach Voraussetzung P(n +2) und damt z {x P(x)} folgt Mttels (strongind) folgt also even {x P(x)} Nach Voraussetzung st x even, weshalb P(x) glt Aus der Tatsache, daß even en Fxpunkt st, läßt sch außerdem noch de folgende Elmnatonsregel x even x = 0 = P n x = n + 2 n even = P P ableten, de ene Fallunterschedung über alle Entstehungsmöglchketen von Elementen aus even darstellt Bewes Angenommen, es gelte x even, x = 0 = P und n x = n + 2 n even = P Aus x even erhält man aufgrund der Fxpunktegenschaft von even x {x x = 0 n x = n + 2 n even} Analog zum Bewes der Induktonsregel snd de zwe Fälle 1 x = 0 und 2 x = n + 2 n even zu unterscheden, aus denen gemäß Voraussetzung sofort P folgt De soeben am Bespel der Menge even erarbeteten Konzepte sollen nun m folgenden verallgemenert werden Herbe wrd nsbesondere auch de smultane nduktve Defnton mehrerer Mengen erlaubt Defnton 26 (Injektonen, Fallunterschedung) Seen de Typen τ 1,, τ n gegeben Dann bezechne n :: τ τ 1 + + τ n

KAPITEL 2 GRUNDLAGEN UND WERKZEUGE 18 ene Funkton mt den Egenschaften j = n (x) n j (y) x y = n (x) n (y) Weterhn se sum case :: (τ 1 τ) (τ n τ) τ 1 + + τ n τ ene Funkton mt der Egenschaft sum case f 1 f n (n (x)) = f (x) zur Formulerung von Fallunterschedungen auf dem Typ τ 1 + + τ n Defnton 27 (Inverses Bld) Das nverse Bld vmage f S der Menge S bzgl ener Funkton f se defnert durch vmage f S = {x f (x) S} Defnton 28 (Induktv defnerte Mengen) Seen S 1,, S n Bezechner für Mengen über den Typen τ 1,, τ n Ferner se R ene Menge von Enführungsregeln der Gestalt Q j t k F l (S ) t S wobe Q j ene belebge logsche Formel st, de kene der Bezechner S enthält t und t k seen belebge Terme und F l ene monotone Funkton Dann snd de Mengen S 1,, S n durch R nduktv defnert, falls glt F (U ) = {x v 1,, v m x = n (t) Q j t k F l (vmage n } T = lfp(f ) S 1 = vmage n 1 T U ) S n = vmage n n T

KAPITEL 2 GRUNDLAGEN UND WERKZEUGE 19 Herbe entsprcht jedes Gled der Dsjunkton nnerhalb von {x } ener Enführungsregel De v 1,, v m snd de n der entsprechenden Enführungsregel fre vorkommenden Varablen De Menge T enthält sämtlche Elemente aller Mengen S 1,, S n, verpackt n de entsprechenden Injektonen n 1,, n n De den enzelnen Mengen zugehörgen Elemente werden dann mttels vmage n 1 T,, vmage n n T weder aus T ausgepackt Um de Monotone von F scherzustellen, müssen Enführungsregeln stets de oben beschrebene Gestalt bestzen Theorem 29 (Charakterstsche Egenschaften nduktver Mengen) Für nduktv defnerte Mengen S 1,, S n lassen sch folgenden Regeln ableten: Enführungsregeln der Form Q j t k F l (S ) t S Elmnatonsregeln für jede der Mengen S 1,, S n der Form x S [x = t Q t k F l (S ) ] v1,,v m P P Ene Induktonsregel für alle Mengen S 1,, S n der Form [ Q t k F l (S {x P (x)}) ] v1,,v m P (t) x 1 S 1 = P 1 (x 1 ) x n S n = P n (x n ) bzw [ Q t k S P (t k ) ] v1,,v m P (t) x 1 S 1 = P 1 (x 1 ) x n S n = P n (x n ) falls F l = Id Bewes Monotone Unter der Voraussetzung S T zegen wr x x F (S) = x F (T ) Für alle betelgten Operatoren werden herbe Monotoneregeln we zb P = Q P = Q P = Q P = Q P P = Q Q P P = Q Q x P(x) = Q(x) ( x P(x)) = ( x Q(x)) S T x vmage f S = x vmage f T

KAPITEL 2 GRUNDLAGEN UND WERKZEUGE 20 verwendet, durch deren sukzessve Anwendung das obge Beweszel auf de Beweszele S S, T T und S T reduzert werden kann Enführungsregeln werden Es glt Unter den Voraussetzungen Q j, t k F l (S ), muß t S gezegt t S {Defnton von S } t vmage n T {Defnton von vmage} n (t) T {Fxpunktegenschaft von T, Monotone von F } n (t) {x x = n 1 ( ) v 1,, v m x = n (t) Q j t k F l (vmage n x = n n ( ) } T ) Man erhält somt das neue Beweszel n (t) = n 1 ( ) v 1,, v m n (t) = n (t) Q j t k F l (vmage n n (t) = n n ( ) T ) Durch Auswahl des geegneten Zwegs der Dsjunkton erhält man heraus das Beweszel v 1,, v m n (t) = n (t) Q j t k F l (vmage n T ) was sch mt Hlfe von Reflexvtät und der Voraussetzungen lösen läßt Elmnatonsregeln Unter den Voraussetzungen x S v 1,, v m x = t Q t k F l (S ) = P muß nun P gezegt werden De Vorgehenswese st ähnlch we bem Bewes der Enführungsregeln Aus der Voraussetzung x S erhält man nach Defnton x vmage n T, was glechbedeutend st mt n (x) T Unter Ausnutzung der Fxpunktegenschaft von T ergbt sch heraus n (x) {x x = n 1 ( ) v 1,, v m x = n (t) Q j t k F l (vmage n x = n n ( ) } T )

KAPITEL 2 GRUNDLAGEN UND WERKZEUGE 21 Nach Aufspaltung der Dsjunkton und Berückschtgung von vmage n T = S erhält man somt de Beweszele ( ) n (x) = n 1 ( ) = P v 1,, v m n (x) = n (t) Q j t k F l (S ) = P n (x) = n n ( ) = P De Beweszele mt Prämssen der Gestalt n (x) = n ( ), wobe, snd wegen n (x) n ( ) trval De verblebenden Beweszele mt Prämssen der Gestalt n (x) = n ( ) lassen sch unter Verwendung der Injektvtät von n umformen Aus ( ) erhält man bespelswese v 1,, v m x = t Q j t k F l (S ) = P was sch unter Verwendung der Voraussetzungen lösen läßt Induktonsregel Zum Bewes der Regel zegen wr zunächst das Lemma x x T = sum case P 1 P n x x 1 S 1 = P 1 (x 1 ) x n S n = P n (x n ) Aus x S folgt nach Defnton x vmage n T Aufgrund der Egenschaften von vmage folgt heraus n (x ) T Nach Voraussetzung glt daher sum case P 1 P n (n (x )), was glechbedeutend mt P (x ) st Deses Lemma st notwendg, da de zu bewesende Induktonsregel n verschedene Prädkate enthält, während de m folgenden Bewes verwendete abstrakte Induktonsregel (strongind) nur für en enzelnes Prädkat formulert st Wr zegen nun de Regel v 1,, v m Q t k S P (t k ) = P (t) x x T = sum case P 1 P n x ndem wr unter den Voraussetzungen v 1,, v m Q t k S P (t k ) = P (t) das Beweszel x x T = sum case P 1 P n x

KAPITEL 2 GRUNDLAGEN UND WERKZEUGE 22 zegen Mt Hlfe von (strongind) und der Monotone von F erhält man heraus das neue Beweszel Wegen x x {x x = n 1 ( ) v 1,, v m x = n (t) Q j t k (vmage n (T {x sum case P 1 P n x})) x = n n ( ) } = sum case P 1 P n x vmage n (T {x sum case P 1 P n x}) = {Dstrbutvtät von vmage über } (vmage n T ) (vmage n {x sum case P 1 P n x}) = {Verenfachungsregel für vmage und Mengenkomprehenson} (vmage n T ) {x P (x)} = {Defnton von S } S {x P (x)} erhält man heraus das Beweszel x x {x x = n 1 ( ) v 1,, v m x = n (t) Q j t k (S {x P (x)}) x = n n ( ) } = sum case P 1 P n x Nach Aufspaltung der Dsjunkton erhält man R verschedene Beweszele: ( ) x, x = n 1 ( ) = sum case P 1 P n x x, v 1,, v m x = n (t) Q j t k S P (t k ) = sum case P 1 P n x x, x = n n ( ) = sum case P 1 P n x Aus ( ) ergbt sch unter Verwendung der Prämsse x = n (t) das neue Beweszel x, v 1,, v m Q j t k S P (t k ) = P (t) das sch mt Hlfe der Voraussetzungen lösen läßt Kombnert man de soeben bewesene Regel mt dem obgen Lemma, so erhält man de gewünschte Induktonsregel Vele der her vorgestellten Bewesprnzpen sowe wetere Hnwese zur Implementerung enes Pakets für nduktve Defntonen n Isabelle snd n [Paulson, 1994] zu fnden Deses

KAPITEL 2 GRUNDLAGEN UND WERKZEUGE 23 Paper wecht allerdngs n manchen Punkten, nsbesondere be der Behandlung verschränkt rekursver Mengendefntonen, etwas von der her gegebenen Darstellung ab Da des n Isabelle/HOL bsher nur unvollständg mplementert war, wurde das exsterende Paket für nduktve Defntonen m Rahmen deser Arbet dahngehend verbessert

Kaptel 3 Arten und Egenschaften von Datentypen Wr beschreben m folgenden de Klassen von Datentypen, de mt Hlfe des m Rahmen deser Dpomarbet mplementerten Datentyppakets defnert werden können Im enzelnen snd des verschränkt und verschachtelt rekursve Datentypen, für de wr jewels charakterstsche Theoreme angeben 31 Grundlagen Vele funktonale Programmersprachen we zb Haskell oder ML beten de Möglchket, rekursve Datentypen zu defneren En Bespel herfür st der Datentyp der Lsten datatype α lst = Nl Cons α (α lst) Durch dese Defnton werden de Konstanten Nl :: α lst und Cons :: α α lst α lst engeführt, de als Konstruktoren des Datentyps bezechnet werden Vom Standpunkt der algebraschen Spezfkaton funktonaler Programme aus betrachtet snd folgende charakterstsche Egenschaften derartger Datentypen von Bedeutung: De Konstruktoren snd verscheden, dh Nl Cons x xs De Konstruktoren snd njektv, dh Cons x xs = Cons y ys x = y xs = ys Es glt ene strukturelle Induktonsregel P Nl x, xs P xs = P (Cons x xs) P xs Datentypen, deren Konstruktoren verscheden und njektv snd, werden oft auch als free Datentypen bezechnet De Konstruktordarstellung von Elementen des Datentyps st herbe stets endeutg So glt Cons x 1 (Cons x 2 ( (Cons x m Nl) )) = Cons y 1 (Cons y 2 ( (Cons y n Nl) )) 24

KAPITEL 3 ARTEN UND EIGENSCHAFTEN VON DATENTYPEN 25 genau dann, wenn m = n 1 m = x = y Datentypen we α lst, für de ene strukturelle Induktonsregel glt, bezechnet man als nduktve Datentypen Charakterstsch für nduktve Datentypen st, daß jedes Element deses Typs ene Darstellung als Konstruktorterm bestzt, weshalb derartge Datentypen gelegentlch auch termerzeugt genannt werden Insbesondere snd alle Elemente deses Typs von endlcher Tefe Im Fall des Typs α lst bedeutet des, daß de durch xs xs x xs = Cons x xs defnerte Relaton fundert st Mt Hlfe der Induktonsregel läßt sch bespelswese auch zegen, daß für alle Lsten xs stets xs Cons x xs glt Funktonen auf derartgen Datentypen werden mest durch Angabe mehrerer charakterstscher Glechungen unter Verwendung von Pattern Matchng spezfzert So kann zb de Funkton foldl :: (α β α) α β lst α durch de Glechungen foldl f a Nl = a foldl f a (Cons x xs) = foldl f (f a x) xs beschreben werden Be der Umsetzung derartger Funktonsdefntonen n HOL st zu beachten, daß Funktonen n HOL stets total snd Des macht Bewese bestmmter Egenschaften von Funktonen zwar enersets relatv enfach, erfordert jedoch anderersets be deren Defnton ene gewsse Vorscht: So läßt sch de durch de Glechung undefned(x) = undefned(x) + 1 charakterserte, für jedes Argument nchttermnerende Funkton n HOL ncht unmttelbar beschreben Obge Glechung würde ene Inkonsstenz zur Folge haben, da sch heraus lecht 0 = 1 folgern leße Zur Beschrebung parteller Funktonen besser geegnet snd Logken we HOLCF, wo jedoch vele Bewese schwergere Konzepte we Fxpunktndukton und Zulässgket erfordern Um ene rekursve Funkton n HOL defneren zu können, muß also stets en Nachwes für deren Termnerung erbracht werden Be sogenannten prmtv rekursven Funktonen st de Termnerung besonders offenschtlch Im Falle des Datentyps α lst versteht man herunter jede Funkton, de sch mt Hlfe enes Kombnators lst rec :: β (α α lst β β) α lst β darstellen läßt, der durch de Glechungen lst rec f 1 f 2 Nl = f 1 (lst rec Nl) lst rec f 1 f 2 (Cons x xs) = f 2 x xs (lst rec f 1 f 2 xs) (lst rec Cons) charaktersert wrd So kann de obge Funkton foldl durch foldl = λf, a, xs lst rec (λf, a a) (λx, xs, r (λf, a r f (f a x))) xs f a

KAPITEL 3 ARTEN UND EIGENSCHAFTEN VON DATENTYPEN 26 defnert werden We man lecht nachprüft, glt foldl f a (Cons x xs) = {Defnton von foldl} lst rec (λf, a a) (λx, xs, r (λf, a r f (f a x))) (Cons x xs) f a = {lst rec Cons} lst rec (λf, a a) (λx, xs, r (λf, a r f (f a x))) xs f (f a x) = {Defnton von foldl} foldl f (f a x) xs De Exstenz enes derartgen Kombnators lst rec kann, we n Kaptel 4 gezegt wrd, aus den charakterstschen Egenschaften des Datentyps, dh aus der Verschedenhet und Injektvtät der Konstruktoren sowe der Induktonsregel abgeletet werden Man beachte, daß das her beschrebene, n HOL verwendete Konzept der prmtven Rekurson mächtger st als das glechnamge, aus der Berechenbarketstheore bekannte Konzept So muß nur en ausgezechnetes Argument m Falle der Funkton foldl das drtte Argument be jedem rekursven Aufruf strukturell klener werden Obwohl de anderen Argumente jeden belebgen Wert annehmen dürfen, st de Termnerung der Funkton damt schergestellt En allgemenerer Mechansmus zur Defnton rekursver Funktonen, be dem der Nachwes der Termnerung durch de Angabe ener funderten Ordnung auf dem Typ des rekursven Arguments erbracht wrd, st n [Slnd, 1996] beschreben 32 Verschränkt rekursve Datentypen Verschränkt rekursve Datentypen haben de allgemene Gestalt datatype (α 1,, α h )t 1 = C 1 1 τ 1 1,1 τ 1 1,m 1 1 C 1 k 1 τ 1 k 1,1 τ 1 k 1,m 1 k 1 and (α 1,, α h )t n = C n 1 τ n 1,1 τ n 1,m n 1 C n k n τ n k n,1 τ n k n,m n kn ) wobe TVars (τ j, {α 1,, α h } glt und τ j, en zulässger Typausdruck sen muß De Zulässgket enes Typausdrucks st herbe we folgt defnert: Defnton 31 (Zulässgket von Typausdrücken) En Typausdruck τ n ener verschränkt rekursven Datentypdefnton heßt zulässg, falls glt: τ st ncht rekursv, dh τ enthält kenen der neu defnerten Typkonstruktoren t 1,, t n, oder τ = (α 1,, α h )t j für 1 j n

KAPITEL 3 ARTEN UND EIGENSCHAFTEN VON DATENTYPEN 27 Um de Konstruerbarket der Datentypen scherzustellen, dürfen auf der rechten Sete der Typglechungen kene spezelleren Instanzen von Typen auf der lnken Sete der Glechungen vorkommen Be echt verschränkt rekursven Datentypdefntonen kann dese Bedngung nur dann erfüllt sen, wenn alle neu defnerten Typkonstruktoren von glecher Stellgket snd, weshalb alle Typkonstruktoren t 1,, t n n der obgen Defntonen de Typparameter α 1,, α h bestzen We n Abschntt 221 angedeutet wurde, dürfen Typen n HOL ncht leer sen Jeder neue Datentyp (α 1,, α h )t j mt 1 j n st herbe genau dann ncht leer, falls er enen Konstruktor C j bestzt, für den glt: Für alle Argumenttypen τ j, der Form (α 1,, α h )t j st der Datentyp (α 1,, α h )t j ncht leer Ene notwendge Bedngung st offenschtlch, daß mndestens en Datentyp (α 1,, α h )t j enen Konstruktor C j ohne rekursve Argumente hat Für de Typen der durch dese Datentypdefnton engeführten Konstruk- Konstruktoren torfunktonen glt C j :: τ j,1 τ j,m j (α 1,, α h )t j De Konstruktoren snd verscheden, dh = C j und njektv, dh x 1 x m j C j y 1 y m j C j x 1 x m j = C j y 1 y m j x 1 = y 1 x m j = y m j Indukton Für de Typen (α 1,, α h )t 1,, (α 1,, α h )t n glt ene smultane Induktonsregel der Form ( ) ( ) x 1,, x m 1 P 1 s 1 x 1,1 r 1 P 1,1 s 1 x r 1,l 1 1 1 1,l 1 1 = ( ) P 1 C1 1 x 1 x m 1 1 x 1,, x m 1 k1 P s 1 k1,1 ( ) ( ) x r 1 P k1,1 s 1 x r k 1,l k 1 1 k 1,l 1 1 k 1 = P 1 ( C 1 k 1 x 1 x m 1 k1 ) x 1,, x m n 1 P s n 1,1 ( x r n 1,1 ) P s n 1,l n 1 x 1,, x m n k n P s n kn,1 ( ) x r n 1,l 1 n ( ) ( ) x r n k P n,1 s n x kn,l kn n r n kn,l kn n P 1 (x 1 ) P n (x n ) = P n ( C n 1 x 1 x m n 1 ) = P n ( C n k n x 1 x m n k n ) wobe { ( r j ),1, sj,1 { (, ) ( )},, r j, s j =,l j,l j 1 m j 1 n τ j, = (α 1,, α h )t }