Myhill–Nerode theorem #
This file proves the Myhill–Nerode theorem using left quotients.
Given a language L and a word x, the left quotient of L by x is the set of suffixes y
such that x ++ y is in L. The Myhill–Nerode theorem shows that each left quotient, in fact,
corresponds to the state of an automaton that matches L, and that L is regular if and only if
there are finitely many such states.
References #
@[simp]
@[simp]
theorem
Language.IsRegular.finite_range_leftQuotient
{α : Type u}
{L : Language α}
(h : L.IsRegular)
:
The left quotients of a language are the states of an automaton that accepts the language.
Equations
Instances For
@[simp]
theorem
Language.step_toDFA
{α : Type u}
{L : Language α}
(s : ↑(Set.range L.leftQuotient))
(a : α)
:
theorem
Language.IsRegular.of_finite_range_leftQuotient
{α : Type u}
{L : Language α}
(h : (Set.range L.leftQuotient).Finite)
:
Myhill–Nerode theorem. A language is regular if and only if the set of left quotients is finite.