Hauptübersicht

Klasse 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:

Klassenmethoden (statische Methoden)

MethodeBedeutung
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}
{'A': False, 'B': True}
{'A': True, 'B': False}
{'A': True, 'B': True}
valid (f)Ist die Formel f allgemeingültig?

Klassenmethoden (statische Methoden)

equivalent

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

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

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

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

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}


valid

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.