Syntax und Semantik der Aussagenlogik

Werbung
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
Herunterladen