From d8434b9bb461ad950f303ca07f47838ca5673a38 Mon Sep 17 00:00:00 2001
From: Michael Leuschel <leuschel@uni-duesseldorf.de>
Date: Mon, 20 Apr 2020 17:20:15 +0200
Subject: [PATCH] fix typos

---
 info4/kapitel-0/Logik.ipynb | 411 +++++++++++++++++++++++++++++-------
 1 file changed, 337 insertions(+), 74 deletions(-)

diff --git a/info4/kapitel-0/Logik.ipynb b/info4/kapitel-0/Logik.ipynb
index 705e863..db02662 100644
--- a/info4/kapitel-0/Logik.ipynb
+++ b/info4/kapitel-0/Logik.ipynb
@@ -28,7 +28,6 @@
     "* Code kann interaktiv ausgeführt werden\n",
     "* Ergebnisse erscheinen im Notebook unter dem jeweiligem Code\n",
     "* Ähnlich wie eine REPL (read-eval-print-loop), mit einigen Unterschieden:\n",
-    "    * Code-Abschnitte können \"außer der Reihe\" bearbeitet und ausgeführt werden\n",
     "    * Ausgaben können formatierten Text und Grafiken enthalten\n",
     "    * Speicherbar als Datei\n",
     "    * Code kann später neu ausgeführt werden\n",
@@ -46,12 +45,8 @@
     "* Open Source und plattformübergreifend\n",
     "* Stammt aus der Python-Community, in Python implementiert\n",
     "* ACM System Software Award 2017\n",
-    "* Jupyter-Notebooks können aber verschiedene Programmiersprachen verwenden\n",
-    "* Dazu trennt Jupyter strikt zwischen Frontend und Kernel:\n",
-    "    * Das allgemeine **Frontend** implementiert z. B. Benutzeroberfläche und Dateiformat\n",
-    "    * Ein sprachspezifischer **Kernel** stellt die Sprache dem Frontend zur Verfügung\n",
-    "* Schnittstellen zwischen Frontend und Kernel sind sprachneutral\n",
-    "    * Kernel können in (fast) jeder Sprache implementiert werden, kein Python-Code nötig\n",
+    "* Jupyter-Notebooks verschiedene Programmiersprachen verwenden\n",
+    " * Ein sprachspezifischer **Kernel** stellt die Sprache dem Jupyter Frontend zur Verfügung\n",
     "    "
    ]
   },
@@ -149,7 +144,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 30,
+   "execution_count": 1,
    "metadata": {},
    "outputs": [
     {
@@ -161,7 +156,7 @@
        "TRUE"
       ]
      },
-     "execution_count": 30,
+     "execution_count": 1,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -172,7 +167,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 31,
+   "execution_count": 2,
    "metadata": {},
    "outputs": [
     {
@@ -184,7 +179,7 @@
        "TRUE"
       ]
      },
-     "execution_count": 31,
+     "execution_count": 2,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -195,7 +190,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 32,
+   "execution_count": 3,
    "metadata": {},
    "outputs": [
     {
@@ -207,7 +202,7 @@
        "FALSE"
       ]
      },
-     "execution_count": 32,
+     "execution_count": 3,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -230,7 +225,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 33,
+   "execution_count": 4,
    "metadata": {},
    "outputs": [
     {
@@ -242,7 +237,7 @@
        "TRUE"
       ]
      },
-     "execution_count": 33,
+     "execution_count": 4,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -251,6 +246,29 @@
     "¬(2<1)"
    ]
   },
+  {
+   "cell_type": "code",
+   "execution_count": 6,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/markdown": [
+       "$\\mathit{FALSE}$"
+      ],
+      "text/plain": [
+       "FALSE"
+      ]
+     },
+     "execution_count": 6,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "¬(1+1=2)"
+   ]
+  },
   {
    "cell_type": "markdown",
    "metadata": {},
@@ -267,7 +285,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 34,
+   "execution_count": 7,
    "metadata": {},
    "outputs": [
     {
@@ -279,7 +297,7 @@
        "TRUE"
       ]
      },
-     "execution_count": 34,
+     "execution_count": 7,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -290,7 +308,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 35,
+   "execution_count": 8,
    "metadata": {},
    "outputs": [
     {
@@ -302,7 +320,7 @@
        "FALSE"
       ]
      },
-     "execution_count": 35,
+     "execution_count": 8,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -320,30 +338,30 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 36,
+   "execution_count": 11,
    "metadata": {},
    "outputs": [
     {
      "data": {
       "text/markdown": [
-       "$\\mathit{TRUE}$"
+       "$\\mathit{FALSE}$"
       ],
       "text/plain": [
-       "TRUE"
+       "FALSE"
       ]
      },
-     "execution_count": 36,
+     "execution_count": 11,
      "metadata": {},
      "output_type": "execute_result"
     }
    ],
    "source": [
-    "2>1 ∨ 1>2"
+    "1>1 ∨ 1>2"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 37,
+   "execution_count": 10,
    "metadata": {},
    "outputs": [
     {
@@ -355,7 +373,7 @@
        "TRUE"
       ]
      },
-     "execution_count": 37,
+     "execution_count": 10,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -373,7 +391,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 38,
+   "execution_count": 12,
    "metadata": {},
    "outputs": [
     {
@@ -385,7 +403,7 @@
        "TRUE"
       ]
      },
-     "execution_count": 38,
+     "execution_count": 12,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -396,7 +414,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 39,
+   "execution_count": 13,
    "metadata": {},
    "outputs": [
     {
@@ -408,7 +426,7 @@
        "TRUE"
       ]
      },
-     "execution_count": 39,
+     "execution_count": 13,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -419,7 +437,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 40,
+   "execution_count": 14,
    "metadata": {},
    "outputs": [
     {
@@ -431,7 +449,7 @@
        "FALSE"
       ]
      },
-     "execution_count": 40,
+     "execution_count": 14,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -449,7 +467,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 41,
+   "execution_count": 15,
    "metadata": {},
    "outputs": [
     {
@@ -461,7 +479,7 @@
        "TRUE"
       ]
      },
-     "execution_count": 41,
+     "execution_count": 15,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -472,7 +490,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 42,
+   "execution_count": 16,
    "metadata": {},
    "outputs": [
     {
@@ -484,7 +502,7 @@
        "TRUE"
       ]
      },
-     "execution_count": 42,
+     "execution_count": 16,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -495,7 +513,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 43,
+   "execution_count": 17,
    "metadata": {},
    "outputs": [
     {
@@ -507,7 +525,7 @@
        "FALSE"
       ]
      },
-     "execution_count": 43,
+     "execution_count": 17,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -524,14 +542,14 @@
     "\n",
     "Anmerkung: Wir nehmen an, dass $\\neg$ am stärksten bindet, dann kommen $\\wedge$, $\\vee$, $\\Rightarrow$ und schließlich ⇔.\n",
     "\n",
-    "Die Formel $(p \\vee (\\neg p \\wedge q)$ steht also für $(p \\vee (\\neg(p) \\wedge q)$.\n",
+    "Die Formel $(p \\vee (\\neg p \\wedge q))$ steht also für $(p \\vee (\\neg(p) \\wedge q)$.\n",
     "\n",
     "Eine Formel kann man immer als einen Baum sehen"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 44,
+   "execution_count": 18,
    "metadata": {},
    "outputs": [
     {
@@ -540,7 +558,7 @@
        "Preference changed: OPTIMIZE_AST = FALSE\n"
       ]
      },
-     "execution_count": 44,
+     "execution_count": 18,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -551,7 +569,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 45,
+   "execution_count": 19,
    "metadata": {},
    "outputs": [
     {
@@ -773,7 +791,7 @@
        "<Dot visualization: formula_tree [(2>3 => 4>1) <=> not(5<1)]>"
       ]
      },
-     "execution_count": 45,
+     "execution_count": 19,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -792,7 +810,7 @@
     "\n",
     "<img src=\"./img/wahrheitstabelle.png\" width=\"600\">\n",
     "\n",
-    "Wie berechnet man damit den Wahrheitswert einer Formel wie $(p \\vee (\\neg p \\wedge q)$?\n",
+    "Wie berechnet man damit den Wahrheitswert einer Formel wie $(p \\vee (\\neg p \\wedge q))$?\n",
     "\n",
     "\n",
     "\n"
@@ -816,8 +834,8 @@
     "Sei $i$ =  $\\{p\\mapsto TRUE,q\\mapsto FALSE\\}$ eine Interpretation für die Formel $(p \\vee (\\neg p \\wedge q)$.\n",
     "\n",
     "* Schritt 1: alle Aussagen berechnen: $(TRUE \\vee (\\neg TRUE \\wedge FALSE)$\n",
-    "* Schritt 2: $\\neg TRUE = FALSE$: $(TRUE \\vee (FALSE \\wedge FALSE)$\n",
-    "* Schritt 3: $FALSE \\wedge FALSE = FALSE$: $(TRUE \\vee FALSE)$\n",
+    "* Schritt 2: $\\neg TRUE = FALSE$:  $(TRUE \\vee (FALSE \\wedge FALSE)$\n",
+    "* Schritt 3: $FALSE \\wedge FALSE = FALSE$:  $(TRUE \\vee FALSE)$\n",
     "* Schritt 3: $TRUE \\vee FALSE = TRUE$: $TRUE$\n",
     "\n",
     "Unter der Interpretation $i$ ist die Formel $(p \\vee (\\neg p \\wedge q)$ wahr."
@@ -854,13 +872,13 @@
     "\n",
     "Zwei Formeln sind <b>äquivalent</b> gdw sie die selben Modelle haben.\n",
     "\n",
-    "$(p \\vee (\\neg p \\wedge q)$ ist zum Beispiel äquivalent zu $p \\vee q$.\n",
+    "$(p \\vee (\\neg p \\wedge q))$ ist zum Beispiel äquivalent zu $p \\vee q$.\n",
     "Hier stellen wir die Interpretationen und Modelle tabellarisch dar:"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": 47,
+   "execution_count": 20,
    "metadata": {},
    "outputs": [
     {
@@ -881,7 +899,7 @@
        "TRUE\tTRUE\tTRUE\tTRUE\n"
       ]
      },
-     "execution_count": 47,
+     "execution_count": 20,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -897,7 +915,7 @@
    "cell_type": "markdown",
    "metadata": {},
    "source": [
-    "Wir schreiben diesen Tatbestand als $(p \\vee (\\neg p \\wedge q) \\equiv p \\vee q$.\n",
+    "Wir schreiben diesen Tatbestand als $(p \\vee (\\neg p \\wedge q)) \\equiv p \\vee q$.\n",
     "\n",
     "Kleine Anmerkung: das Werkzeug im Jupyter Notebook akzeptiert keine aussagenlogische Variablen sondern nur Bool'sche Datenvariablen. Anstatt $p$ muss man  ```p=TRUE``` schreiben und anstatt $p \\vee q$ muss man ```p=TRUE ∨ q=TRUE``` schreiben. Mit ```bool(P)``` konvertiert man den Wahrheitswert einer Formel in einen Bool'schen Datenwert um.\n",
     "\n",
@@ -928,9 +946,32 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 21,
    "metadata": {},
-   "outputs": [],
+   "outputs": [
+    {
+     "data": {
+      "text/markdown": [
+       "|p|q|ODER|NODER|NUND|np|nq|\n",
+       "|---|---|---|---|---|---|---|\n",
+       "|$\\mathit{FALSE}$|$\\mathit{FALSE}$|$\\mathit{FALSE}$|$\\mathit{TRUE}$|$\\mathit{TRUE}$|$\\mathit{TRUE}$|$\\mathit{TRUE}$|\n",
+       "|$\\mathit{FALSE}$|$\\mathit{TRUE}$|$\\mathit{TRUE}$|$\\mathit{FALSE}$|$\\mathit{FALSE}$|$\\mathit{TRUE}$|$\\mathit{FALSE}$|\n",
+       "|$\\mathit{TRUE}$|$\\mathit{FALSE}$|$\\mathit{TRUE}$|$\\mathit{FALSE}$|$\\mathit{FALSE}$|$\\mathit{FALSE}$|$\\mathit{TRUE}$|\n",
+       "|$\\mathit{TRUE}$|$\\mathit{TRUE}$|$\\mathit{TRUE}$|$\\mathit{FALSE}$|$\\mathit{FALSE}$|$\\mathit{FALSE}$|$\\mathit{FALSE}$|\n"
+      ],
+      "text/plain": [
+       "p\tq\tODER\tNODER\tNUND\tnp\tnq\n",
+       "FALSE\tFALSE\tFALSE\tTRUE\tTRUE\tTRUE\tTRUE\n",
+       "FALSE\tTRUE\tTRUE\tFALSE\tFALSE\tTRUE\tFALSE\n",
+       "TRUE\tFALSE\tTRUE\tFALSE\tFALSE\tFALSE\tTRUE\n",
+       "TRUE\tTRUE\tTRUE\tFALSE\tFALSE\tFALSE\tFALSE\n"
+      ]
+     },
+     "execution_count": 21,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
    "source": [
     ":table {p,q,ODER,NODER,NUND,np,nq| p:BOOL & q:BOOL & np = bool(¬(p=TRUE)) & nq = bool(¬(q=TRUE)) &\n",
     "                            ODER=bool(p=TRUE ∨ q=TRUE) &\n",
@@ -952,9 +993,32 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 22,
    "metadata": {},
-   "outputs": [],
+   "outputs": [
+    {
+     "data": {
+      "text/markdown": [
+       "|p|q|IMPL|KONT|np|nq|\n",
+       "|---|---|---|---|---|---|\n",
+       "|$\\mathit{FALSE}$|$\\mathit{FALSE}$|$\\mathit{TRUE}$|$\\mathit{TRUE}$|$\\mathit{TRUE}$|$\\mathit{TRUE}$|\n",
+       "|$\\mathit{FALSE}$|$\\mathit{TRUE}$|$\\mathit{TRUE}$|$\\mathit{TRUE}$|$\\mathit{TRUE}$|$\\mathit{FALSE}$|\n",
+       "|$\\mathit{TRUE}$|$\\mathit{FALSE}$|$\\mathit{FALSE}$|$\\mathit{FALSE}$|$\\mathit{FALSE}$|$\\mathit{TRUE}$|\n",
+       "|$\\mathit{TRUE}$|$\\mathit{TRUE}$|$\\mathit{TRUE}$|$\\mathit{TRUE}$|$\\mathit{FALSE}$|$\\mathit{FALSE}$|\n"
+      ],
+      "text/plain": [
+       "p\tq\tIMPL\tKONT\tnp\tnq\n",
+       "FALSE\tFALSE\tTRUE\tTRUE\tTRUE\tTRUE\n",
+       "FALSE\tTRUE\tTRUE\tTRUE\tTRUE\tFALSE\n",
+       "TRUE\tFALSE\tFALSE\tFALSE\tFALSE\tTRUE\n",
+       "TRUE\tTRUE\tTRUE\tTRUE\tFALSE\tFALSE\n"
+      ]
+     },
+     "execution_count": 22,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
    "source": [
     ":table {p,q,IMPL,KONT,np,nq| p:BOOL & q:BOOL & np = bool(¬(p=TRUE)) & nq = bool(¬(q=TRUE)) &\n",
     "                            IMPL=bool(p=TRUE => q=TRUE) &\n",
@@ -976,7 +1040,7 @@
     "# Logisches Schließen\n",
     "Wenn $p \\wedge q$ gilt, dann ist $p$ eine logische Konsequenz (Schlussfolgerung) von $p\\wedge q$.\n",
     "* Wir schreiben dies als $p \\wedge q \\models p$\n",
-    "* Formal bedeutet dies, dass alle Modelle von $q \\wedge p$ auch Modelle von $p$ sind.\n",
+    "* Formal bedeutet dies, dass alle Modelle von $p \\wedge q$ auch Modelle von $p$ sind.\n",
     "\n",
     "Die Tabelle zeigt, dass $p \\Leftrightarrow q \\models p \\Rightarrow q$.\n",
     "Die beiden Formeln sind nicht äquivalent."
@@ -984,9 +1048,32 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 24,
    "metadata": {},
-   "outputs": [],
+   "outputs": [
+    {
+     "data": {
+      "text/markdown": [
+       "|p|q|F1|F2|\n",
+       "|---|---|---|---|\n",
+       "|$\\mathit{FALSE}$|$\\mathit{FALSE}$|$\\mathit{TRUE}$|$\\mathit{TRUE}$|\n",
+       "|$\\mathit{FALSE}$|$\\mathit{TRUE}$|$\\mathit{FALSE}$|$\\mathit{TRUE}$|\n",
+       "|$\\mathit{TRUE}$|$\\mathit{FALSE}$|$\\mathit{FALSE}$|$\\mathit{FALSE}$|\n",
+       "|$\\mathit{TRUE}$|$\\mathit{TRUE}$|$\\mathit{TRUE}$|$\\mathit{TRUE}$|\n"
+      ],
+      "text/plain": [
+       "p\tq\tF1\tF2\n",
+       "FALSE\tFALSE\tTRUE\tTRUE\n",
+       "FALSE\tTRUE\tFALSE\tTRUE\n",
+       "TRUE\tFALSE\tFALSE\tFALSE\n",
+       "TRUE\tTRUE\tTRUE\tTRUE\n"
+      ]
+     },
+     "execution_count": 24,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
    "source": [
     ":table {p,q,F1,F2| p:BOOL & q:BOOL & F1=bool(p=TRUE ⇔ q=TRUE) & F2=bool(p=TRUE ⇒ q=TRUE)}"
    ]
@@ -1054,9 +1141,32 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 25,
    "metadata": {},
-   "outputs": [],
+   "outputs": [
+    {
+     "data": {
+      "text/markdown": [
+       "|x|y|S1|S2|Puzzle|\n",
+       "|---|---|---|---|---|\n",
+       "|$\\mathit{FALSE}$|$\\mathit{FALSE}$|$\\mathit{TRUE}$|$\\mathit{TRUE}$|$\\mathit{TRUE}$|\n",
+       "|$\\mathit{FALSE}$|$\\mathit{TRUE}$|$\\mathit{FALSE}$|$\\mathit{TRUE}$|$\\mathit{FALSE}$|\n",
+       "|$\\mathit{TRUE}$|$\\mathit{FALSE}$|$\\mathit{FALSE}$|$\\mathit{FALSE}$|$\\mathit{FALSE}$|\n",
+       "|$\\mathit{TRUE}$|$\\mathit{TRUE}$|$\\mathit{TRUE}$|$\\mathit{FALSE}$|$\\mathit{FALSE}$|\n"
+      ],
+      "text/plain": [
+       "x\ty\tS1\tS2\tPuzzle\n",
+       "FALSE\tFALSE\tTRUE\tTRUE\tTRUE\n",
+       "FALSE\tTRUE\tFALSE\tTRUE\tFALSE\n",
+       "TRUE\tFALSE\tFALSE\tFALSE\tFALSE\n",
+       "TRUE\tTRUE\tTRUE\tFALSE\tFALSE\n"
+      ]
+     },
+     "execution_count": 25,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
    "source": [
     ":table {x,y,S1,S2,Puzzle | x:BOOL & y:BOOL & \n",
     "                   S1=bool(x=TRUE ⇔ y=TRUE) &\n",
@@ -1081,9 +1191,32 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 27,
    "metadata": {},
-   "outputs": [],
+   "outputs": [
+    {
+     "data": {
+      "text/markdown": [
+       "|x|y|S1|S2|Puzzle|\n",
+       "|---|---|---|---|---|\n",
+       "|$\\mathit{FALSE}$|$\\mathit{FALSE}$|$\\mathit{TRUE}$|$\\mathit{TRUE}$|$\\mathit{TRUE}$|\n",
+       "|$\\mathit{FALSE}$|$\\mathit{TRUE}$|$\\mathit{TRUE}$|$\\mathit{TRUE}$|$\\mathit{TRUE}$|\n",
+       "|$\\mathit{TRUE}$|$\\mathit{FALSE}$|$\\mathit{FALSE}$|$\\mathit{TRUE}$|$\\mathit{FALSE}$|\n",
+       "|$\\mathit{TRUE}$|$\\mathit{TRUE}$|$\\mathit{TRUE}$|$\\mathit{FALSE}$|$\\mathit{FALSE}$|\n"
+      ],
+      "text/plain": [
+       "x\ty\tS1\tS2\tPuzzle\n",
+       "FALSE\tFALSE\tTRUE\tTRUE\tTRUE\n",
+       "FALSE\tTRUE\tTRUE\tTRUE\tTRUE\n",
+       "TRUE\tFALSE\tFALSE\tTRUE\tFALSE\n",
+       "TRUE\tTRUE\tTRUE\tFALSE\tFALSE\n"
+      ]
+     },
+     "execution_count": 27,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
    "source": [
     ":table {x,y,S1,S2,Puzzle | x:BOOL & y:BOOL & \n",
     "                   S1=bool(x=TRUE ⇒ y=TRUE) &\n",
@@ -1131,9 +1264,32 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 28,
    "metadata": {},
-   "outputs": [],
+   "outputs": [
+    {
+     "data": {
+      "text/markdown": [
+       "|x|y|S1|S2|Puzzle|WS|\n",
+       "|---|---|---|---|---|---|\n",
+       "|$\\mathit{FALSE}$|$\\mathit{FALSE}$|$\\mathit{TRUE}$|$\\mathit{TRUE}$|$\\mathit{TRUE}$|$\\mathit{FALSE}$|\n",
+       "|$\\mathit{FALSE}$|$\\mathit{TRUE}$|$\\mathit{FALSE}$|$\\mathit{TRUE}$|$\\mathit{FALSE}$|$\\mathit{FALSE}$|\n",
+       "|$\\mathit{TRUE}$|$\\mathit{FALSE}$|$\\mathit{FALSE}$|$\\mathit{FALSE}$|$\\mathit{FALSE}$|$\\mathit{FALSE}$|\n",
+       "|$\\mathit{TRUE}$|$\\mathit{TRUE}$|$\\mathit{TRUE}$|$\\mathit{FALSE}$|$\\mathit{FALSE}$|$\\mathit{FALSE}$|\n"
+      ],
+      "text/plain": [
+       "x\ty\tS1\tS2\tPuzzle\tWS\n",
+       "FALSE\tFALSE\tTRUE\tTRUE\tTRUE\tFALSE\n",
+       "FALSE\tTRUE\tFALSE\tTRUE\tFALSE\tFALSE\n",
+       "TRUE\tFALSE\tFALSE\tFALSE\tFALSE\tFALSE\n",
+       "TRUE\tTRUE\tTRUE\tFALSE\tFALSE\tFALSE\n"
+      ]
+     },
+     "execution_count": 28,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
    "source": [
     ":table {x,y,S1,S2,Puzzle,WS | x:BOOL & y:BOOL & \n",
     "                   S1=bool(x=TRUE ⇔ y=TRUE) &\n",
@@ -1195,7 +1351,7 @@
     "wobei immer gilt $\\phi_1 \\wedge ...\\phi_i \\models \\phi_{i+1}$.\n",
     "    \n",
     "Wir haben per Transitiviät von $\\models$, dass $\\phi_1 \\models \\phi_k$.\n",
-    "Aber im Gegensatz zum Äquivalenzbeweis gilt hier generell nicht $\\phi_k \\models phi_1$!\n",
+    "Aber im Gegensatz zum Äquivalenzbeweis gilt hier generell nicht $\\phi_k \\models \\phi_1$!\n",
     "Dieser Beweis kann nicht umgekehrt werden.\n",
     "\n"
    ]
@@ -1267,9 +1423,36 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 29,
    "metadata": {},
-   "outputs": [],
+   "outputs": [
+    {
+     "data": {
+      "text/markdown": [
+       "|x|y|res|\n",
+       "|---|---|---|\n",
+       "|$1$|$1$|$\\mathit{FALSE}$|\n",
+       "|$1$|$2$|$\\mathit{TRUE}$|\n",
+       "|$1$|$3$|$\\mathit{TRUE}$|\n",
+       "|$2$|$1$|$\\mathit{FALSE}$|\n",
+       "|$2$|$2$|$\\mathit{FALSE}$|\n",
+       "|$2$|$3$|$\\mathit{TRUE}$|\n"
+      ],
+      "text/plain": [
+       "x\ty\tres\n",
+       "1\t1\tFALSE\n",
+       "1\t2\tTRUE\n",
+       "1\t3\tTRUE\n",
+       "2\t1\tFALSE\n",
+       "2\t2\tFALSE\n",
+       "2\t3\tTRUE\n"
+      ]
+     },
+     "execution_count": 29,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
    "source": [
     ":table {x,y,res | x:1..2 & y:1..3 & res=bool(x<y)}"
    ]
@@ -1313,9 +1496,29 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 30,
    "metadata": {},
-   "outputs": [],
+   "outputs": [
+    {
+     "data": {
+      "text/markdown": [
+       "$\\mathit{TRUE}$\n",
+       "\n",
+       "**Solution:**\n",
+       "* $\\mathit{x} = 0$"
+      ],
+      "text/plain": [
+       "TRUE\n",
+       "\n",
+       "Solution:\n",
+       "\tx = 0"
+      ]
+     },
+     "execution_count": 30,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
    "source": [
     "∃x.(x<5)"
    ]
@@ -1329,27 +1532,87 @@
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 31,
    "metadata": {},
-   "outputs": [],
+   "outputs": [
+    {
+     "data": {
+      "text/markdown": [
+       "$\\mathit{TRUE}$\n",
+       "\n",
+       "**Solution:**\n",
+       "* $\\mathit{x} = 0$"
+      ],
+      "text/plain": [
+       "TRUE\n",
+       "\n",
+       "Solution:\n",
+       "\tx = 0"
+      ]
+     },
+     "execution_count": 31,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
    "source": [
     "x<5"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 32,
    "metadata": {},
-   "outputs": [],
+   "outputs": [
+    {
+     "data": {
+      "text/markdown": [
+       "$\\mathit{TRUE}$\n",
+       "\n",
+       "**Solution:**\n",
+       "* $\\mathit{x} = 10$"
+      ],
+      "text/plain": [
+       "TRUE\n",
+       "\n",
+       "Solution:\n",
+       "\tx = 10"
+      ]
+     },
+     "execution_count": 32,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
    "source": [
     "x+20 = 30"
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 35,
    "metadata": {},
-   "outputs": [],
+   "outputs": [
+    {
+     "data": {
+      "text/markdown": [
+       "$\\mathit{TRUE}$\n",
+       "\n",
+       "**Solution:**\n",
+       "* $\\mathit{x} = -100$"
+      ],
+      "text/plain": [
+       "TRUE\n",
+       "\n",
+       "Solution:\n",
+       "\tx = −100"
+      ]
+     },
+     "execution_count": 35,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
    "source": [
     "x*x = 10000"
    ]
-- 
GitLab