Aussagenlogik: Unterschied zwischen den Versionen

Aus KGS-Wiki
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
Zeile 1: Zeile 1:
Die [[Aussagenlogik]] ist ein Teilgebiet der [[Informatik]] und Logik, das sich mit Aussagen und ihren Beziehungen untereinander beschäftigt. Wenn wir allgemein von ''Aussagenlogik'' sprechen, meinen wir in der Regel die nach ihrem Erfinder '''George Boole''' benannte '''Boolesche Logik'''. In der Booleschen Logik ist eine Aussage ein Satz, der entweder '''wahr''' oder '''falsch''' ist.
Die [[Aussagenlogik]] ist ein Teilgebiet der [[Informatik]] und Logik, das sich mit Aussagen und ihren Beziehungen untereinander beschäftigt. Wenn wir allgemein von ''Aussagenlogik'' sprechen, meinen wir in der Regel die nach ihrem Erfinder '''George Boole''' benannte '''Boolesche Logik'''. In der Booleschen Logik ist eine Aussage ein Satz, der entweder '''wahr''' oder '''falsch''' ist. '''Wahr''' und '''Falsch''' werden auch als [[Wahrheitswert]]e bezeichnet, auf Englisch nach ihrem Erfinder als <span lang="en">''boolean''</span>.


{{Beispiel|<q>Heute ist Dienstag.</q> ist eine Aussage, die {{#widget:Dienstag}} ist.
{{Beispiel|<q>Heute ist Dienstag.</q> ist eine Aussage, die {{#widget:Dienstag}} ist.
Zeile 7: Zeile 7:
Aussagen können mit '''logischen Operatoren''' verknüpft werden.
Aussagen können mit '''logischen Operatoren''' verknüpft werden.


== Logisches Und ==
== Logisches Nicht (Negation)==
 
{{Thumbnailbox|INHALT=
{{{!}} class="wikitable"
{{!}}+Logisches Nicht
! <math>A</math>
! <math>\neg A</math>
{{!}}-
{{!}} falsch
{{!}} wahr
{{!}}-
{{!}} wahr
{{!}} falsch
{{!}}}
|CAPTION=Wahrheitstabelle für das Logische Nicht}}
Wenn man eine Aussage <math>A</math> mit '''Nicht''' (<math>\neg</math>) negiert, entsteht eine neue Aussage <math>\neg A</math>, die genau dann wahr ist, wenn <math>A</math> falsch ist.
 
{{Beispiel|1=
<q>Heute ist nicht Dienstag.</q> ist eine negierte Aussage. Die nicht-negierte Aussage ist: <q>Heute ist Dienstag</q>.
 
Nur wenn die Aussage <q>Heute ist Dienstag</q> falsch ist, ist die Negation <q>Heute ist nicht Dienstag</q> wahr.}}
 
In vielen [[Programmiersprache]]n wird das Logische Und durch ein Ausrufezeichen {{Java|!}} dargestellt, etwa in [[Java (Programmiersprache)|Java]] oder [[C (Programmiersprache)|C]]. In anderen Sprachen wie [[Python (Programmiersprache)|Python]] wird dafür das Schlüsselwort {{Python|not}} verwendet.
 
In [[Scratch]] gibt es für das Logische Und den Block <sb><nicht <>></sb>.
 
== Logisches Und (Konjunktion) ==


{{Thumbnailbox|INHALT=
{{Thumbnailbox|INHALT=
Zeile 44: Zeile 70:
In [[Scratch]] gibt es für das Logische Und den Block <sb><<> und <>></sb>.
In [[Scratch]] gibt es für das Logische Und den Block <sb><<> und <>></sb>.


== Logisches Oder ==
== Logisches Oder (Disjunktion) ==
{{Thumbnailbox|INHALT=
{{Thumbnailbox|INHALT=
{{{!}} class="wikitable"
{{{!}} class="wikitable"
Zeile 79: Zeile 105:


'''Fun fact:''' Im Lateinischen gibt es dafür zwei unterschiedliche Wörter: {{Link-la|vel|22}} für das Logische Oder und {{Link-la|aut|44}} für das Exklusiv-Oder.}}
'''Fun fact:''' Im Lateinischen gibt es dafür zwei unterschiedliche Wörter: {{Link-la|vel|22}} für das Logische Oder und {{Link-la|aut|44}} für das Exklusiv-Oder.}}
{{Todo|Sn}}
 
== Exklusiv-Oder ==
 
{{Thumbnailbox|INHALT=
{{{!}} class="wikitable"
{{!}}+Exklusiv-Oder
! <math>A</math>
! <math>B</math>
! <math>A \oplus B</math>
{{!}}-
{{!}} falsch
{{!}} falsch
{{!}} falsch
{{!}}-
{{!}} falsch
{{!}} wahr
{{!}} wahr
{{!}}-
{{!}} wahr
{{!}} falsch
{{!}} wahr
{{!}}-
{{!}} wahr
{{!}} wahr
{{!}} falsch
{{!}}}
|CAPTION=Wahrheitstabelle für das Exklusiv-Oder}}
Wenn man zwei Aussagen <math>A</math> und <math>B</math> mit '''Exklusiv-Oder''' (abgekürzt '''xor''') (<math>\oplus</math>, in manchen Büchern auch <math>\veebar</math>) verknüpft, entsteht eine neue Aussage <math>A \oplus B</math>, die genau dann wahr ist, wenn ''entweder'' <math>A</math> wahr ist ''oder'' <math>B</math> wahr ist, aber nicht beide. Sobald beide Aussagen denselben Wahrheitsgehalt haben, ist auch die Gesamtaussage falsch.
 
{{Beispiel|1=
<q>Ich habe eine Katze xor ich habe einen Hund.</q> ist eine Aussage, die aus zwei Einzelaussagen besteht, die mit einem ''xor'' verbunden sind. Die einzelnen Aussagen sind: <q>Ich habe eine Katze</q> und <q>Ich habe einen Hund</q>.
 
Nur wenn genau eine dieser Aussagen wahr ist, ist die Gesamtaussage wahr. Wenn ich überhaupt kein Haustier oder sowohl eine Katze als auch einen hund hätte, wäre die Gesamtaussage falsch.}}
 
In vielen [[Programmiersprache]]n wird das Logische Und durch ein <code>[[T:ASCII|^]]</code>-Zeichen dargestellt, etwa in [[Java (Programmiersprache)|Java]], [[C (Programmiersprache)|C]] oder [[Python (Programmiersprache)|Python]].
 
In [[Scratch]] gibt es für das Exklusiv--Oder keinen eigenen Block. Stattdessen muss man sich mit Konstruktionen wie  <sb><<<a> und <nicht <b>>> oder <<nicht <a>> und <b>>></sb> behelfen.
 
== Implikation ==
 
{{Thumbnailbox|INHALT=
{{{!}} class="wikitable"
{{!}}+Implikation
! <math>A</math>
! <math>B</math>
! <math>A \Rightarrow B</math>
{{!}}-
{{!}} falsch
{{!}} falsch
{{!}} wahr
{{!}}-
{{!}} falsch
{{!}} wahr
{{!}} wahr
{{!}}-
{{!}} wahr
{{!}} falsch
{{!}} falsch
{{!}}-
{{!}} wahr
{{!}} wahr
{{!}} wahr
{{!}}}
|CAPTION=Wahrheitstabelle für die Implikation}}
Wenn man zwei Aussagen <math>A</math> und <math>B</math> mit '''Wenn, Dann''' (<math>\Rightarrow</math>) verknüpft, entsteht eine neue Aussage <math>A \Rightarrow B</math>, die genau dann wahr ist, wenn <math>A</math> und <math>B</math> wahr sind oder wenn <math>A</math> falsch ist. Klingt unintuitiv, ist aber so. Die Idee dahinter ist, dass die Implikation nichts darüber aussagt, falls die Annahme falsch ist. Dazu sagt man: <q lang="la">Ex falso quodlibet</q> – <q>Aus etwas Falschem [kann man schlussfolgern,] was man will.</q>
 
{{Beispiel|1=
<q>Wenn es regnet, wird die Erde nass.</q> ist eine Aussage, die aus zwei Einzelaussagen besteht, die mit einem ''wenn, dann'' verbunden sind. Die einzelnen Aussagen sind: <q>Es regnet</q> und <q>Die Erde wird nass</q>.
 
Wenn beide dieser Aussagen wahr sind, ist die Gesamtaussage wahr. Wenn aber die Annahme <q>Es regnet</q> falsch ist, heißt das nicht, dass die Schlussfolgeurng <q>Die Erde wird nass</q> falsch sein muss. Die Erde kann auch aus anderen Gründen nass sein. Die Gesamtaussage wird in dem Fall aber nicht ungültig.}}
 
Die Implikation spielt vor allem in der [[Theoretische Informatik|Theoretischen Informatik]] eine Rolle, nicht beim Programmieren. Wenn man beim Programmieren eine Implikation ausdrücken möchte, muss man die Implikation z.B. als <math>\neg A \vee B</math> umschreiben, also als {{Java|!a {{!}}{{!}} b}}, {{Python|not a or b}} oder <sb><<nicht <>> oder <>></sb>.
 
== Äquivalenz ==
 
{{Thumbnailbox|INHALT=
{{{!}} class="wikitable"
{{!}}+Äquivalenz
! <math>A</math>
! <math>B</math>
! <math>A \Leftrightarrow B</math>
{{!}}-
{{!}} falsch
{{!}} falsch
{{!}} wahr
{{!}}-
{{!}} falsch
{{!}} wahr
{{!}} falsch
{{!}}-
{{!}} wahr
{{!}} falsch
{{!}} falsch
{{!}}-
{{!}} wahr
{{!}} wahr
{{!}} wahr
{{!}}}
|CAPTION=Wahrheitstabelle für die Äquivalenz}}
Wenn man zwei Aussagen <math>A</math> und <math>B</math> mit '''Genau dann, wenn''' (<math>\Leftrightarrow</math>) verknüpft, entsteht eine neue Aussage <math>A \Leftrightarrow B</math>, die genau dann wahr ist, wenn <math>A</math> und <math>B</math> denselben Wahrheitswert haben. Wenn man umgangssprachlich ''wenn'' sagt, meint man meistens ''genau dann, wenn''.
 
{{Beispiel|1=
Man formuliert oft Implikationen wie <q>Ruf mich, wenn du Hilfe brauchst.</q> Streng genommen entspricht man dieser Bitte auch, wenn man ohne ein Hilfebedürfnis ruft, denn <span lang="la">ex falso quodlibet</span>.
 
Was man meint ist: <q>Ruf mich genau dann, wenn du Hilfe brauchst</q>, denn das bedeutet auch: Ruf mich nicht, wenn du keine Hilfe brauchst.}}
 
Die Äquivalenz spielt vor allem in der [[Theoretische Informatik|Theoretischen Informatik]] eine Rolle, nicht beim Programmieren. Beim Programmieren kann man sich damit{ behelfen, dass die Äquivalenz auch die Gleichheit zweier Wahrheitswerte ist, und einfach den Gleichheitsoperator {{Java|{{=}}{{=}}}} benutzen.
 
== Weblinks ==
 
* {{Inf-Schule|16.5.1.5|Logische Operatoren}}


[[Kategorie:Theoretische Informatik]]
[[Kategorie:Theoretische Informatik]]

Aktuelle Version vom 17. Dezember 2024, 16:13 Uhr

Die Aussagenlogik ist ein Teilgebiet der Informatik und Logik, das sich mit Aussagen und ihren Beziehungen untereinander beschäftigt. Wenn wir allgemein von Aussagenlogik sprechen, meinen wir in der Regel die nach ihrem Erfinder George Boole benannte Boolesche Logik. In der Booleschen Logik ist eine Aussage ein Satz, der entweder wahr oder falsch ist. Wahr und Falsch werden auch als Wahrheitswerte bezeichnet, auf Englisch nach ihrem Erfinder als boolean.

💬
Beispiel

Heute ist Dienstag. ist eine Aussage, die ist.

Mach bitte die Tür zu. ist eine Aufforderung, keine Aussage.

Aussagen können mit logischen Operatoren verknüpft werden.

Logisches Nicht (Negation)

Logisches Nicht
falsch wahr
wahr falsch
Wahrheitstabelle für das Logische Nicht

Wenn man eine Aussage mit Nicht () negiert, entsteht eine neue Aussage , die genau dann wahr ist, wenn falsch ist.

💬
Beispiel

Heute ist nicht Dienstag. ist eine negierte Aussage. Die nicht-negierte Aussage ist: Heute ist Dienstag.

Nur wenn die Aussage Heute ist Dienstag falsch ist, ist die Negation Heute ist nicht Dienstag wahr.

In vielen Programmiersprachen wird das Logische Und durch ein Ausrufezeichen ! dargestellt, etwa in Java oder C. In anderen Sprachen wie Python wird dafür das Schlüsselwort not verwendet.

In Scratch gibt es für das Logische Und den Block <nicht <>>.

Logisches Und (Konjunktion)

Logisches Und
falsch falsch falsch
falsch wahr falsch
wahr falsch falsch
wahr wahr wahr
Wahrheitstabelle für das Logische Und

Wenn man zwei Aussagen und mit Und () verknüpft, entsteht eine neue Aussage , die genau dann wahr ist, wenn wahr ist und wahr ist. Sobald eine der beiden Aussagen falsch ist, ist auch die Gesamtaussage falsch.

💬
Beispiel

Heute ist Dienstag und ich habe eine Katze. ist eine Aussage, die aus zwei Einzelaussagen besteht, die mit einem und verbunden sind. Die einzelnen Aussagen sind: Heute ist Dienstag und Ich habe eine Katze.

Nur wenn beide dieser Aussagen wahr sind, ist die Gesamtaussage wahr. Wenn heute Mittwoch wäre, ich aber eine Katze hätte, wäre die Gesamtaussage trotzdem falsch.

In vielen Programmiersprachen wird das Logische Und durch zwei &-Zeichen dargestellt, etwa in Java oder C. In anderen Sprachen wie Python wird dafür das Schlüsselwort and verwendet.

In Scratch gibt es für das Logische Und den Block <<> und <>>.

Logisches Oder (Disjunktion)

Logisches Oder
falsch falsch falsch
falsch wahr wahr
wahr falsch wahr
wahr wahr wahr
Wahrheitstabelle für das Logische Oder

Wenn man zwei Aussagen und mit Oder () verknüpft, entsteht eine neue Aussage , die genau dann wahr ist, wenn mindestens eine der Aussagen und wahr ist. Nur wenn beide Aussagen falsch sind, ist auch die Gesamtaussage falsch.

💬
Beispiel

Ich trinke Kaffee oder ich trinke Tee. ist eine Aussage, die aus zwei Einzelaussagen besteht, die mit einem oder verbunden sind. Die einzelnen Aussagen sind: Ich trinke Kaffee und Ich trinke Tee. Sobald eine dieser Aussagen wahr ist, ist die Gesamtaussage wahr. Wenn ich die Barbarei beginge, gleichzeitig Kaffee und Tee zu trinken, würde die Aussage trotzdem nicht falsch werden.

In vielen Programmiersprachen wird das Logische Oder durch zwei |-Zeichen dargestellt, etwa in Java oder C. In anderen Sprachen wie Python wird dafür das Schlüsselwort or verwendet. In Scratch gibt es für das Logische Oder den Block <<> oder <>>.

⚠️
Achtung

In der Umgangssprache meinen wir mit dem Wort oder in der Regel nicht das Logische Oder, sondern das Exklusiv-Oder. Wir erwarten dann, dass die Aussage Es regnet oder es ist Dienstag. genau dann wahr ist, wenn es regnet oder Dienstag ist, aber nicht beides gleichzeitig zutrifft.

Fun fact: Im Lateinischen gibt es dafür zwei unterschiedliche Wörter: vel[22] für das Logische Oder und aut[44] für das Exklusiv-Oder.

Exklusiv-Oder

Exklusiv-Oder
falsch falsch falsch
falsch wahr wahr
wahr falsch wahr
wahr wahr falsch
Wahrheitstabelle für das Exklusiv-Oder

Wenn man zwei Aussagen und mit Exklusiv-Oder (abgekürzt xor) (, in manchen Büchern auch ) verknüpft, entsteht eine neue Aussage , die genau dann wahr ist, wenn entweder wahr ist oder wahr ist, aber nicht beide. Sobald beide Aussagen denselben Wahrheitsgehalt haben, ist auch die Gesamtaussage falsch.

💬
Beispiel

Ich habe eine Katze xor ich habe einen Hund. ist eine Aussage, die aus zwei Einzelaussagen besteht, die mit einem xor verbunden sind. Die einzelnen Aussagen sind: Ich habe eine Katze und Ich habe einen Hund.

Nur wenn genau eine dieser Aussagen wahr ist, ist die Gesamtaussage wahr. Wenn ich überhaupt kein Haustier oder sowohl eine Katze als auch einen hund hätte, wäre die Gesamtaussage falsch.

In vielen Programmiersprachen wird das Logische Und durch ein ^-Zeichen dargestellt, etwa in Java, C oder Python.

In Scratch gibt es für das Exklusiv--Oder keinen eigenen Block. Stattdessen muss man sich mit Konstruktionen wie <<<a> und <nicht <b>>> oder <<nicht <a>> und <b>>> behelfen.

Implikation

Implikation
falsch falsch wahr
falsch wahr wahr
wahr falsch falsch
wahr wahr wahr
Wahrheitstabelle für die Implikation

Wenn man zwei Aussagen und mit Wenn, Dann () verknüpft, entsteht eine neue Aussage , die genau dann wahr ist, wenn und wahr sind oder wenn falsch ist. Klingt unintuitiv, ist aber so. Die Idee dahinter ist, dass die Implikation nichts darüber aussagt, falls die Annahme falsch ist. Dazu sagt man: Ex falso quodlibetAus etwas Falschem [kann man schlussfolgern,] was man will.

💬
Beispiel

Wenn es regnet, wird die Erde nass. ist eine Aussage, die aus zwei Einzelaussagen besteht, die mit einem wenn, dann verbunden sind. Die einzelnen Aussagen sind: Es regnet und Die Erde wird nass.

Wenn beide dieser Aussagen wahr sind, ist die Gesamtaussage wahr. Wenn aber die Annahme Es regnet falsch ist, heißt das nicht, dass die Schlussfolgeurng Die Erde wird nass falsch sein muss. Die Erde kann auch aus anderen Gründen nass sein. Die Gesamtaussage wird in dem Fall aber nicht ungültig.

Die Implikation spielt vor allem in der Theoretischen Informatik eine Rolle, nicht beim Programmieren. Wenn man beim Programmieren eine Implikation ausdrücken möchte, muss man die Implikation z.B. als umschreiben, also als !a || b, not a or b oder <<nicht <>> oder <>>.

Äquivalenz

Äquivalenz
falsch falsch wahr
falsch wahr falsch
wahr falsch falsch
wahr wahr wahr
Wahrheitstabelle für die Äquivalenz

Wenn man zwei Aussagen und mit Genau dann, wenn () verknüpft, entsteht eine neue Aussage , die genau dann wahr ist, wenn und denselben Wahrheitswert haben. Wenn man umgangssprachlich wenn sagt, meint man meistens genau dann, wenn.

💬
Beispiel

Man formuliert oft Implikationen wie Ruf mich, wenn du Hilfe brauchst. Streng genommen entspricht man dieser Bitte auch, wenn man ohne ein Hilfebedürfnis ruft, denn ex falso quodlibet.

Was man meint ist: Ruf mich genau dann, wenn du Hilfe brauchst, denn das bedeutet auch: Ruf mich nicht, wenn du keine Hilfe brauchst.

Die Äquivalenz spielt vor allem in der Theoretischen Informatik eine Rolle, nicht beim Programmieren. Beim Programmieren kann man sich damit{ behelfen, dass die Äquivalenz auch die Gleichheit zweier Wahrheitswerte ist, und einfach den Gleichheitsoperator == benutzen.

Weblinks