Typeclass for congruence over a context.
The relation r is a congruence on α. This class gives access to the ≡[r] notation.
To instantiate a canonical congruence for α, see HasCongruence.
Congruence relations should also instantiate LawfulCongruence to prove that the relation respects
the expected congruence laws.
Instances
a ≡[r] b means that the a and b are related by the congruence r.
Equations
- Cslib.Congruence.r r = r
Instances For
a ≡[r] b means that the a and b are related by the congruence r.
Equations
- One or more equations did not get rendered due to their size.
Instances For
a ≡ b means that a and b are related by the canonical congruence relation for their
type.
Equations
- Cslib.DefaultCongruence.r a b = r a b
Instances For
a ≡ b means that a and b are related by the canonical congruence relation for their
type.
Equations
- Cslib.«term_≡_» = Lean.ParserDescr.trailingNode `Cslib.«term_≡_» 29 30 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ≡ ") (Lean.ParserDescr.cat `term 30))
Instances For
@[instance_reducible]
instance
Cslib.instCongruenceOfDefaultCongruence
(α : Type u_1)
(r : α → α → Prop)
[DefaultCongruence α r]
:
Equations
class
Cslib.LawfulCongruence
{α : Type u_1}
(r : α → α → Prop)
[Congruence r]
[HasContext α]
extends IsEquiv α r, CovariantClass (Cslib.HasContext.Context α) α (fun (x1 : Cslib.HasContext.Context α) (x2 : α) => x1<[x2])
fun (x1 x2 : α) => Cslib.Congruence.r r x1 x2 :
An equivalence relation on α preserved by all contexts.
- elim : Covariant (Cslib.HasContext.Context α) α (fun (x1 : Cslib.HasContext.Context α) (x2 : α) => x1<[x2]) fun (x1 x2 : α) => Cslib.Congruence.r r x1 x2