Documentation

Cslib.Computability.Languages.Congruences.Basic

Right Congruence #

This file contains basic definitions about left, right, and (two-sided) congruences on finite sequences.

class Language.RightCongruence (α : Type u_2) extends Setoid (List α) :
Type u_2

A right congruence is an equivalence relation on finite sequences (represented by lists) that is preserved by concatenation on the right. The equivalence relation is represented by a setoid to to enable ready access to the quotient construction.

Instances
    @[reducible, inline]

    The equivalence class (as a language) corresponding to an element of the quotient type.

    Equations
    Instances For
      class Language.LeftCongruence (α : Type u_2) extends Setoid (List α) :
      Type u_2

      A left congruence is an equivalence relation on finite sequences (represented by lists) that is preserved by concatenation on the left. The equivalence relation is represented by a setoid to to enable ready access to the quotient construction.

      Instances
        @[reducible, inline]
        abbrev Language.LeftCongruence.eqvCls {α : Type u_1} [c : LeftCongruence α] (a : Quotient c.eq) :

        The equivalence class (as a language) corresponding to an element of the quotient type.

        Equations
        Instances For

          A (two-sided) congruence is an equivalence relation on finite sequences (represented by lists) that is both a left-congruence and a right-congruence.

          Instances
            @[reducible, inline]
            abbrev Language.Congruence.eqvCls {α : Type u_1} [c : Congruence α] (a : Quotient c.eq) :

            The equivalence class (as a language) corresponding to an element of the quotient type.

            Equations
            Instances For