Logic
Klasse Logic
: Aussagenlogik
Statische Klasse: nur Klassenmethoden
Aussagenlogische Formeln, die den Klassenmethoden übergeben werden,
müssen wie folgt aufgebaut sein:
Variablen müssen einzelne Buchstaben sein.
Junktoren: "not
", "and
", "or
", "xor
", "->
", "<->
".
Übersicht:
Methode | Bedeutung |
equivalent (f1, f2) | Sind die Formeln f1 und f2 äquivalent? |
implies (f1, f2) | Folgt aus der Formel f1 die Formel f2? |
satisfiable (f) | Ist die Formel f erfüllbar? |
satisfies (f, truthTable) | Wird die Formel f unter der Belegung truthTable wahr? |
truthTables (formula) | Alle möglichen Wahrheitswerttabellen für im Ausdruck
formula vorkommenden Variablen Das Ergebnis wird als Generatorobjekt (zur einmaligen Iteration) ausgegeben. Beispiel for t in Logic.truthTables("A and B"): print(t) gibt folgendes aus: {'A': False, 'B': False} |
valid (f) | Ist die Formel f allgemeingültig? |
equivalent(f1, f2)
Aufruf: Logic.equivalent(f1, f2)
Beschreibung:
Sind die Formeln f1 und f2 äquivalent?
Beispiel
Logic.equivalent("not (A and B)", "not A or not B"))
gibt True
zurück.
implies(f1, f2)
Aufruf: Logic.implies(f1, f2)
Beschreibung:
Folgt aus der Formel f1 die Formel f2?
Beispiel
Logic.implies("A and B", "A or B")
gibt True
zurück.
satisfiable(f)
Aufruf: Logic.satisfiable(f)
Beschreibung:
Ist die Formel f erfüllbar?
Beispiel
Logic.satisfiable("A and not A")
gibt False
zurück.
satisfies(f, truthTable)
Aufruf: Logic.satisfies(f, truthTable)
Beschreibung:
Wird die Formel f unter der Belegung truthTable wahr?
Beispiel
Logic.satisfies("A or B", {"A":True, "B":False})
gibt True
zurück.
truthTables(formula)
Aufruf: Logic.truthTables(formula)
Beschreibung:
Alle möglichen Wahrheitswerttabellen für im Ausdruck
formula vorkommenden Variablen
Das Ergebnis wird als Generatorobjekt (zur einmaligen Iteration) ausgegeben.
Beispiel
for t in Logic.truthTables("A and B"): print(t)
gibt folgendes aus:
{'A': False, 'B': False}
{'A': False, 'B': True}
{'A': True, 'B': False}
{'A': True, 'B': True}
satisfies(f, truthTable)
Aufruf: Logic.valid(f)
Beschreibung:
Ist die Formel f allgemeingültig?
Beispiel
Logic.valid("A or not A")
gibt True
zurück.