• Keine Ergebnisse gefunden

Theorembeweiser und ihre Anwendungen

N/A
N/A
Protected

Academic year: 2022

Aktie "Theorembeweiser und ihre Anwendungen"

Copied!
54
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Theorembeweiser und ihre Anwendungen

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

Lehrstuhl Programmierparadigmen IPD Snelting

Universit¨at Karlsruhe (TH)

(2)

Ziel der Vorlesung

Wesen der Theorembeweiser

Einblick in aktuelle Forschungsthemen mit Theorembeweiserbezug (praktische) Arbeit mit Theorembeweiser

Diese Vorlesung beinhaltetnicht:

Einf¨uhrung in funktionale Programmierung Logikprogrammierung (Prolog)

(Tiefen der) Logik, Tableaux-, Resolutionskalk¨ul, etc. interne Funktionsweise von Theorembeweisern Wie programmiere ich einen Theorembeweiser?

(3)

Ziel der Vorlesung

Wesen der Theorembeweiser

Einblick in aktuelle Forschungsthemen mit Theorembeweiserbezug (praktische) Arbeit mit Theorembeweiser

Diese Vorlesung beinhaltetnicht:

Einf¨uhrung in funktionale Programmierung Logikprogrammierung (Prolog)

(Tiefen der) Logik, Tableaux-, Resolutionskalk¨ul, etc.

interne Funktionsweise von Theorembeweisern Wie programmiere ich einen Theorembeweiser?

(4)

Organisatorisches

Realisierung: Vorlesung mit Rechner¨ubung unter Anleitung Diplom-/Masterstudiengang Informatik, Vertiefungsfach Vertiefungsgebiete:

01 Theoretische Grundlagen

06 Softwaretechnik und ¨Ubersetzerbau Vorlesung: Donnerstag, 8.45 - 9.30, R -143

Forschungsorientiert, Fokus auf aktuelle Arbeiten

http://pp.info.uni-karlsruhe.de/lehre/SS2009/tba/index.php Rechner¨ubung unter Anleitung + ¨Ubung: Dienstag, 11.30 - 13.00, R -143

Grundlagen des Beweisassistenten Isabelle/HOL (und der Benutzeroberfl¨ache Isar)

(5)

Vorlesung

Behandelte Fragen:

Was ist ein Theorembeweiser?

Welche Theorembeweiser gibt es? (Auswahl!)

Worin unterscheiden sich verschiedene Theorembeweiser?

Was kann ein Theorembeweiser leisten (und was nicht)?

Wozu verwendet man Theorembeweiser? (Auswahl!)

Fokus auf den letzten Punkt

(6)

Vorlesung

Behandelte Fragen:

Was ist ein Theorembeweiser?

Welche Theorembeweiser gibt es? (Auswahl!)

Worin unterscheiden sich verschiedene Theorembeweiser?

Was kann ein Theorembeweiser leisten (und was nicht)?

Wozu verwendet man Theorembeweiser? (Auswahl!) Fokus auf den letzten Punkt

(7)

Vorlesung

Einsatz von Theorembeweisern in der aktuellen Forschung an Beispielen:

Anwendungen in der Mathematik

Verifikation von kryptographischen Protokollen formale Semantiken und Typsicherheit

Typbasierte Informationsflußkontrolle Verifikation eines Compiler

evtl. weitere Themen

Keine Literatur zur Vorlesung

Vorlesungsfolien und entsprechende Paper (f¨ur Interessierte) werden vorher auf Vorlesungsseite zum Download bereit gestellt

(8)

Vorlesung

Einsatz von Theorembeweisern in der aktuellen Forschung an Beispielen:

Anwendungen in der Mathematik

Verifikation von kryptographischen Protokollen formale Semantiken und Typsicherheit

Typbasierte Informationsflußkontrolle Verifikation eines Compiler

evtl. weitere Themen

Keine Literatur zur Vorlesung

Vorlesungsfolien und entsprechende Paper (f¨ur Interessierte) werden

(9)

Ubung ¨

Erste Schritte mit einem ausgew¨ahlten Theorembeweiser:Isabelle/HOL Kennenlernen der Oberfl¨ache Isar(verst¨andliche Notation)

Behandelte Themen:

Regeln, Deduktion, Quantoren

Verwendung automatischer Beweistaktiken Funktionale Programmierung

Datentypen primitive Rekursion strukturelle Induktion

Pr¨adikate, Mengen und Relationen Induktive Pr¨adikate und Mengen Regelinduktion

Reflexive transitive H¨ulle

(10)

Ubung ¨

Erste Schritte mit einem ausgew¨ahlten Theorembeweiser:Isabelle/HOL Kennenlernen der Oberfl¨ache Isar(verst¨andliche Notation)

Behandelte Themen:

Regeln, Deduktion, Quantoren

Verwendung automatischer Beweistaktiken Funktionale Programmierung

Datentypen primitive Rekursion strukturelle Induktion

Pr¨adikate, Mengen und Relationen Induktive Pr¨adikate und Mengen Regelinduktion

(11)

Ubung ¨

Erste Schritte mit einem ausgew¨ahlten Theorembeweiser:Isabelle/HOL Kennenlernen der Oberfl¨ache Isar(verst¨andliche Notation)

Behandelte Themen:

Regeln, Deduktion, Quantoren

Verwendung automatischer Beweistaktiken Funktionale Programmierung

Datentypen primitive Rekursion strukturelle Induktion

Pr¨adikate, Mengen und Relationen Induktive Pr¨adikate und Mengen Regelinduktion

Reflexive transitive H¨ulle

(12)

Ubung ¨

Erste Schritte mit einem ausgew¨ahlten Theorembeweiser:Isabelle/HOL Kennenlernen der Oberfl¨ache Isar(verst¨andliche Notation)

Behandelte Themen:

Regeln, Deduktion, Quantoren

Verwendung automatischer Beweistaktiken Funktionale Programmierung

Datentypen primitive Rekursion strukturelle Induktion

Pr¨adikate, Mengen und Relationen Induktive Pr¨adikate und Mengen Regelinduktion

(13)

Ubung ¨

Erste Schritte mit einem ausgew¨ahlten Theorembeweiser:Isabelle/HOL Kennenlernen der Oberfl¨ache Isar(verst¨andliche Notation)

Behandelte Themen:

Regeln, Deduktion, Quantoren

Verwendung automatischer Beweistaktiken Funktionale Programmierung

Datentypen primitive Rekursion strukturelle Induktion

Pr¨adikate, Mengen und Relationen Induktive Pr¨adikate und Mengen Regelinduktion

Reflexive transitive H¨ulle

(14)

Rechner¨ ubung unter Anleitung

zu Beginn jeder ¨Ubung Folien zum aktuellen Thema Folien Montag vor ¨Ubung zum Download auf ¨Ubungsseite dann selbstst¨andig Bearbeitung der ¨Ubungen am Rechner Isabelle-Rahmen verf¨ugbar auf ¨Ubungsseite

Hilfe und Unterst¨utzung durch anwesenden Betreuer falls Zeit der ¨Ubung nicht ausreicht, sollten Aufgaben eigenst¨andig fertig bearbeitet werden

jede Woche neues Thema

(15)

Literatur ¨ Ubung

T. Nipkow, L. C. Paulson and M. Wenzel.

Isabelle/HOL - The Tutorial.

Springer, 2008.

Das Buch ist leider ziemlich veraltet, Download aktuelle Version:

http://isabelle.in.tum.de/dist/Isabelle/doc/tutorial.pdf D. J. Velleman.

How to Prove it: A Structural Approach.

Cambridge University Press, 1996.

Allgemeine Einf¨uhrung in Beweistheorie

(16)

Teil I

Was ist ein Theorembeweiser?

(17)

Erstmal ganz abstrakt...

Ein Theorembeweiser beweist Aussagen ¨uber formale Strukturen durch Anwendung von Regeln.

Typen und Datentypen (nat¨urliche Zahlen, Listen, Paare, . . . ) Mengen, Relationen, Funktionen

funktionale Programmierung erm¨oglicht selbstdefinierte Strukturen (durch Rekursion, Fallunterscheidung etc.)

definiert im jeweiligen System!

(18)

Etwas genauer...

Ein Theorembeweiser beweist Aussagen ¨uberformale Strukturen durch Anwendung von Regeln.

Typen und Datentypen (nat¨urliche Zahlen, Listen, Paare, . . . ) Mengen, Relationen, Funktionen

funktionale Programmierung erm¨oglicht selbstdefinierte Strukturen (durch Rekursion, Fallunterscheidung etc.)

definiert im jeweiligen System!

(19)

Etwas genauer...

Ein Theorembeweiser beweist Aussagen ¨uberformale Strukturen durch Anwendung von Regeln.

Typen und Datentypen (nat¨urliche Zahlen, Listen, Paare, . . . ) Mengen, Relationen, Funktionen

funktionale Programmierung erm¨oglicht selbstdefinierte Strukturen (durch Rekursion, Fallunterscheidung etc.)

definiert im jeweiligen System!

(20)

Etwas genauer...

Ein Theorembeweiser beweist Aussagen ¨uberformale Strukturen durch Anwendung von Regeln.

Typen und Datentypen (nat¨urliche Zahlen, Listen, Paare, . . . ) Mengen, Relationen, Funktionen

funktionale Programmierung erm¨oglicht selbstdefinierte Strukturen (durch Rekursion, Fallunterscheidung etc.)

definiert im jeweiligen System!

(21)

Etwas genauer...

Ein Theorembeweiser beweist Aussagen ¨uberformale Strukturen durch Anwendung von Regeln.

Typen und Datentypen (nat¨urliche Zahlen, Listen, Paare, . . . ) Mengen, Relationen, Funktionen

funktionale Programmierung erm¨oglicht selbstdefinierte Strukturen (durch Rekursion, Fallunterscheidung etc.)

definiert im jeweiligen System!

(22)

Etwas genauer...

Ein Theorembeweiser beweist Aussagen ¨uberformale Strukturen durch Anwendung von Regeln.

Typen und Datentypen (nat¨urliche Zahlen, Listen, Paare, . . . ) Mengen, Relationen, Funktionen

funktionale Programmierung erm¨oglicht selbstdefinierte Strukturen (durch Rekursion, Fallunterscheidung etc.)

definiert im jeweiligen System!

(23)

Etwas genauer...

Ein Theorembeweiser beweist Aussagen ¨uber formale Strukturen durch Anwendung von Regeln.

automatisch:

prozedural:

deklarativ:

(24)

Etwas genauer...

Ein Theorembeweiser beweist Aussagen ¨uber formale Strukturen durch Anwendung von Regeln.

automatisch:

Theorembeweiser versucht Ziel eigenst¨andig zu l¨osen bei Nichtgelingen Meldung, woran gescheitert und Abbruch Hilfslemmas zeigen und Beweisprozess hinzuf¨ugen

nochmals versuchen, Ziel zu zeigen prozedural:

(25)

Etwas genauer...

Ein Theorembeweiser beweist Aussagen ¨uber formale Strukturen durch Anwendung von Regeln.

automatisch:

prozedural:

Taktiken f¨ur bestimmte automatisierte Prozesse

k¨onnen durch vorher gezeigte Hilfslemmas erweitert werden Beweisprozess wird nicht abgebrochen falls erfolglos, sondern an den Benutzer ¨ubergeben

mittels Beweisskripten ’Dirigieren’ der Schlussfolgerung deklarativ:

(26)

Etwas genauer...

Ein Theorembeweiser beweist Aussagen ¨uber formale Strukturen durch Anwendung von Regeln.

automatisch:

prozedural:

deklarativ:

Benutzer schreibt kompletten Beweis System pr¨uft den Beweis

bricht ab, falls Schlussfolgerung nicht korrekt

(27)

Etwas genauer...

Ein Theorembeweiser beweist Aussagen ¨uber formale Strukturen durch Anwendung von Regeln.

Unifikation und Substitution Simplifikation

(nat¨urliche) Deduktion inkl. Quantoren

Induktion (nat¨urlich, wohlgeformt, strukturell, Regel-Ind., . . . )

(28)

Etwas genauer...

Ein Theorembeweiser beweist Aussagen ¨uber formale Strukturen durch Anwendung von Regeln.

Unifikation und Substitution Simplifikation

(nat¨urliche) Deduktion inkl. Quantoren

Induktion (nat¨urlich, wohlgeformt, strukturell, Regel-Ind., . . . )

(29)

Etwas genauer...

Ein Theorembeweiser beweist Aussagen ¨uber formale Strukturen durch Anwendung von Regeln.

Unifikation und Substitution Simplifikation

(nat¨urliche) Deduktion inkl. Quantoren

Induktion (nat¨urlich, wohlgeformt, strukturell, Regel-Ind., . . . )

(30)

Etwas genauer...

Ein Theorembeweiser beweist Aussagen ¨uber formale Strukturen durch Anwendung von Regeln.

Unifikation und Substitution Simplifikation

(nat¨urliche) Deduktion inkl. Quantoren

Induktion (nat¨urlich, wohlgeformt, strukturell, Regel-Ind., . . . )

(31)

Etwas genauer...

Ein Theorembeweiser beweist Aussagen ¨uber formale Strukturen durch Anwendung von Regeln.

Unifikation und Substitution Simplifikation

(nat¨urliche) Deduktion inkl. Quantoren

Induktion (nat¨urlich, wohlgeformt, strukturell, Regel-Ind., . . . )

(32)

Was ist Unifikation?

Unifikation:

Verfahren, um zwei Terme identisch zu machen

eventuell durch Ersetzen der schematischen Variablen durch Terme Anderes Beispiel: Pattern Matching

Beispiel: Unifikation der Terme (?x,?y,?z Variablen,aKonstante) f(?x,g(?x,?x)) und f(h(?y),g(?z,h(a)))

1. Schritt: ?x =h(a) 2. Schritt: ?z =h(a) 3. Schritt: ?y =a

(33)

Was ist Unifikation?

Unifikation:

Verfahren, um zwei Terme identisch zu machen

eventuell durch Ersetzen der schematischen Variablen durch Terme Anderes Beispiel: Pattern Matching

Beispiel: Unifikation der Terme (?x,?y,?z Variablen,aKonstante) f(?x,g(?x,?x)) und f(h(?y),g(?z,h(a))) 1. Schritt:

?x =h(a) 2. Schritt: ?z =h(a) 3. Schritt: ?y =a

(34)

Was ist Unifikation?

Unifikation:

Verfahren, um zwei Terme identisch zu machen

eventuell durch Ersetzen der schematischen Variablen durch Terme Anderes Beispiel: Pattern Matching

Beispiel: Unifikation der Terme (?x,?y,?z Variablen,aKonstante) f(h(?y),g(h(?y),h(?y))) und f(h(?y),g(?z,h(a))) 1. Schritt: ?x =h(?y)

?x=h(a) 2. Schritt: ?z =h(a)

3. Schritt: ?y =a

(35)

Was ist Unifikation?

Unifikation:

Verfahren, um zwei Terme identisch zu machen

eventuell durch Ersetzen der schematischen Variablen durch Terme Anderes Beispiel: Pattern Matching

Beispiel: Unifikation der Terme (?x,?y,?z Variablen,aKonstante) f(h(?y),g(h(?y),h(?y))) und f(h(?y),g(?z,h(a))) 1. Schritt: ?x =h(?y)

?x=h(a)

2. Schritt:

?z =h(a) 3. Schritt: ?y =a

(36)

Was ist Unifikation?

Unifikation:

Verfahren, um zwei Terme identisch zu machen

eventuell durch Ersetzen der schematischen Variablen durch Terme Anderes Beispiel: Pattern Matching

Beispiel: Unifikation der Terme (?x,?y,?z Variablen,aKonstante) f(h(?y),g(h(?y),h(?y))) und f(h(?y),g(h(?y),h(a))) 1. Schritt: ?x =h(?y)

?x=h(a)

2. Schritt: ?z =h(?y)

?z =h(a) 3. Schritt: ?y =a

(37)

Was ist Unifikation?

Unifikation:

Verfahren, um zwei Terme identisch zu machen

eventuell durch Ersetzen der schematischen Variablen durch Terme Anderes Beispiel: Pattern Matching

Beispiel: Unifikation der Terme (?x,?y,?z Variablen,aKonstante) f(h(?y),g(h(?y),h(?y))) und f(h(?y),g(h(?y),h(a))) 1. Schritt: ?x =h(?y)

?x=h(a)

2. Schritt: ?z =h(?y)

?z =h(a)

3. Schritt:

?y =a

(38)

Was ist Unifikation?

Unifikation:

Verfahren, um zwei Terme identisch zu machen

eventuell durch Ersetzen der schematischen Variablen durch Terme Anderes Beispiel: Pattern Matching

Beispiel: Unifikation der Terme (?x,?y,?z Variablen,aKonstante) f(h(a),g(h(a),h(a))) und f(h(a),g(h(a),h(a))) 1. Schritt: ?x =h(a)

2. Schritt: ?z =h(a) 3. Schritt: ?y =a

(39)

Was ist Substitution?

Substitution:

K¨onnen einen Term durch einen anderen ersetzen, wenn beide gleich sind Regel:

s =t P[s/x]

P[t/x]

P[t/x]: ersetze x inP durcht

(40)

Was ist Deduktion?

Deduktion:

meist Inferenzregeln (aus Pr¨amissen folgt Konklusion) f¨ur jedes logische Symbol zwei Regeln:

Introduktion: wie erhalte ich diese Formel?

Elimination: was kann ich aus dieser Formel folgern?

Beispiel:

Introduktion von Konjunktion: P Q P∧Q

Elimination von Konjunktion:

P ∧Q P Q

R R

mehr in den ¨Ubungen!

(41)

Was ist Deduktion?

Deduktion:

meist Inferenzregeln (aus Pr¨amissen folgt Konklusion) f¨ur jedes logische Symbol zwei Regeln:

Introduktion: wie erhalte ich diese Formel?

Elimination: was kann ich aus dieser Formel folgern?

Beispiel:

Introduktion von Konjunktion: P Q P∧Q

Elimination von Konjunktion:

P ∧Q P Q

R R

mehr in den ¨Ubungen!

(42)

Was ist Induktion?

Induktion:

nat¨urliche Induktion: zeigeP(0) undP(n)−→P(n+ 1) strukturelle Induktion:Induktion ¨uber rekursive Datentypen Beispiel: Listen von nat¨urlichen Zahlennat list = []|nat#nat list ([] =leere Liste, # = Konkatenation)

Induktion: zeige P([]) und P(ns)−→P(n#ns) wohlgeformte Induktion:Induktion ¨uber Relationen

Beispiel: <(auch: starke Induktion) (∀k <n.P(k))−→P(n)

mehr in den ¨Ubungen!

(43)

Was ist Induktion?

Induktion:

nat¨urliche Induktion: zeigeP(0) undP(n)−→P(n+ 1) strukturelle Induktion:Induktion ¨uber rekursive Datentypen Beispiel: Listen von nat¨urlichen Zahlennat list = []|nat#nat list ([] =leere Liste, # = Konkatenation)

Induktion: zeige P([]) und P(ns)−→P(n#ns) wohlgeformte Induktion:Induktion ¨uber Relationen

Beispiel: <(auch: starke Induktion) (∀k <n.P(k))−→P(n)

mehr in den ¨Ubungen!

(44)

Was ist Induktion?

Induktion:

nat¨urliche Induktion: zeigeP(0) undP(n)−→P(n+ 1) strukturelle Induktion:Induktion ¨uber rekursive Datentypen Beispiel: Listen von nat¨urlichen Zahlennat list = []|nat#nat list ([] =leere Liste, # = Konkatenation)

Induktion: zeige P([]) und P(ns)−→P(n#ns) wohlgeformte Induktion:Induktion ¨uber Relationen

Beispiel: <(auch: starke Induktion) (∀k <n.P(k))−→P(n)

mehr in den ¨Ubungen!

(45)

Was ist Induktion?

Induktion:

nat¨urliche Induktion: zeigeP(0) undP(n)−→P(n+ 1) strukturelle Induktion:Induktion ¨uber rekursive Datentypen Beispiel: Listen von nat¨urlichen Zahlennat list = []|nat#nat list ([] =leere Liste, # = Konkatenation)

Induktion: zeige P([]) und P(ns)−→P(n#ns) wohlgeformte Induktion:Induktion ¨uber Relationen

Beispiel: <(auch: starke Induktion) (∀k <n.P(k))−→P(n)

mehr in den ¨Ubungen!

(46)

Was ist Induktion?

Induktion:

nat¨urliche Induktion: zeigeP(0) undP(n)−→P(n+ 1) strukturelle Induktion:Induktion ¨uber rekursive Datentypen Beispiel: Listen von nat¨urlichen Zahlennat list = []|nat#nat list ([] =leere Liste, # = Konkatenation)

Induktion: zeige P([]) und P(ns)−→P(n#ns) wohlgeformte Induktion:Induktion ¨uber Relationen

Beispiel: <(auch: starke Induktion) (∀k <n.P(k))−→P(n) mehr in den ¨Ubungen!

(47)

Fazit

Theorembeweiser sind m¨achtiges Tool, aber kein ’goldener Hammer’ ! Kann Sicherheit bzgl. Aussagen betr¨achtlich erh¨ohen

aber ’schnell mal etwas formalisieren und beweisen’ unm¨oglich meistens werden Aussagen ¨uber Kernprobleme formalisiert und bewiesen

(48)

Fragen

Sind ’Papier und Bleistift’ Beweise nicht einfacher?

Formalisierung in Theorembeweiser braucht viel Formalisierungsarbeit, auch f¨ur scheinbar ’triviale’ Dinge

doch Beweise von Hand enthalten oftmals Fehler, vor allem f¨ur komplexe Strukturen

Viel Aufwand, daf¨ur garantierte Korrektheit!

(49)

Fragen

Sind ’Papier und Bleistift’ Beweise nicht einfacher?

Formalisierung in Theorembeweiser braucht viel Formalisierungsarbeit, auch f¨ur scheinbar ’triviale’ Dinge

doch Beweise von Hand enthalten oftmals Fehler, vor allem f¨ur komplexe Strukturen

Viel Aufwand, daf¨ur garantierte Korrektheit!

(50)

Fragen

Sind ’Papier und Bleistift’ Beweise nicht einfacher?

Formalisierung in Theorembeweiser braucht viel Formalisierungsarbeit, auch f¨ur scheinbar ’triviale’ Dinge

doch Beweise von Hand enthalten oftmals Fehler, vor allem f¨ur komplexe Strukturen

Viel Aufwand, daf¨ur garantierte Korrektheit!

(51)

Fragen

Sind ’Papier und Bleistift’ Beweise nicht einfacher?

Formalisierung in Theorembeweiser braucht viel Formalisierungsarbeit, auch f¨ur scheinbar ’triviale’ Dinge

doch Beweise von Hand enthalten oftmals Fehler, vor allem f¨ur komplexe Strukturen

Viel Aufwand, daf¨ur garantierte Korrektheit!

(52)

Fragen

Wie kann ich sicher sein, dass meine Abstraktion das gew¨ahlte Problem beschreibt?

Im Allgemeinen: gar nicht!

Je genauer am konkreten Problem, desto gr¨oßer die Sicherheit, aber ’Formalisierungsl¨ucke’ bleibt

(53)

Fragen

Wie kann ich sicher sein, dass meine Abstraktion das gew¨ahlte Problem beschreibt?

Im Allgemeinen: gar nicht!

Je genauer am konkreten Problem, desto gr¨oßer die Sicherheit, aber ’Formalisierungsl¨ucke’ bleibt

(54)

Fragen

Wie kann ich sicher sein, dass meine Abstraktion das gew¨ahlte Problem beschreibt?

Im Allgemeinen: gar nicht!

Je genauer am konkreten Problem, desto gr¨oßer die Sicherheit, aber ’Formalisierungsl¨ucke’ bleibt

Referenzen

ÄHNLICHE DOKUMENTE

dann auch von diesem gesendet und Inhalt unver¨ andert Typisches Protokoll: erm¨ oglicht A B zu kontaktieren, um exklusiven Schl¨ ussel auszutauschen (evtl. mit Hilfe

Heap: Abbildung Adressen (nat¨ urliche Zahlen) nach Objekte Objekt: Tupel aus Klassenname und Feldern. Felder: Abbildung Tupel (Feldname, definierende Klasse) nach Wert Lookup kann

Vertraulichkeit: vertrauliche Information (z.B. systeminterne Daten) darf nicht nach außen (z.B. Internet) gelangen Integrit¨ at: kritische Berechnungen d¨ urfen nicht von

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

Ein Theorembeweiser beweist Aussagen über formale Strukturen durch Anwendung von Regeln.. Typen und Datentypen (natürliche Zahlen, Listen, Paare,. ) Mengen,

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 =

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