Strukturelle Induktion

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

Die strukturelle Induktion ist ein Beweisverfahren, das unter anderem in der Logik, der theoretischen Informatik und der Graphentheorie eingesetzt wird. Es handelt sich um eine allgemeinere Form der vollständigen Induktion. Mit dem Verfahren lassen sich Aussagen über die Elemente von rekursiv aufgebauten Mengen (zum Beispiel Mengen von Listen, Formeln, Graphen) beweisen.

Bei der vollständigen Induktion werden Eigenschaften der natürlichen Zahlen bewiesen; bei der strukturellen Induktion werden Eigenschaften für Mengen bewiesen, deren Elemente aus Grundelementen durch eine endliche Anzahl von Konstruktionsschritten (unter Verwendung bereits konstruierter Elemente) bzw. mittels eines Erzeugungssystems entstehen. Es gibt also minimale (auch: einfachste oder Grund-)Elemente und rekursiv definierte (oder: rekursiv gebildete) Elemente der Menge. Bei den natürlichen Zahlen ist das Grundelement 0 (oder 1, je nach Definition der natürlichen Zahlen) und der Konstruktionsschritt ist der Übergang von einer Zahl n zur Zahl n+1.

Um eine Aussage für die Elemente einer Menge zu beweisen, zeigt man im Induktionsanfang die Gültigkeit der Aussage für die einfachsten Elemente und im Induktionsschluss die Gültigkeit der Aussage für die rekursiv gebildeten Elemente unter der Voraussetzung, dass die Aussage für die in der Konstruktion verwendeten Elemente gilt. Ist beides erfüllt, so gilt die Aussage für alle Elemente. Man führt die Induktion also über den strukturellen Aufbau der Elemente.

Strukturelle Induktion ist ein Spezialfall der Induktion für Mengen mit einer wohlfundierten (partiellen) Ordnung.

Beispiel für eine Definition durch strukturelle Induktion[Bearbeiten]

Die Menge der aussagenlogischen Formeln lässt sich mittels struktureller Induktion wie folgt definieren:

Induktionsanfang: Falls A\!\, eine atomare aussagenlogische Formel ist, ist A\!\, eine aussagenlogische Formel.
Induktionsschritt 1: Falls F\!\, eine aussagenlogische Formel ist, ist auch \lnot F eine aussagenlogische Formel.
Induktionsschritt 2: Falls F\!\, und G\!\, aussagenlogische Formeln sind, ist auch (F \land G) eine aussagenlogische Formel.
Induktionsschritt 3: Falls F\!\, und G\!\, aussagenlogische Formeln sind, ist auch (F \lor G) eine aussagenlogische Formel.
Induktionsschritt 4: Falls F\!\, und G\!\, aussagenlogische Formeln sind, ist auch \!\,(F \to G) eine aussagenlogische Formel.
Induktionsschritt 5: Falls F\!\, und G\!\, aussagenlogische Formeln sind, ist auch (F \leftrightarrow G) eine aussagenlogische Formel.

Nach dieser Definition sind z.B. die folgenden Terme aussagenlogische Formeln:

  • \lnot (A \land B)
  • (A \to (B \lor \lnot C))
  • ((A \lor \lnot B) \land (\lnot A \lor B))

Viele Klammern können weggelassen werden, wenn man die Assoziativität von \land und \lor ausnutzt und eine Operatorrangfolge vereinbart.

Weitere Beispiele für Definitionen durch strukturelle Induktion finden sich in den Artikeln Elementare Sprache und Wort (Theoretische Informatik) (Definition der Spiegelung).

Beispiel für einen Beweis durch strukturelle Induktion[Bearbeiten]

Bewiesen wird der Satz:

Für jede aussagenlogische Formel F\!\, gibt es eine äquivalente aussagenlogische Formel \!\,[F], in der als einzige Operatoren \lnot ("nicht") und \land ("und") vorkommen.

Der Beweis:

Induktionsanfang: Falls F=A\!\, für eine atomare aussagenlogische Formel A\!\, ist, ist \!\,[F]=A.
Induktionsschritt 1: Falls F=\lnot G für eine aussagenlogische Formel G\!\, gilt, ist [F]=\lnot [G].
Induktionsschritt 2: Falls F=(G \land H) für aussagenlogische Formeln G\!\, und H\!\, gilt, ist [F]=([G] \land [H]).
Induktionsschritt 3: Falls F=(G \lor H) für aussagenlogische Formeln G\!\, und H\!\, gilt, ist [F]= \lnot (\lnot [G] \land \lnot [H]).
Induktionsschritt 4: Falls F=(G \to H)\!\, für aussagenlogische Formeln G\!\, und H\!\, gilt, ist [F]= \lnot ([G] \land \lnot [H]).
Induktionsschritt 5: Falls F=(G \leftrightarrow H) für aussagenlogische Formeln G\!\, und H\!\, gilt, ist [F]= \lnot (\lnot ([G] \land [H]) \land \lnot (\lnot [G] \land \lnot [H])).

Das Gleichheitszeichen steht hier für syntaktische Gleichheit, d.h. Gleichheit Zeichen für Zeichen. In jedem Induktionsschritt wird vorausgesetzt, dass für G\!\, und H\!\, jeweils die äquivalenten Formeln [G]\!\, und [H]\!\, existieren, die nur \lnot und \land verwenden (Induktionsvoraussetzung).

In einer konkreten Konstruktion kann man die Beweisschritte auch in der umgekehrten Reihenfolge, also "von außen nach innen", anwenden. Für die mittlere der oben angegebenen aussagenlogischen Formeln gelten z.B. die folgenden Äquivalenzen:

\begin{align}
  (A \to (B \lor \lnot C))
  & \equiv [(A \to (B \lor \lnot C))] \\
  & \stackrel{\mbox{IS 4}}{=} \lnot ([A] \land \lnot [(B \lor \lnot C)]) \\
  & \stackrel{\mbox{IS 3}}{=} \lnot ([A] \land \lnot \lnot (\lnot [B] \land \lnot [\lnot C])) \\
  & \stackrel{\mbox{IS 1}}{=} \lnot ([A] \land \lnot \lnot (\lnot [B] \land \lnot \lnot [C])) \\
  & \stackrel{3\times\mbox{IA}}{=} \lnot (A \land \lnot \lnot (\lnot B \land \lnot \lnot C))\end{align}

Die Anwendungen des Induktionsschritts 1 und des Induktionsanfangs sind hier leer, d.h. sie verändern den Term nicht. (Bei der ersten oben angegebenen Formel wären alle Induktionsschritte und der Induktionsanfang leer.) Dass sich die letzte Formel noch zu \lnot (A \land (\lnot B \land C)) vereinfachen lässt, ist hier übrigens unerheblich.