© 1999 François Bry
Dieses Lehrmaterial wird ausschließlich zur privaten Verwendung angeboten. Eine nichtprivate Nutzung (z.B. im Unterricht oder eine Veröffentlichung von Kopien oder Übersetzungen) dieses Lehrmaterials bedarf der Erlaubnis des Autors.


2. Syntax

Dieses Kapitel führt formale Sprachen zur Repräsentation von ,,Aussagen`` ein. Den Schwerpunkt bilden dabei die Sprachen der Aussagenlogik und der Prädikatenlogik erster Stufe. Formale Darstellungen von ,,Aussagen`` in einigen anderen Logiken werden ebenfalls angesprochen, zum Beispiel in der mehrsortigen Prädikatenlogik erster Stufe, in der Prädikatenlogik zweiter Stufe und in der Modallogik.

Abzählbare und aufzählbare Mengen.

Zwei grundlegende mathematische Begriffe kommen im folgenden häufig vor und sollen deshalb kurz rekapituliert werden.

Eine Menge $S$ heißt abzählbar, wenn es eine Surjektion $\ensuremath{\mathbb {N}}\to S$ gibt. Die Surjektion $\ensuremath{\mathbb {N}}\to S$ muss keine Bijektion sein. Damit sind insbesondere auch endliche Mengen abzählbar (manche Autoren definieren ,,abzählbar`` so, dass der endliche Fall nicht eingeschlossen ist). Wir verwenden die Bezeichnung abzählbar unendlich für abzählbare Mengen, die nicht endlich sind.

Eine Menge $S$ heißt aufzählbar, wenn es einen Algorithmus $\textit{aufzählung}_S$ mit den folgenden Eigenschaften gibt:

  1. $\textit{aufzählung}_S$ hat eine natürliche Zahl als Argument.
  2. $\textit{aufzählung}_S(i)$(i) terminiert für jedes $i \in \ensuremath{\mathbb {N}}$.
  3. $\textit{aufzählung}_S(i)$(i) liefert als Ergebnis ein Element aus $S$.
  4. Für jedes $s \in S$ $S$ gibt es mindestens ein $i \in \ensuremath{\mathbb {N}}$, so dass $\textit{aufzählung}_S(i)$(i) das Element s als Ergebnis liefert.
Man sagt, dass ein solcher Algorithmus die Menge $S$ aufzählt. Die Bedingungen 1, 3 und 4 bedeuten, dass der Algorithmus eine Surjektion $\ensuremath{\mathbb {N}}\to S$ berechnet. Jede aufzählbare Menge ist also abzählbar. Bei einer aufzählbaren Menge muss die Surjektion durch einen Algorithmus berechenbar sein, bei einer abzählbaren dagegen nicht notwendigerweise.

Zum Beispiel ist für eine ,,vernünftige`` Programmiersprache die Menge aller syntaktisch korrekten Programme dieser Sprache abzählbar und aufzählbar. Die Teilmenge aller syntaktisch korrekten Programme, die für manche Eingaben nicht terminieren, ist zwar ebenfalls abzählbar, aber nicht aufzählbar.

Wie der Begriff ,,Algorithmus`` formalisiert werden kann, wird in dieser Vorlesung nicht näher präzisiert.


Validierung