22.08.2013 Aufrufe

Grundlagen der Informatik I “Programmierung”

Grundlagen der Informatik I “Programmierung”

Grundlagen der Informatik I “Programmierung”

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!