Hauptseminar math. Logik Sommersemester 2014 Prof. Dr. Peter Koepke, Regula Krapf A. Pick, A. Ribelles, T. Weiß Syntax und Semantik der Aussagenlogik Thesenpapier Nach dem Einbinden der Vorarbeiten von Harrison vermöge des Befehls: 1 # # use " init . ml " ;; muss noch der Parser auf aussagenlogische Formel umgestellt werden: 1 # l e t default_parser = p ar se _pr op _f or mul a ;; Zeichentabelle Deutsch Symbolisch ASCII OCaml falsch wahr nicht p p und q p oder q p impliziert q p genau dann, wenn q ⊥ > ¬p p∧q p∨q p⇒q p⇔q false true ~p p /\ q p \/ q p ==> q p <=> q False True Not p And(p,q) Or(p,q) Imp(p,q) Iff(p,q) Formeln werden in ASCII-Notation in frz. Anführungszeichen eingegeben: <<. . . >>. Syntax 1 2 3 4 5 6 7 8 9 10 type ( ’ a ) formula = False | True | Atom o f ’a | Not o f ( ’ a ) formula | And o f ( ’ a ) formula * ( ’ a ) formula | Or o f ( ’ a ) formula * ( ’ a ) formula | Imp o f ( ’ a ) formula * ( ’ a ) formula | Iff o f ( ’ a ) formula * ( ’ a ) formula | Forall o f string * ( ’ a ) formula | Exists o f string * ( ’ a ) formula ;; Seite 1 von 2 Hauptseminar math. Logik Sommersemester 2014 Prof. Dr. Peter Koepke, Regula Krapf A. Pick, A. Ribelles, T. Weiß Semantik 1 2 3 4 5 6 7 8 9 10 l e t rec eval fm v = match fm with False -> f a l s e | True -> true | Atom ( x ) -> v ( x ) | Not ( p ) -> not ( eval p v ) | And (p , q ) -> ( eval p v ) & ( eval q v ) | Or (p , q ) -> ( eval p v ) or ( eval q v ) | Imp (p , q ) -> not ( eval p v ) or ( eval q v ) | Iff (p , q ) -> ( eval p v ) = ( eval q v ) ;; Nützliche Funktionen Befehl Funktion atoms fm print_truthtable fm tautology fm psubst subfn Gibt für eine Formel fm die Menge ihrer Atome zurück. Schreibt die Wahrheitstafel zur Formel fm. Entscheidet, ob fm eine Tautologie ist. Ersetzt Atome x durch Formeln ϕ für geg. Formeln fm. subfn hat die Form: (P"x" |=> <<ϕ>>) fm Zwei Substitutionssätze Satz. Für jede atomare Aussage x und beliebige Formeln p und q sowie eine beliebige Bewertungsfunktion v gilt: eval (psubst (x Z⇒ q) p) v = eval p((x 7→ eval q v) v. Satz. Seien p und q Formeln und v eine Bewertungsfunktion, sodass eval p v = eval q v. Dann gilt für jedes Atom x und jede Formel r: eval (psubst (x Z⇒ p) r) v = eval (psubst (x Z⇒ q) r) v. Seite 2 von 2