Regular Closure Under Right Quotient #
Proof idea: after reading the candidate prefix u, accept if there exists a
suffix from the quotient language that can take the original DFA from the
current state to an accepting state. This existential set of good states is used
as the accepting predicate of a new DFA.
Regular Closure Under Right Quotient #
This file proves that regular languages are closed under right quotient with any language.
This generalises closure under prefix (which is the special case R = Set.univ).
Given a DFA M accepting L and an arbitrary language R, the quotient DFA keeps the same
transition function and start state but changes the accepting states to those from which some
word in R can drive M to an original accepting state.
Main declarations #
A DFA accepting the right quotient of M's language by R.
Equations
- M.quotientDFA R = { step := M.step, start := M.start, accept := M.quotientAccept R }
Instances For
prefixLang as a special case of rightQuotient for regular languages.
The class of regular languages is closed under right quotient with any language.
The class of regular languages is closed under right quotient with regular languages.