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)

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} {'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.