Grundlagen der Informatik I “Programmierung”
Grundlagen der Informatik I “Programmierung”
Grundlagen der Informatik I “Programmierung”
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
aber nicht in einem minimalen Kalkül liegt, haben wir ihn um Regeln ergänzt, die eine Anwendung auf unsere<br />
Erfor<strong>der</strong>nisse erleichtern. So ermöglicht beispielsweise R16 den Schluß von<br />
(∀ x : 1..100 . x>0) auf<br />
(∀ x : 1..100 - {17} . x>0) ∧ ((x=17) ⇒ (x>0))<br />
um ein einzelnes Element (17) geson<strong>der</strong>t zu betrachten. Mit R18 erhalten wir<br />
(∀ x : 1..100 - {17} . x>0) ∧ (17>0)<br />
Da die Aussagenlogik einen Teilbereich <strong>der</strong> Prädikatenlogik darstellt, können alle Regeln und Axiome, die<br />
in dem Kalkül für die Aussagenlogik angegeben waren, auch hier verwendet werden (natürlich nur unter<br />
Berücksichtigung <strong>der</strong> Bindungsregeln für Variable).<br />
2.2.6 Dreiwertige Logik<br />
In <strong>der</strong> Prädikatenlogik gilt das Prinzip des ‘tertium non datur’, d.h. es gibt nur zwei mögliche Wahrheitswerte.<br />
Etwas ist entwe<strong>der</strong> falsch, o<strong>der</strong> aber es ist wahr. Im Zusammenhang mit <strong>der</strong> Spezifikation von Programmen gibt<br />
es mehrere Gründe, anstelle einer zweiwertigen Logik eine auf drei Wahrheitswerten basierende zu verwenden.<br />
Zum einen muß im Zusammenhang mit Programmen beschrieben werden, was ’geschieht’, wenn eine Funktion<br />
einen undefinierten Wert annimmt. Zum an<strong>der</strong>en erscheint es häufig sinnvoll, in bestimmten Situationen<br />
explizit angeben zukönnen, daß z.B. <strong>der</strong> Wert einer Funktion in dieser Situation ohne Relevanz ist. Es lassen<br />
sich sicher weitere mögliche Interpretationen eines dritten Wahrheitswertes finden. Darüber hinaus gibt es<br />
auch Anwendungen für Logiken mit unendlich vielen Wahrheitswerten. Diese werden dann üblicherweise als<br />
Wahrscheinlichkeiten für das Eintreten bestimmter Aussagen interpretiert.<br />
Wir werden an dieser Stelle eine dreiwertige Logik, bezeichnet mit DREIWERT, einführen, die sich sowohl<br />
an die Spezifikationssprache von Eiffel als auch die Aussagenlogik anlehnt. Geeignete analoge Erweiterungen<br />
<strong>der</strong> Prädikatenlogik sollten als Übung gemacht werden.<br />
Startsymbol: Aussage<br />
Alphabet:<br />
Grundmengen Bezeichner<br />
Sonstige Symbole ¬, ∧, ∨, ∨, ∧, ⇒ , ⇔ , (, ), T, F, U<br />
Syntax: Aussage ::= Imp-Ausdruck | Aussage ⇔ Imp-Ausdruck<br />
Imp-Ausdruck ::= Ausdruck | Imp-Ausdruck ⇒ Ausdruck<br />
Ausdruck ::= Term | Ausdruck ∨ Term | Ausdruck ∨ Term<br />
Term ::= Faktor | Term ∧ Faktor | Term ∧ Faktor<br />
Faktor ::= ¬ Faktor | ( Aussage ) | T | F | U | Bezeichner<br />
Abbildung 2.15: Syntax von DREIWERT (Klammerung nur soweit notwendig)<br />
Um die Semantik von DREIWERT festlegen zu können, müssen wir auch unsere Semantiksprache um ein<br />
undefined erweitern. Damit erhalten wir dann die folgende Wahrheitstafel für die Metasprache. Jede Zeile<br />
zeigt für eine mögliche Wertekombination von b und c den Wert <strong>der</strong> fünf zielsprachlichen Operationen.<br />
b c (nicht b) (b und c) (b o<strong>der</strong> c) (b impl c) (b gleich c)<br />
falsch falsch wahr falsch falsch wahr wahr<br />
falsch wahr wahr falsch wahr wahr falsch<br />
falsch undef wahr falsch undef wahr undef<br />
wahr falsch falsch falsch wahr falsch falsch<br />
wahr wahr falsch wahr wahr wahr wahr<br />
wahr undef falsch undef wahr undef undef<br />
undef wahr undef undef undef undef undef<br />
undef falsch undef undef undef undef undef<br />
undef undef undef undef undef undef undef