Lecture 003

Ada's Lecture

Regular Language

Regular Language

\langle{Q, \Sigma, \delta, q_0, F}\rangle \rightarrow \langle{Q, \Sigma, \delta, q_0, Q-F}\rangle
\langle{Q_1, \Sigma, \delta_1, q_{0a}, F_1}\rangle \times \langle{Q_2, \Sigma, \delta_2, q_{0b}, F_2}\rangle \rightarrow \\ \langle{Q_1 \times Q_2, \Sigma, \delta((q_1, q_2), \sigma) = (\delta_1(q_1, \sigma), \delta_2(q_2, \sigma)), (q_{0a}, q_{0b}), \{(q_0, q_1) | q_0 \in F_1 \lor q_1 \in F_2\}}\rangle
\langle{Q_1, \Sigma, \delta_1, q_{0a}, F_1}\rangle \times \langle{Q_2, \Sigma, \delta_2, q_{0b}, F_2}\rangle \rightarrow \\ \langle{Q_1 \times Q_2, \Sigma, \delta((q_1, q_2), \sigma) = (\delta_1(q_1, \sigma), \delta_2(q_2, \sigma)), (q_{0a}, q_{0b}), \{(q_0, q_1) | q_0 \in F_1 \land q_1 \in Q - F_2\}}\rangle
\langle{Q_1, \Sigma, \delta_1, q_{0a}, F_1}\rangle \times \langle{Q_2, \Sigma, \delta_2, q_{0b}, F_2}\rangle \rightarrow \\ \langle{Q_1 \times \mathcal{P}(Q_2), \Sigma, \delta((q, \{q_1, ..., q_n\}), \sigma) = \begin{cases} (\delta_1(q, \sigma), \{\delta_2(q_1, \sigma), ..., \delta_2(q_n, \sigma)\}) \text{ if } \delta(q, \sigma)\notin F\\ (\delta_1(q, \sigma), \{\delta_2(q_1, \sigma), ..., \delta_2(q_n, \sigma)\} \cup \{q_{0b}\}) \text{ if } \delta(q, \sigma)\in F\\ \end{cases}, \begin{cases} (q_{0a}, \emptyset) \text{ if } q_{0a} \notin F\\ (q_{0a}, \{q_{0b}\}) \text{ if } q_{0a} \in F\\ \end{cases}, \{(q \in Q_1, S \subseteq Q_2) | (\exists q'\in S) q' \in F_2\}}\rangle
\langle{Q, \Sigma, \delta, q_0, F}\rangle \rightarrow \langle{\mathcal{P}(Q), \Sigma, \delta'(S, \sigma)\begin{cases} \{\delta(s, \sigma) | s \in S\} \cup \{q_0\} \text{ if } (\exists s \in S) \delta(s, \sigma) \in F\\ \{\delta(s, \sigma) | s \in S\} \text{ otherwise } \end{cases}, {q_0}, \{S \subseteq Q | S \cap F \neq \emptyset\}}\rangle

// WARNING: This cannot be proven by induction L^* = \bigcup_{n\in\mathbb{N}}L^n because regular language are not closed under infinite unions. They are closed under finite unions.

Concat Language as Spawning Threads - 1

Concat Language as Spawning Threads - 1

Concat Language as Spawning Threads - 2

Concat Language as Spawning Threads - 2

Recursive Definition:

Other propertiesn

Application of DFAs

Application of DFAs

// TODO: Check Your Understanding

DFA Construction Example:

\begin{align} Q &= \mathbb{P}(Q')\\ \Sigma &= \Sigma'\\ \delta(S_{\text{set of states}}, a) &= \{\delta'(s, a) | s \in S_{\text{set of states}}\}\\ q_0 &= Q'\\ F &= \{q \in Q | (\exists p \in q)(p \in F') \}\\ \end{align}

If M accepts, that means there exists x \in \Sigma^*, w is the input, such that M' accepts xw \in \Sigma^*. We also know if M' accepts xw \in \Sigma^*, then w = x only if they are the same length.

\begin{align} Q &= \mathbb{P}(Q') \times \mathbb{P}(Q')\\ \Sigma &= \Sigma'\\ \delta(S_{\text{set of states}}, T_{\text{set of states}}, a) &= \{\delta'((s, t), a) | s \in S_{\text{set of states}}\}\\ q_0 &= \{q_0'\}\\ F &= \{q \in Q | (\exists p \in q)(p \in F') \}\\ \end{align}

Sutner's Lecture

Regular Languages

Tally Language: L \subseteq \Sigma = \{a\} for all a is a tally language. Since we can interpret a^n as a natural number n over \Sigma, then a tally language is a subset of \mathbb{N}

Linear: a set A \in \mathbb{N} is linear if A = \{c + \sum_{i=1}^d c_ic_x | x_i \geq 0\} were c is constant and c_i is periods.

Semilinear: finite union of linear sets (every finite set is semilinear by allowing d=0 in linear set. A = A_0 \cup \{b + (b_i + xp) | x \geq 0, i \in [k]\} where A_0 is finite) // TODO: understand this

Primitive Recursive: closed under Boolean operations (union, intersection, complement) Regular Language: closed under

DFA Accessibility

Cartesian Product Automation: A = A_1 \times A_2 = \langle{Q_1 \times Q_2, \Sigma, \delta_1, \delta_2; (q_{01}, q_{02}), F_1 \times F_2}\rangle

Accessible state: state p in finite automation is accessible if there is a run from initial state to p.

Accessible automation: if all states are accessible.

Co-accessibility of state: state p in finite automation is co-accessible if there is a run from p to final state.

Co-accessibility automation: if all states are co-accessible.

Trim automation: both accessible and co-accessible.

DFA accepting aa

DFA accepting aa

DFA accepting aa and bb

DFA accepting aa and bb

Accessable part of DFA accepting aa and bb

Accessable part of DFA accepting aa and bb

State Complexity

\text{stc}(L_1 \cap L_2) \leq \text{stc}(L_1) \times \text{stc}(L_2) (size of the product machine A = \prod A_i may be exponential, PSPACE-hard)

Lemma: A_1 \equiv A_2 \iff \mathcal{L}(A_1) - \mathcal{L}(A_2) = \emptyset \land \mathcal{L}(A_2) - \mathcal{L}(A_1) = \emptyset

NFA State Complexity: state complexity bound of concat language in NFA: |A_1|+|A_2| (NFA accepts if there is a run from I to F)

NFA Reversal: A^{op} = \langle{Q, \Sigma, \tau^{op}; F, I}\rangle where (p, a, q) \in \tau^{op} \iff (q, a, p) \in \tau

NFAE: with autonomous transition (epsilon moves)

Hierarchy: DFA \subseteq PDFA \subseteq NFA \subseteq NFAE

Rabin-Scott construction:

Table of Content