Source / pinned edition
Regular Expressions and FSA's
Source of package hws.regular_languages · Critchlow & Eck, Foundations of Computation, Chapter 3 «Regular Expressions and FSA's»
- work
- urn:hws:clir:regular-languages#FOC_CHAPTER3
- number
- Critchlow & Eck, Foundations of Computation, Chapter 3 «Regular Expressions and FSA's»
- kind
- urn:hws:clir:regular-languages#treatise
Foundations of Computation, version 2.3.2 (Summer 2011)
- edition
- urn:hws:clir:regular-languages#FOC_232
- language
- en
- officiality
- official
- materialisation
- PINNED_OFFICIAL_BYTES
- life cycle
- adopted: 2011-08-01
Publications
| URI | Type | documentHash | Retrieved |
|---|---|---|---|
| https://math.hws.edu/FoundationsOfComputation/FoundationsOfComputation-source.zip | application/x-tex; charset=utf-8 | sha256:3c708955b36460a80cebbdc8c3e277b1f4f6b0b7e4bee135d8e484a3f5479ec3 | 2026-09-07T00:00:00Z |
Fragments — 13
3.6/theorem/closure · theorem · referenced by: 5
en · official · sha256:13045159c908f52ecb9342f0665ccf9e3c4da940f3965c3cdf4c3464ecfe3554
\begin{theorem}\label{closure}
The intersection of two
regular languages is a regular language.
The union of two
regular languages is a regular language.
The concatenation of two
regular languages is a regular language.
The complement of a regular language is a regular language.
The Kleene closure of a regular language is a regular language.
\end{theorem}Referencing norms: ClosureComplement, ClosureConcatenation, ClosureIntersection, ClosureStar, ClosureUnion
3.4/definition/dfa · defn · referenced by: 1
en · official · sha256:6a10f0f0139acf73ebb48962003d69550ca7cac680b7e1fe8860a220ac5f5df9
\begin{definition}
Formally,
a \nw{deterministic finite-state automaton} $M$ is specified by 5 components:
$M=(Q, \Sigma, q_0, \delta, F)$ where
\begin{itemize}
\item $Q$ is a finite set of states;
\item $\Sigma$ is an alphabet called the {\em input alphabet};
\item $q_0 \in Q$ is a state which is designated as the {\em start state};
\item $F$ is a subset of $Q$; the states in $F$ are states designated as
{\em final} or {\em accepting} states;
\item $\delta$ is a transition function that takes
$<$state, input symbol$>$ pairs and maps each one to a state: $\delta : Q \times
\Sigma \rightarrow Q$. To say
$\delta(q,a) = q'$ means that
if the machine is in state $q$ and the input symbol $a$ is consumed, then the
machine will move into state $q'$. The function $\delta$ must be a total
function, meaning that $\delta(q,a)$ must be defined for every state $q$ and
every input symbol $a$. (Recall also that, according to the definition of a
function, there can be only one output for any particular input. This means
that for any given $q$ and $a$, $\delta(q,a)$ can have only one value. This is
what makes the finite-state automaton deterministic: given the current state and
input symbol, there is only one possible move the machine can make.)
\end{itemize}
\end{definition}Referencing norms: DeterministicAutomaton
3.4/definition/dfa-accepts · defn · referenced by: 1
en · official · sha256:10e63d42425d06d53bf28bcdf18a48ba3f44c51d2b00ee08afd14c64071e7baf
\begin{definition}
Let $M=(Q, \Sigma, q_0, \delta, F)$. A string $w \in \Sigma^*$ is \nw{accepted}
by $M$ iff $\dstar(q_0, w) \in F$. \ \ (Don't get confused by the notation.
Remember, it's just a shorter and neater way of saying
``$w \in \Sigma^*$ is accepted by $M$ if and only if the state that $M$ will end
up in
if it starts in $q_0$ and consumes $w$ is one of the states in $F$.")
The \nw{language accepted by $M$}, denoted $L(M)$, is the set of all strings
$w \in \Sigma^*$ that are accepted by $M$:
$L(M) = \{ w \in\Sigma^* \ | \ \delta^*(q_0, w) \in F\}$.
\end{definition}Referencing norms: LanguageAcceptedByDfa
3.6/theorem/automaton-to-regexp · theorem · referenced by: 2
en · official · sha256:66f10447186a2c0a0486937f6a7f59920d9ebf0d8ef702e785150586024d73b5
\begin{theorem}\label{T-DFAeqReg}
Every language that is accepted by a DFA or an NFA is generated by a regular
expression.
\end{theorem}Referencing norms: KleeneSecondHalf, KleeneSecondHalfProofStaysInSource
3.1/definition/language · defn · referenced by: 1
en · official · sha256:c100e631d2a1d61625400a812313a3edf117fe4711555af2116495d4698e9076
\begin{definition} A language over an alphabet $\Sigma$ is a subset
of $\Sigma^*$. Thus, a language over $\Sigma$ is an element of
${\cal P}(\Sigma^*)$, the power set of $\Sigma^*$.
\end{definition}Referencing norms: LanguageOverAlphabet
3.5/definition/nfa · defn · referenced by: 1
en · official · sha256:0a3d3c06d0375ecc5eb9f21e6c75013865c124087b177dd2c26ec2dac6aa98da
\begin{definition}
Formally,
a nondeterministic finite-state automaton $M$ is specified by 5 components:
$M=(Q, \Sigma, q_0, \partial, F)$ where
\begin{itemize}
\item $Q$, $\Sigma$, $q_0 $ and $F$ are as in the definition of DFAs;
\item $\partial$ is a transition function that takes
$<$state, input symbol$>$ pairs and maps each one to a set of states. To say
$\partial(q,a) = \{q_1, q_2, \ldots , q_n\}$ means that
if the machine is in state $q$ and the input symbol $a$ is consumed, then the
machine may move directly into any one of states $q_1, q_2, \ldots , q_n$.
The function $\partial$ must also be defined for every $<$state,$\varep$$>$ pair.
To say
$\partial(q,\varep) = \{q_1, q_2, \ldots , q_n\}$ means that there are direct
$\varep$-transitions from state $q$ to each of $q_1, q_2, \ldots , q_n$.
The formal description of the function $\partial$ is $\partial : Q \times
(\Sigma \cup \{\varep\}) \rightarrow \POW(Q)$.
\end{itemize}
\end{definition}Referencing norms: NondeterministicAutomaton
3.5/definition/nfa-accepts · defn · referenced by: 1
en · official · sha256:be56b2f6f7c74060d96b3dae52661a240ac91d7edeee7f62a35376e6a65bc4a2
\begin{definition}
Let $M= (Q, \Sigma, q_0, \partial, F)$ be a nondeterministic finite-state
automaton. The string $\winss$ is \nw{accepted}
by $M$ iff $\pstar(q_0,w)$ contains at least one state $q_F \in F$.
The \nw{language accepted by $M$}, denoted $L(M)$, is the set of all strings
$\winss$ that are
accepted by $M$: $L(M) = \{ w \in \Sigma^* \ | \ \pstar(q_0, w) \cap F \not=
\emptyset\}$.
\end{definition}Referencing norms: LanguageAcceptedByNfa
3.1/theorem/uncountably-many-languages · theorem · referenced by: 2
en · official · sha256:44f394d3c61c2751847f8d32e4ab1d2da2cd962e8537901db51e1a75e7bc2f30
\begin{theorem}
For any alphabet $\Sigma$, the number of languages over $\Sigma$ is
uncountable.
\end{theorem}Referencing norms: UncountabilityProofStaysInSource, UncountablyManyLanguages
3.2/definition/language-generated · defn
en · official · sha256:2c2875d1283cb8bb53812b782bc4d15f83fea1e359ef2e7bf53a1759a8967181
\begin{definition}\label{lgbre}
The \nw{language generated by a regular expression $r$},
denoted $L(r)$,
is defined as follows:
\begin{enumerate}
\item $L(\Phi) = \emptyset$, i.e.\ no strings match $\Phi$;
\item $L(\varep) = \{\varep\}$, i.e.\ $\varep$ matches only the
empty string;
\item $L(a) = \{a\}$, i.e.\ $a$ matches only the string $a$;
\item $L(r_1\REOR r_2) = L(r_1) \cup L(r_2)$, i.e.\ $r_1\REOR r_2$ matches
strings that match $r_1$ or $r_2$ or both;
\item $L(r_1r_2) = L(r_1)L(r_2)$, i.e.\ $r_1r_2$ matches strings of the form
``something that matches $r_1$ followed by something that
matches $r_2$";
\item $L(r_1^*) = (L(r_1))^*$, i.e.\ $r_1^*$ matches sequences of 0
or more strings each of which matches $r_1$.
\item $L((r_1)) = L(r_1)$, i.e.\ $(r_1)$ matches exactly those strings
matched by $r_1$.
\end{enumerate}
\end{definition}3.2/definition/regular-expression · defn · referenced by: 1
en · official · sha256:4f5b55c44a77f8e11c90071d562ff2a986963473b251a184b98180e0d9650c20
\begin{definition}
Let $\Sigma$ be an alphabet. Then the
following patterns are \nw{regular expressions} over $\Sigma$:
\begin{enumerate}
\item $\Phi$ and $\varep$ are regular expressions;
\item $a$ is a regular expression, for each $a \in \Sigma$;
\item if $r_1$ and $r_2$ are regular expressions, then so are
$r_1\REOR r_2$, $r_1\cdot r_2$, $r_1^*$ and $(r_1)$ (and of course, $r_2^*$
and $(r_2)$).
As in concatenation of strings, the $\cdot$ is often left out of
the second expression. (Note: the order of precedence of operators, from lowest to highest,
is $\REOR $, $\cdot$, $*$.)
\end{enumerate}
No other patterns are regular expressions.
\end{definition}Referencing norms: RegexpOverAlphabet
3.2/definition/regular-language · defn · referenced by: 1
en · official · sha256:6c4135a4330cf4b5886c874258bd18591f8c9d036606a3f4697272f74383d76b
\begin{definition}
A language is {\em regular} if it is generated by
a regular expression.
\end{definition}Referencing norms: RegularLanguage
3.6/theorem/regexp-to-nfa · theorem · referenced by: 2
en · official · sha256:06a5b8575f7eb602c79e0e9014d384dec08094ba12d40e8ffd0d83b0c313f6b1
\begin{theorem}\label{retonfa}
Every language generated by a regular expression can be recognized by an NFA.
\end{theorem}Referencing norms: KleeneFirstHalf, KleeneFirstHalfProofStaysInSource
3.5/theorem/nfa-to-dfa · theorem · referenced by: 2
en · official · sha256:a82f0834eff1f9f72c503aa76fb4ad08e0e39e693069b718bbc838852507f26e
\begin{theorem}
Every language that is accepted by an NFA is accepted by a DFA.
\end{theorem}Referencing norms: SubsetConstructionProofStaysInSource, SubsetConstructionTheorem
The hash beside the text is the sha256 of its exact bytes. It is the check that the text shown matches the one pinned in the package: a divergence fails the oracle’s static analysis.