Logik und Quantoren - Logik mit Derive

Was solltest du hier bereits können:

bullet

Verstehen was eine Logikverknüpfung ist

bullet

Disjunktion, Konjunktion, Negation, XOR, NAND und NOR kennen

bullet

Wahrheitstafeln für maximal 3 Argumente aufstellen können

bullet

Logische Äquivalenzen mit Wahrheitstafeln untersuchen können

bullet

Tautoligien und Kontradiktionen identifizieren können

bullet

Sprachliche Konstrukte in formale Terme übersetzen können ( und retour )

bullet

Die Gesetze der formalen Logik kennen und anwenden können

Übungsaufgaben dazu findest du hier...

Um eine Wahrheitstafel mit Derive zu erhalten verwendet man die Funktion truth_table :

Beispiel: Zeige die Gesetze von DE MORGAN

TRUTH_TABLE(p, q, ¬ p ¬ q, ¬ (p q), ¬ p ¬ q, ¬ (p q))

Vergleiche im Ergebnis die entsprechenden Spalten

 

Warum beschäftigen wir uns mit Logik?

Die Grundlagen der Informatik werden durch zwei Gebiete bestimmt: Logik und Mathematik. Alle weiteren Erkenntnisse und Anwendungen (wie z.B. Programme wie Windows und Word) werden dadurch bestimmt. Alle  Verfahren ( wie z.B. zur Fehlerkontrolle und Programmoptimierung) sind direkt aus der Logik und Mathematik entwickelt.

Informatik = Information und Mathematik

Es macht daher keinen Sinn Informatik betreiben zu wollen und Mathematik zu vernachlässigen. Nur wer die Sprache der Mathematik versteht kann auch in der Informatik sinnvoll arbeiten.

Wir wollen jetzt auch mit Hilfe von Derive weitere Grundlagen erarbeiten

Quantitative Aussagenlogik:

Diese verwendet Quantoren :

Jetzt im Klartext:

1) p: Alle Primzahlen sind ungerade    p': Es gibt zumindest eine Primzahl die nicht ungerade ist ( 2 )

2.  p:  Es gibt eine reelle Zahl die Lösung der Gleichung x2 = -1  ist.   p':  Für alle reelen Zahlen ist ihr Quadrat von -1 verschieden.

 

Satz:

bullet

Die Verneinung einer Allaussage ist eine Existenzaussage.

bullet

Die Verneinung einer Existenzaussage ist eine Allaussage .

: 28    30    32    33   

 

Die folgenden Aussagen kann man mit Derive verarbeiten:

 NOT p  ist die Negation von p. NOT ist ein einstelliger vorangestellter (Prefix-) Boole’scher Operator. Wenn p den Wert true hat, wird NOT p zu false vereinfacht. Wenn p den Wert false hat, wird NOT p zu true vereinfacht. Zum Beispiel hat NOT x>5 den Wert true, wenn x nicht größer als 5 ist (d.h. x ist kleiner oder gleich 5).

p AND q  ist die Konjunktion von p und q. AND ist ein zweistelliger Infix-Boole’scher Operator. Wenn sowohl p als auch q den Wert true haben, wird p AND q zu true vereinfacht. Wenn p oder q oder beide den Wert false haben, wird p AND q zu false vereinfacht. Zum Beispiel ergibt x<3 AND y=7 den Wert true, wenn sowohl x kleiner als 3 als auch y gleich 7 ist.

p OR q  ist die Disjunktion (inklusives Oder) von p und q. OR ist ein zweistelliger Infix-Boole’scher Operator. Wenn p oder q oder beide den Wert true haben, wird p OR q zu true vereinfacht. Wenn sowohl p als auch q den Wert false haben, wird p OR q zu false vereinfacht. Zum Beispiel ergibt x<3 OR y=7 den Wert true, wenn entweder x kleiner als 3 ist oder y gleich 7 ist oder beides gleichzeitig gilt.

p XOR q ist die ausschließende Disjunktion von p und q. XOR ist ein zweistelliger Infix-Boole’scher Operator. Wenn entweder p oder q den Wert true haben, nicht aber beide gleichzeitig, wird p XOR q zu true vereinfacht. Wenn sowohl p als auch q den Wert false haben oder sowohl p als auch q den Wert true haben, wird p XOR q zu false vereinfacht. Sind die Wahrheitswerte von p und q nicht bekannt, wird der Ausdruck p XOR q zum Boole’schen Ausdruck (NOT p AND q) OR (p AND NOT q) vereinfacht.

p IMP q ist die Implikation mit Voraussetzung p und Folgerung q. IMP ist ein zweistelliger Infix-Boole’scher Operator. Wenn p den Wert false hat oder q den Wert true, wird p IMP q zu true vereinfacht. Wenn p den Wert true und q den Wert false hat, wird p IMP q zu false vereinfacht. Sind die Wahrheitswerte von p und q nicht bekannt, wird der Ausdruck p IMP q zum Boole’ schen Ausdruck NOT p OR q vereinfacht.

p IFF q ist das logische Äquivalent von p und q. IFF (genau-dann-wenn) ist ein zweistelliger Infix-Boole’scher Operator. Wenn beide, p und q, den Wert true haben, oder wenn beide p und q den Wert false haben, wird p IFF q vereinfacht zu true. Wenn p den Wert true und q den Wert false hat, oder wenn p den Wert false und q den Wert true hat, wird p IFF q zu false vereinfacht. Wenn die Wahrheitswerte von p und q unbekannt sind, wird p IFF q zum gleichwertigen Boole’schen Ausdruck (¬ p OR q) AND (p OR ¬ q) vereinfacht.

Die Vereinfachung erfolgt wie bei anderen algbraischen Ausdrücken ( Menü oder Anhängen von =)

((x y) x ¬ y) = (x ¬ y)

Wer möchte kann übrigens mit  <Vereinfachen, Substituieren, Teilausdruck>  true durch 1 und false durch 0 ersetzen !

 

Bedingte Aussagen

Aufgabe: Erstelle die Wahrheitstafel von

a) p → q :     p impliziert q, wenn p dann q, p ist hinreichend für q, q ist notwendig für p

 

b) p ↔ q:    p genau dann wenn q,  p dann und nur dann wenn q, p ist notwendig und hinreichend für q

EX: Löse die folgenden Aufgaben mit und ohne Derive !

a)  Zeige: p → q = p'  → q'

b)  Zeige: ( p and q) → (p OR q)  ist eine Tautologie

c)  Zeige: (p→ q) and ( q→ p) = p↔q