Implikation und Äquivalenz

Hintergrund:

Die Aussagenlogik ist ein Teilgebiet der Logik, das sich mit Aussagen und deren Verknüpfung befasst, ausgehend von Elementaraussagen, denen ein Wahrheitswert (wahr oder falsch)  zugeordnet wird. Der Wahrheitswert einer zusammengesetzten Aussage lässt sich ohne zusätzliche Informationen aus den Wahrheitswerten ihrer Teilaussagen bestimmen.

Man berechne die Implikation mit Listenverarbeitung
(Abbildung aus einem Skriptum des Jahres 2003)

Implikation

Programmcode:

imp(a,b):= not a or b;
A:{true,false};
W:listify(cartesian_product(A,A));
f(x):=imp(x[1],x[2]);
ERG:map(f,W);
WT:[transpose(W),transpose(ERG)];

Erläuterungen dazu:

1. imp(a,b) ist eine benutzerdefinierte Funktion in zwei Variablen
2. eine Aussage kann wahr oder falsch sein
3. cartestian_product(A,B) ist die Produktmenge AxA, listify macht
   aus der Menge eine Liste
4. Funktion mit einem geordneten Paar als Argument
5. map erzeugt das elementweise Ergebnis der Implikation
6. mit transpose entsteht eine spaltenweise Darstellung

Maxima-Online: http://maxima-online.org/?inc=r2019918161

Aufgabe: Man ändere bzw. ergänze die Implikation auf Äquivalenz eqv(a,b):=imp(a,b) and imp(b,a);

Programmcode:

imp(a,b):= not a or b;
eqv(a,b):=imp(a,b) and imp(b,a);
A:{true,false};
W:listify(cartesian_product(A,A));
f(x):=imp(x[1],x[2]);
g(x):=eqv(x[1],x[2]);
ERG1:map(f,W);
ERG2:map(g,W);
WT:[transpose(W),transpose(ERG1)];
WT:[transpose(W),transpose(ERG2)];

Maxima-Online: http://maxima-online.org/?inc=r234229047