diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json index c305441..f7f65bc 100644 --- a/.obsidian/workspace.json +++ b/.obsidian/workspace.json @@ -13,12 +13,12 @@ "state": { "type": "markdown", "state": { - "file": "00 Inbox/29593852 - Strings.md", + "file": "00 Inbox/29593929 - Alphabets.md", "mode": "source", "source": false }, "icon": "lucide-file", - "title": "29593852 - Strings" + "title": "29593929 - Alphabets" } } ] @@ -78,7 +78,7 @@ } ], "direction": "horizontal", - "width": 349.50418853759766 + "width": 200 }, "right": { "id": "8a65bc0c1d4d98f2", @@ -184,8 +184,13 @@ }, "active": "140d404d9b2faf63", "lastOpenFiles": [ - "10 Courses/02 - SoSe 2026/Automatentheorie und formale Sprachen/29593850 - Automationtheory.md", "00 Inbox/29593852 - Strings.md", + "00 Inbox/29593929 - Alphabets.md", + "30 Library/29592593 - ET_II_Folien_gesamt_020426.pdf", + "30 Library/29593895 - atfl-st2026-l01-formal-languages-full.pdf", + "30 Library/29592593 - 29592593 - ET_II_Folien_gesamt_020426.pdf", + "30 Library/atfl-st2026-l01-formal-languages-full.pdf", + "10 Courses/02 - SoSe 2026/Automatentheorie und formale Sprachen/29593850 - Automationtheory.md", "10 Courses/02 - SoSe 2026/ET II/29592673 - Elektrotechnik II.md", "99 Templates/New File Template.md", "99 Templates/New File Template.md~", @@ -212,14 +217,9 @@ "00 Inbox/29593223 - Elektrotechnik II.md", "10 Courses/02 - SoSe 2026/Mathe II/29592601 - Integration.md", "20 Atlas", - "30 Library/29592593 - ET_II_Folien_gesamt_020426.pdf", - "10 Courses/02 - SoSe 2026/ET II/Zählpfeilsysteme.md", "30 Library/ET_II_Folien_gesamt_020426.pdf", "30 Library/d6d88eed747e389e597d2a19bb868ee6?cid=4b45b3a6f32c35a6d9ca5b1b07b760de", "30 Library/wget-log", - "99 Templates/New File Template", - "99 Templates", - "00 Inbox", "10 Courses/01 - WiSe 2025_26/ET/images/beispiel_knotenregel.png" ] } \ No newline at end of file diff --git a/00 Inbox/29593852 - Strings.md b/00 Inbox/29593852 - Strings.md index 2f39ef6..8ef1ad4 100644 --- a/00 Inbox/29593852 - Strings.md +++ b/00 Inbox/29593852 - Strings.md @@ -18,37 +18,91 @@ tags: ## 📝 Content ### Alphabets -Alphabets are formal, non-empty, sets of symbols (usually lowercase letters). They are denoted by $Sigma$. +Alphabets are formal, non-empty, finite, sets of characters (or _letters_ or _symbols_). They are denoted by $Sigma$. $Sigma = {a, b}$ > Alphabet $Sigma$ contains the characters $a$ and $b$. +$Sigma = {a, ..., z, A, ..., Z, 0, ..., 9}$ +> usual alphabet for writing text + ### Strings -A string is a set of letters. If there is an alphabet $Sigma = {a,b}$ then `abba` is a string made from that alphabet. +A word (or _string_) is a finite sequence $w = a_1 a_2 ... a_n$ if characters from $Sigma$. + +> [!CONVENTION] +> We will use small letters to describe strings that are part of a language. + +> [!EXAMPLE] +> $"aa", "ab", "bba"$ and $"baab"$ are strings over $Sigma = {a, b}. + +#### Length of a string +The _length_ $abs(x)$ of a string $x = a_1 ... a_n$ is its number $abs(x) = n$ of characters. +#### Empty String The empty string is denoted by $epsilon$, this is the neutral element. +-> $abs(epsilon) = 0$ ### Concatenation -String can be concatenated, where one string is appended to another. -$"apple" dot "pie" = "applepie"$ +String can be concatenated, where one string is appended to another. +For strings $x = a_1 ... a_n$ and $y = b_1 ... b_m$ over alphabets $Sigma_x$ and $Sigma_y$, their _concatenation_ over the alphabet $Sigma = Sigma_x union Sigma_y$ is the string +$$x circle.small y = x y = a_1 a_2 ... a_n b_1 b_2 ... b_m$$ +> This string is of the length $abs(x y) = n + m$ -$&x = "apple" \ &y = "pie" \ &x dot y = "applepie"$ +> [!EXAMPLE] +> $x = "apple"$ +> $y = "pie"$ +> $x circle.small y = "applepie"$ + +Order of operations / Brackets do _not matter_. (Concatenation is associative but **not** commutative $x y eq.not y x$) +> $(x circle.small y) circle.small z = x circle.small (y circle.small z)$ -Order of operations / Brackets do _not matter_. Any string concatenated with the empty string $epsilon$ will result in itself. - +> $x circle.small epsilon = x = epsilon circle.small x$ ### Exponentiation +The $n^"th"$ power $x^n$ of a string $x$ is the $(n-1)$-fold concatenation of $x$ with itself. +> $x^0 := epsilon$ +> $x^n := x^(n-1) circle.small x$ for $n in NN$ + +> [!Example] +> $x^4 = x x x x$ +> $(a b)^3 = a b a b a b$ ### Reversing / Mirroring For a string $x = a_1 a_2 ... a_(n-1) a_n$ of length $n$, it's _mirrored string_ is given by $$ x^("Rev") = a_n a_(n-1)...a_2 a_1$$ +### Substrings +A string $x$ is a _substring_ of a string $y$ if $y = u x v$, where $u$ and $v$ can be arbitrary strings. +- If $u = epsilon$ then $x$ is a _prefix_ of $y$. +- If $v = epsilon$ then $x$ is a suffix of $y$. + +For strings $x$ and $y$ the quantity $abs(y)_x$ is the number of times that $x$ is a substring of $y$. ### Kleene Star -Denoted by $Sigma^*$. The Kleene Star (or _Kleene Closure_) gives an infinite amount of strings made up of the characters of the alphabet. +Denoted by $Sigma^*$. The Kleene Star (or _Kleene operator_ or _Kleene Closure_) gives an infinite amount of strings made up of the characters of the alphabet $Sigma ^ *$. +$Sigma^*$ is the set of all string that can be generated by arbitrary concatenation of its characters. +> $Sigma^* := union.big_(n>=0) A_n$ +> where $A_n$ is the set of all string combinations of length $n$ -$$ -Sigma^* {a, b} = {epsilon, a, b, "aa", "ab", "ba", "bb", "aaa", "aab", ...} -$$ -> Example of the Kleene Star of the alphabet ${a, b}$ +#### Remarks +- The same character can be used multiple times. +- The empty string $epsilon$ is also part f $Sigma^*$. + +> [!Example] +> $Sigma^* {a, b} = {epsilon, a, b, "aa", "ab", "ba", "bb", "aaa", "aab", ...}$ + +> [!FACT] +> - The set $Sigma^*$ is infinite, since we defined $Sigma$ to be non-empty. +> - It is _countable_ and has the same cardinality as the set $NN$ of natural numbers + +#### Kleene Plus +The _Kleene Plus_ of an alphabet $Sigma$ is given by $Sigma^+ = Sigma^* backslash {epsilon}$ + +#### Lemma group structure +The structure _Lemma_ is induced by the Kleene star - it is a monoid, that is a semigroup with a neutral element. + +> [!PROOF] +> - Associativity has been shown +> - Existence of a neutral element has been shown. +> - Closure under $circle.small$: Let $x in Sigma^*$ and $y in Sigma^*$ be two string over the alphabet $Sigma$. Then $x circle.small y = x y in Sigma^*$ ### Formal Languages A formal _language_ of the alphabet $Sigma$ is a subset $L$ of $Sigma^*$ diff --git a/00 Inbox/29593929 - Alphabets.md b/00 Inbox/29593929 - Alphabets.md new file mode 100644 index 0000000..3fc5fa2 --- /dev/null +++ b/00 Inbox/29593929 - Alphabets.md @@ -0,0 +1,18 @@ +--- +created: 2026-04-08 10:09 +course: "[[29593850 - Automationtheory]]" +topic: "#alphabets" +related: +type: lecture +status: 🔴 +tags: + - university +--- + ## 📌 Summary + +> [!abstract] +> + +--- + +## 📝 Content diff --git a/30 Library/29593895 - atfl-st2026-l01-formal-languages-full.pdf b/30 Library/29593895 - atfl-st2026-l01-formal-languages-full.pdf new file mode 100644 index 0000000..a883ab7 Binary files /dev/null and b/30 Library/29593895 - atfl-st2026-l01-formal-languages-full.pdf differ