From 412daadd6ab6ca1abe0b06b2facf66ecb008fe93 Mon Sep 17 00:00:00 2001
From: Chris <Christopher.Happe@uni-duesseldorf.de>
Date: Mon, 2 Nov 2020 08:02:09 +0100
Subject: [PATCH] Text zur Anwendung von Abschlusseigenschaften

---
 info4/kapitel-2/Abschlusseigenschaften.ipynb | 45 +++++++++++++++++---
 1 file changed, 40 insertions(+), 5 deletions(-)

diff --git a/info4/kapitel-2/Abschlusseigenschaften.ipynb b/info4/kapitel-2/Abschlusseigenschaften.ipynb
index 85fa82c..ec52f0e 100644
--- a/info4/kapitel-2/Abschlusseigenschaften.ipynb
+++ b/info4/kapitel-2/Abschlusseigenschaften.ipynb
@@ -1157,7 +1157,9 @@
   {
    "cell_type": "code",
    "execution_count": 14,
-   "metadata": {},
+   "metadata": {
+    "scrolled": true
+   },
    "outputs": [
     {
      "data": {
@@ -1174,6 +1176,13 @@
     ":constants"
    ]
   },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Bei dieser Konstruktion können hier viele Zustände nicht erreicht werden. Dennoch akzeptiert der Automat die gewünsche Sprache."
+   ]
+  },
   {
    "cell_type": "code",
    "execution_count": 15,
@@ -1933,11 +1942,37 @@
    ]
   },
   {
-   "cell_type": "code",
-   "execution_count": null,
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Nun haben wir bewiesen, dass die regulären Sprachen abgeschlossen über \n",
+    "* Vereinigung A ∪ B\n",
+    "* Komplement A̅\n",
+    "* Schnitt A ∩ B\n",
+    "* Differenz A/B\n",
+    "* Konkatenation AB\n",
+    "* Iteration A*\n",
+    "* Spiegelung sp(A)\n",
+    "\n",
+    "sind. Aber was kann man eigentlich damit machen?"
+   ]
+  },
+  {
+   "cell_type": "markdown",
    "metadata": {},
-   "outputs": [],
-   "source": []
+   "source": [
+    "Mit Hilfe der Abschlusseigenschaften für reguläre Sprachen kann man zeigen, dass eine Sprache\n",
+    "1. regulär ist\n",
+    "2. nicht regulär ist\n",
+    "\n",
+    "Um zu zeigen, dass eine Sprache regulär ist, findet man zwei (oder eine) reguläre Sprachen, die mit Hilfe einer oder mehrerer der oben angegebenen Operationen die gewünschte Sprache ergeben.\n",
+    "\n",
+    "Will man zum Beispiel zeigen, dass die Sprache $L=\\{0^m1^n\\}$ regulär ist, dann wählt man die Sprachen $L_1=\\{0^m\\}$ und $L_2=\\{1^n\\}$. Diese sind aus der Vorlesung als regulär bekannt. Damit gilt dann, dass $L=L_1L_2$ und somit ist L regulär.\n",
+    "\n",
+    "Dabei muss man allerdings beachten, dass $L_1$ und $L_2$ unabhängig voneinander sind. Man kann nicht $L_1=\\{0^n\\}$ und $L_2=\\{1^n\\}$ wählen und damit zeigen, dass $L_3=L_1L_2=\\{0^n1^n\\}$ regulär ist. Dabei wurde die Konkatenation falsch verwendet. In diesem Fall wäre $L_3=L_1L_2=\\{0^m1^n\\}=L$, was wie oben beschrieben regulär ist.\n",
+    "\n",
+    "Um zu zeigen, dass eine Sprache $L$ nicht regulär ist, wählt man eine nicht reguläre Sprache $L_1$ und ggf. eine reguläre Sprache $L_2$ und führt diese mit Hilfe der Operationen auf $L$ zurück. Man zeigt also z.B. dass $L_2∩L=L_1$ gilt. Da $L_2$ regulär ist und die regulären Sprachen abgeschlossen bezüglich des Schnittes zweier Sprachen sind, müsste $L_1$ auch reulär sein, wenn $L$ regulär wäre. Da $L_1$ aber nach Voraussetzung nicht regulär ist, kann $L$ ebenfalls nicht regulär sein. Ein konkretes Beispiel hierfür ist $L=\\{x∈\\{0,1\\}^*|\\text{x hat gleich viele 0en und 1en}\\}$, $L_1=\\{0^n1^n\\}$ und $L_2=L(0^*1^*)$. Aus der Vorlesung ist bekannt, dass $L_1$ nicht regulär und $L_2$ regulär ist. Außerdem gilt $L_2∩L=L_1$. Daher kann L nicht regulär sein."
+   ]
   }
  ],
  "metadata": {
-- 
GitLab