How statement and proof provenance work
The first chip identifies the source of the statement or construction; the second identifies the source of its local proof or verification.
- Literature-sourced: the exact statement appears in a cited source; only wording and notation differ.
- AI-adapted: a semantically identical restatement of literature-sourced material, modulo indexing, notation, and boundary cases adopted by the library.
- AI-generated: a genuinely novel statement formulated by AI, with no source for the claim itself.
These labels describe origin, not correctness: citations and verification chips remain separate evidence.
Every regular expression has an equivalent epsilon-NFA
Statement
For every regular expression over an alphabet , there exists an epsilon-NFA over such that
Facts & Assumptions
Given: A regular expression over .
By The language denoted by a regular expression, the denotation of a regular expression is computed from the denotations of its immediate subexpressions by the base, union, concatenation, and star clauses.
By Regular-expression denotation is structurally well-defined, each regular expression has a uniquely determined denoted language.
By Acceptance of a word by an NFA and the recognized language, an epsilon-NFA recognizes exactly the words for which some computation reaches an accepting state after reading the whole word.
Proof
We construct by induction on the structure of , maintaining one designated start state and one designated accepting state, with that designated state as the entire accepting set. For the base expressions, use: a two-state gadget with no transition to its accepting state for ; a two-state gadget joined by one -edge for ; and a two-state gadget with one -edge for a letter .
For , add a fresh start state with -edges to the starts of the machines for and , and a fresh accepting state reached by -edges from their old accepting states; only the fresh state is accepting. For , connect the accepting state of the machine for to the start state of the machine for by an -edge, make the former nonaccepting, and retain only the accepting state of the machine for . For , add fresh start and accepting states, an -edge from the new start to the new accept, an -edge from the new start into the old start, and -edges from the old accept both back to the old start and to the new accept; only the new accept is accepting.
The base gadgets recognize exactly , , and . By [L3], the union gadget accepts exactly when one branch accepts, the concatenation gadget accepts exactly when a word splits into a word accepted by the first machine followed by one accepted by the second, and the star gadget accepts exactly when the input is a concatenation of finitely many words accepted by the submachine. Using [L1] and the uniqueness from [L2], the induction follows for every constructor.
Hence the constructed epsilon-NFA recognizes precisely .
Depends on
Used by
Dependency tree · two levels
10 results within two dependency steps of this one, each drawn at its shortest distance from it. An arrow runs from a result to what uses it, so the chart reads left to right and ends at this result, which carries a heavier outline. Every node is a link to that result. Click elsewhere on the chart to enlarge it.
Sources
- Jean Gallier and Jocelyn Quaintance, Introduction to the Theory of Computation: Some Notes for CIS511 (standard reference, not scraped)