Files
uni_notes/10 Courses/02 - SoSe 2026/Automatentheorie und formale Sprachen/29593852 - Strings.md
2026-04-08 10:52:50 +02:00

2.3 KiB

created, course, topic, related, type, status, tags
created course topic related type status tags
2026-04-08 08:52 29593850 - Automationtheory strings 29593929 - Alphabets lecture 🔴
university

📌 Summary

[!abstract] Overview of lecture 1 on Wednesday, 2026/Apr/08


📝 Content

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

String Operations

Concatenation

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

[!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)

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.