Quotient types #
These are ported from the Lean 3 standard library file init/data/quot.lean
.
- rel: ∀ {α : Type u} {r : α → α → Prop} (x y : α), r x y → EqvGen r x y
- refl: ∀ {α : Type u} {r : α → α → Prop} (x : α), EqvGen r x x
- symm: ∀ {α : Type u} {r : α → α → Prop} (x y : α), EqvGen r x y → EqvGen r y x
- trans: ∀ {α : Type u} {r : α → α → Prop} (x y z : α), EqvGen r x y → EqvGen r y z → EqvGen r x z
EqvGen r
is the equivalence relation generated by r
.
Instances For
EqvGen.Setoid r
is the setoid generated by a relation r
.
The motivation for this definition is that Quot r
behaves like Quotient (EqvGen.Setoid r)
,
see for example Quot.exact
and Quot.EqvGen_sound
.
Equations
- EqvGen.Setoid r = { r := EqvGen r, iseqv := (_ : Equivalence (EqvGen r)) }
Instances For
instance
Quotient.decidableEq
{α : Sort u}
{s : Setoid α}
[d : (a b : α) → Decidable (a ≈ b)]
:
DecidableEq (Quotient s)
Equations
- One or more equations did not get rendered due to their size.