Documentation

Cslib.Computability.Languages.Congruences.MyhillCongruence

Myhill congruence #

The Myhill congruence of a language l is a two-sided congruence that is finer than the Nerode congruence of the same language l (which is a right congruence). It will be used to define the syntactic monoid of l.

References #

[Hol82] Holcombe, W.M.L. (1982). Algebraic automata theory. Section 5.3

@[implicit_reducible]

The Myhill congruence of a language l is the two-sided congruence on finite words such that two words are related iff all their two-sided extensions are either both in l or both not in l.

Equations
Instances For
    @[reducible, inline]
    abbrev Language.MyhillQuotient {α : Type} (l : Language α) :

    The Myhill quotient of a language l is the quotient of its Myhill congruence.

    Equations
    Instances For
      def Language.nerodeMap {α : Type} (l : Language α) (x : List α) :

      Given a language l and a finite word x, the Nerode map is a map from the Nerode quotient to itself induced by the x-transition of the Nerode congruence deterministic automaton of l.

      Equations
      Instances For
        theorem Language.nerodeMap_append {α : Type} (l : Language α) (x y : List α) :
        theorem Language.myhillCongruence_iff {α : Type} (l : Language α) (x y : List α) :

        The Myhill congruence is in fact the congruence induced by the Nerode map.

        The Myhill quotient of a regular language is finite.

        The deterministic automaton corresponding to the Myhill congruence of a language l.

        Equations
        Instances For

          The deterministic automaton corresponding to the Myhill congruence of a language l accepts the same language l.

          A language is regular if and only if its Myhill quotient is finite.