Built with Alectryon, running Coq+SerAPI v8.19.0+0.19.3. Bubbles () indicate interactive fragments: hover for details, tap to reveal contents. Use Ctrl+↑Ctrl+↓ to navigate, Ctrl+🖱️ to focus. On Mac, use ⌘ instead of Ctrl.
(** This file proves the third isomorphism theorem, [isomorphic_third_isomorphism]. *)
[Loading ML file number_string_notation_plugin.cmxs (using legacy method) ... done]
Import algebra_notations quotient_algebra_notations isomorphic_notations.(** This section defines the quotient [cong_quotient] of two congruences [Φ] and [Ψ], where [Ψ] is a subcongruence of [Φ]. It is shown that [cong_quotient] is a congruence. *)Sectioncong_quotient.Context
`{Univalence}
{σ : Signature} {A : Algebra σ}
(Φ : ∀s, Relation (A s)) `{!IsCongruence A Φ}
(Ψ : ∀s, Relation (A s)) `{!IsCongruence A Ψ}
(subrel : ∀ (s : Sort σ) (xy : A s), Ψ s x y → Φ s x y).Definitioncong_quotient (_ : ∀sxy, Ψ s x y → Φ s x y)
(s : Sort σ) (ab : (A/Ψ) s)
:= ∀ (xy : A s), in_class (Ψ s) a x → in_class (Ψ s) b y → Φ s x y.
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y s: Sort σ
EquivRel (cong_quotient subrel s)
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y s: Sort σ
EquivRel (cong_quotient subrel s)
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y s: Sort σ
Reflexive (cong_quotient subrel s)
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y s: Sort σ
Symmetric (cong_quotient subrel s)
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y s: Sort σ
Transitive (cong_quotient subrel s)
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y s: Sort σ
Reflexive (cong_quotient subrel s)
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y s: Sort σ
foralla : A s,
cong_quotient subrel s (class_of (Ψ s) a)
(class_of (Ψ s) a)
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y s: Sort σ x, y, z: A s P: in_class (Ψ s) (class_of (Ψ s) x) y Q: in_class (Ψ s) (class_of (Ψ s) x) z
Φ s y z
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y s: Sort σ x, y, z: A s P: in_class (Ψ s) (class_of (Ψ s) x) y Q: in_class (Ψ s) (class_of (Ψ s) x) z
Ψ s y z
bytransitivity x.
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y s: Sort σ
Symmetric (cong_quotient subrel s)
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y s: Sort σ
forall (a : A s) (y : (A / Ψ) s),
cong_quotient subrel s (class_of (Ψ s) a) y ->
cong_quotient subrel s y (class_of (Ψ s) a)
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y s: Sort σ x1: A s
forally : (A / Ψ) s,
cong_quotient subrel s (class_of (Ψ s) x1) y ->
cong_quotient subrel s y (class_of (Ψ s) x1)
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y s: Sort σ x1: A s
foralla : A s,
cong_quotient subrel s (class_of (Ψ s) x1)
(class_of (Ψ s) a) ->
cong_quotient subrel s (class_of (Ψ s) a)
(class_of (Ψ s) x1)
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y s: Sort σ x1, x2: A s C: cong_quotient subrel s
(class_of (Ψ s) x1)
(class_of (Ψ s) x2) y1, y2: A s P: in_class (Ψ s) (class_of (Ψ s) x2) y1 Q: in_class (Ψ s) (class_of (Ψ s) x1) y2
Φ s y1 y2
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y s: Sort σ x1, x2: A s C: cong_quotient subrel s
(class_of (Ψ s) x1)
(class_of (Ψ s) x2) y1, y2: A s P: in_class (Ψ s) (class_of (Ψ s) x2) y1 Q: in_class (Ψ s) (class_of (Ψ s) x1) y2
Φ s y2 y1
byapply C.
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y s: Sort σ
Transitive (cong_quotient subrel s)
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y s: Sort σ
forall (a : A s) (yz : (A / Ψ) s),
cong_quotient subrel s (class_of (Ψ s) a) y ->
cong_quotient subrel s y z ->
cong_quotient subrel s (class_of (Ψ s) a) z
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y s: Sort σ x1: A s
forallyz : (A / Ψ) s,
cong_quotient subrel s (class_of (Ψ s) x1) y ->
cong_quotient subrel s y z ->
cong_quotient subrel s (class_of (Ψ s) x1) z
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y s: Sort σ x1: A s
forall (a : A s) (z : (A / Ψ) s),
cong_quotient subrel s (class_of (Ψ s) x1)
(class_of (Ψ s) a) ->
cong_quotient subrel s (class_of (Ψ s) a) z ->
cong_quotient subrel s (class_of (Ψ s) x1) z
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y s: Sort σ x1, x2: A s
forallz : (A / Ψ) s,
cong_quotient subrel s (class_of (Ψ s) x1)
(class_of (Ψ s) x2) ->
cong_quotient subrel s (class_of (Ψ s) x2) z ->
cong_quotient subrel s (class_of (Ψ s) x1) z
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y s: Sort σ x1, x2: A s
foralla : A s,
cong_quotient subrel s (class_of (Ψ s) x1)
(class_of (Ψ s) x2) ->
cong_quotient subrel s (class_of (Ψ s) x2)
(class_of (Ψ s) a) ->
cong_quotient subrel s (class_of (Ψ s) x1)
(class_of (Ψ s) a)
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y s: Sort σ x1, x2, x3: A s C: cong_quotient subrel s
(class_of (Ψ s) x1)
(class_of (Ψ s) x2) D: cong_quotient subrel s
(class_of (Ψ s) x2)
(class_of (Ψ s) x3) y1, y2: A s P: in_class (Ψ s) (class_of (Ψ s) x1) y1 Q: in_class (Ψ s) (class_of (Ψ s) x3) y2
Φ s y1 y2
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y s: Sort σ x1, x2, x3: A s C: cong_quotient subrel s
(class_of (Ψ s) x1)
(class_of (Ψ s) x2) D: cong_quotient subrel s
(class_of (Ψ s) x2)
(class_of (Ψ s) x3) y1, y2: A s P: in_class (Ψ s) (class_of (Ψ s) x1) y1 Q: in_class (Ψ s) (class_of (Ψ s) x3) y2
Φ s y1 x2
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y s: Sort σ x1, x2, x3: A s C: cong_quotient subrel s
(class_of (Ψ s) x1)
(class_of (Ψ s) x2) D: cong_quotient subrel s
(class_of (Ψ s) x2)
(class_of (Ψ s) x3) y1, y2: A s P: in_class (Ψ s) (class_of (Ψ s) x1) y1 Q: in_class (Ψ s) (class_of (Ψ s) x3) y2
Φ s x2 y2
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y s: Sort σ x1, x2, x3: A s C: cong_quotient subrel s
(class_of (Ψ s) x1)
(class_of (Ψ s) x2) D: cong_quotient subrel s
(class_of (Ψ s) x2)
(class_of (Ψ s) x3) y1, y2: A s P: in_class (Ψ s) (class_of (Ψ s) x1) y1 Q: in_class (Ψ s) (class_of (Ψ s) x3) y2
Φ s y1 x2
exact (C y1 x2 P (EquivRel_Reflexive x2)).
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y s: Sort σ x1, x2, x3: A s C: cong_quotient subrel s
(class_of (Ψ s) x1)
(class_of (Ψ s) x2) D: cong_quotient subrel s
(class_of (Ψ s) x2)
(class_of (Ψ s) x3) y1, y2: A s P: in_class (Ψ s) (class_of (Ψ s) x1) y1 Q: in_class (Ψ s) (class_of (Ψ s) x3) y2
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y w: list (Sort σ) a, b: FamilyProd A w
for_all_2_family_prod (A / Ψ) (A / Ψ)
(cong_quotient subrel)
(map_family_prod (λs : Sort σ, class_of (Ψ s)) a)
(map_family_prod (λs : Sort σ, class_of (Ψ s)) b) ->
for_all_2_family_prod A A Φ a b
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y w: list (Sort σ) a, b: FamilyProd A w
for_all_2_family_prod (A / Ψ) (A / Ψ)
(cong_quotient subrel)
(map_family_prod (λs : Sort σ, class_of (Ψ s)) a)
(map_family_prod (λs : Sort σ, class_of (Ψ s)) b) ->
for_all_2_family_prod A A Φ a b
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y w: list (Sort σ) a, b: FamilyProd A w F: for_all_2_family_prod
(A / Ψ) (A / Ψ) (cong_quotient subrel)
(map_family_prod (λs : Sort σ, class_of (Ψ s))
a)
(map_family_prod (λs : Sort σ, class_of (Ψ s))
b)
for_all_2_family_prod A A Φ a b
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y a, b, F: Unit
Unit
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y a0: Sort σ w: list (Sort σ) a, b: A a0 * FamilyProd A w F: cong_quotient subrel a0
(class_of (Ψ a0) (fst a))
(class_of (Ψ a0) (fst b)) *
for_all_2_family_prod
(carriers_quotient_algebra A Ψ)
(carriers_quotient_algebra A Ψ)
(cong_quotient subrel)
(map_family_prod (λs : Sort σ, class_of (Ψ s))
(snd a))
(map_family_prod (λs : Sort σ, class_of (Ψ s))
(snd b)) IHw: forallab : FamilyProd A w,
for_all_2_family_prod
(carriers_quotient_algebra A Ψ)
(carriers_quotient_algebra A Ψ)
(cong_quotient subrel)
(map_family_prod
(λs : Sort σ, class_of (Ψ s)) a)
(map_family_prod
(λs : Sort σ, class_of (Ψ s)) b) ->
for_all_2_family_prod A A Φ a b
Φ a0 (fst a) (fst b) *
for_all_2_family_prod A A Φ (snd a) (snd b)
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y a, b, F: Unit
Unit
constructor.
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y a0: Sort σ w: list (Sort σ) a, b: A a0 * FamilyProd A w F: cong_quotient subrel a0
(class_of (Ψ a0) (fst a))
(class_of (Ψ a0) (fst b)) *
for_all_2_family_prod
(carriers_quotient_algebra A Ψ)
(carriers_quotient_algebra A Ψ)
(cong_quotient subrel)
(map_family_prod (λs : Sort σ, class_of (Ψ s))
(snd a))
(map_family_prod (λs : Sort σ, class_of (Ψ s))
(snd b)) IHw: forallab : FamilyProd A w,
for_all_2_family_prod
(carriers_quotient_algebra A Ψ)
(carriers_quotient_algebra A Ψ)
(cong_quotient subrel)
(map_family_prod
(λs : Sort σ, class_of (Ψ s)) a)
(map_family_prod
(λs : Sort σ, class_of (Ψ s)) b) ->
for_all_2_family_prod A A Φ a b
Φ a0 (fst a) (fst b) *
for_all_2_family_prod A A Φ (snd a) (snd b)
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y a0: Sort σ w: list (Sort σ) x: A a0 a: FamilyProd A w y: A a0 b: FamilyProd A w Q: cong_quotient subrel a0
(class_of (Ψ a0) x)
(class_of (Ψ a0) y) F: for_all_2_family_prod
(carriers_quotient_algebra A Ψ)
(carriers_quotient_algebra A Ψ)
(cong_quotient subrel)
(map_family_prod (λs : Sort σ, class_of (Ψ s))
a)
(map_family_prod (λs : Sort σ, class_of (Ψ s))
b) IHw: forallab : FamilyProd A w,
for_all_2_family_prod
(carriers_quotient_algebra A Ψ)
(carriers_quotient_algebra A Ψ)
(cong_quotient subrel)
(map_family_prod
(λs : Sort σ, class_of (Ψ s)) a)
(map_family_prod
(λs : Sort σ, class_of (Ψ s)) b) ->
for_all_2_family_prod A A Φ a b
Φ a0 x y * for_all_2_family_prod A A Φ a b
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y a0: Sort σ w: list (Sort σ) x: A a0 a: FamilyProd A w y: A a0 b: FamilyProd A w Q: cong_quotient subrel a0
(class_of (Ψ a0) x)
(class_of (Ψ a0) y) F: for_all_2_family_prod
(carriers_quotient_algebra A Ψ)
(carriers_quotient_algebra A Ψ)
(cong_quotient subrel)
(map_family_prod (λs : Sort σ, class_of (Ψ s))
a)
(map_family_prod (λs : Sort σ, class_of (Ψ s))
b) IHw: forallab : FamilyProd A w,
for_all_2_family_prod
(carriers_quotient_algebra A Ψ)
(carriers_quotient_algebra A Ψ)
(cong_quotient subrel)
(map_family_prod
(λs : Sort σ, class_of (Ψ s)) a)
(map_family_prod
(λs : Sort σ, class_of (Ψ s)) b) ->
for_all_2_family_prod A A Φ a b
Φ a0 x y
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y a0: Sort σ w: list (Sort σ) x: A a0 a: FamilyProd A w y: A a0 b: FamilyProd A w Q: cong_quotient subrel a0
(class_of (Ψ a0) x)
(class_of (Ψ a0) y) F: for_all_2_family_prod
(carriers_quotient_algebra A Ψ)
(carriers_quotient_algebra A Ψ)
(cong_quotient subrel)
(map_family_prod (λs : Sort σ, class_of (Ψ s))
a)
(map_family_prod (λs : Sort σ, class_of (Ψ s))
b) IHw: forallab : FamilyProd A w,
for_all_2_family_prod
(carriers_quotient_algebra A Ψ)
(carriers_quotient_algebra A Ψ)
(cong_quotient subrel)
(map_family_prod
(λs : Sort σ, class_of (Ψ s)) a)
(map_family_prod
(λs : Sort σ, class_of (Ψ s)) b) ->
for_all_2_family_prod A A Φ a b
for_all_2_family_prod A A Φ a b
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y a0: Sort σ w: list (Sort σ) x: A a0 a: FamilyProd A w y: A a0 b: FamilyProd A w Q: cong_quotient subrel a0
(class_of (Ψ a0) x)
(class_of (Ψ a0) y) F: for_all_2_family_prod
(carriers_quotient_algebra A Ψ)
(carriers_quotient_algebra A Ψ)
(cong_quotient subrel)
(map_family_prod (λs : Sort σ, class_of (Ψ s))
a)
(map_family_prod (λs : Sort σ, class_of (Ψ s))
b) IHw: forallab : FamilyProd A w,
for_all_2_family_prod
(carriers_quotient_algebra A Ψ)
(carriers_quotient_algebra A Ψ)
(cong_quotient subrel)
(map_family_prod
(λs : Sort σ, class_of (Ψ s)) a)
(map_family_prod
(λs : Sort σ, class_of (Ψ s)) b) ->
for_all_2_family_prod A A Φ a b
Φ a0 x y
apply Q; simpl; reflexivity.
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y a0: Sort σ w: list (Sort σ) x: A a0 a: FamilyProd A w y: A a0 b: FamilyProd A w Q: cong_quotient subrel a0
(class_of (Ψ a0) x)
(class_of (Ψ a0) y) F: for_all_2_family_prod
(carriers_quotient_algebra A Ψ)
(carriers_quotient_algebra A Ψ)
(cong_quotient subrel)
(map_family_prod (λs : Sort σ, class_of (Ψ s))
a)
(map_family_prod (λs : Sort σ, class_of (Ψ s))
b) IHw: forallab : FamilyProd A w,
for_all_2_family_prod
(carriers_quotient_algebra A Ψ)
(carriers_quotient_algebra A Ψ)
(cong_quotient subrel)
(map_family_prod
(λs : Sort σ, class_of (Ψ s)) a)
(map_family_prod
(λs : Sort σ, class_of (Ψ s)) b) ->
for_all_2_family_prod A A Φ a b
for_all_2_family_prod A A Φ a b
byapply IHw.Qed.
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y
OpsCompatible (A / Ψ) (cong_quotient subrel)
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y
OpsCompatible (A / Ψ) (cong_quotient subrel)
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y u: Symbol σ
OpCompatible (A / Ψ) (cong_quotient subrel) u.#(A / Ψ)
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y u: Symbol σ
forall (x : FamilyProd A (dom_symboltype (σ u)))
(b : FamilyProd (A / Ψ) (dom_symboltype (σ u))),
for_all_2_family_prod (A / Ψ) (A / Ψ)
(cong_quotient subrel)
(map_family_prod (λs : Sort σ, class_of (Ψ s)) x) b ->
cong_quotient subrel (cod_symboltype (σ u))
(ap_operation u.#(A / Ψ)
(map_family_prod (λs : Sort σ, class_of (Ψ s)) x))
(ap_operation u.#(A / Ψ) b)
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y u: Symbol σ a: FamilyProd A (dom_symboltype (σ u))
forallb : FamilyProd (A / Ψ) (dom_symboltype (σ u)),
for_all_2_family_prod (A / Ψ) (A / Ψ)
(cong_quotient subrel)
(map_family_prod (λs : Sort σ, class_of (Ψ s)) a) b ->
cong_quotient subrel (cod_symboltype (σ u))
(ap_operation u.#(A / Ψ)
(map_family_prod (λs : Sort σ, class_of (Ψ s)) a))
(ap_operation u.#(A / Ψ) b)
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y u: Symbol σ a: FamilyProd A (dom_symboltype (σ u))
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y u: Symbol σ a, b: FamilyProd A (dom_symboltype (σ u))
(* It should not be necessary to provide the explicit types: *)
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y u: Symbol σ a, b: FamilyProd A (dom_symboltype (σ u))
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y u: Symbol σ a, b: FamilyProd A (dom_symboltype (σ u))
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y u: Symbol σ a, b: FamilyProd A (dom_symboltype (σ u)) R: for_all_2_family_prod
(A / Ψ) (A / Ψ) (cong_quotient subrel)
(map_family_prod (λs : Sort σ, class_of (Ψ s))
a)
(map_family_prod (λs : Sort σ, class_of (Ψ s))
b) x, y: A (cod_symboltype (σ u)) P: in_class (Ψ (cod_symboltype (σ u)))
(class_of (Ψ (cod_symboltype (σ u)))
(ap_operation u.#A a)) x Q: in_class (Ψ (cod_symboltype (σ u)))
(class_of (Ψ (cod_symboltype (σ u)))
(ap_operation u.#A b)) y
Φ (cod_symboltype (σ u)) x y
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y u: Symbol σ a, b: FamilyProd A (dom_symboltype (σ u)) R: for_all_2_family_prod
(A / Ψ) (A / Ψ) (cong_quotient subrel)
(map_family_prod (λs : Sort σ, class_of (Ψ s))
a)
(map_family_prod (λs : Sort σ, class_of (Ψ s))
b) x, y: A (cod_symboltype (σ u)) P: Φ (cod_symboltype (σ u)) (ap_operation u.#A a) x Q: in_class (Ψ (cod_symboltype (σ u)))
(class_of (Ψ (cod_symboltype (σ u)))
(ap_operation u.#A b)) y
Φ (cod_symboltype (σ u)) x y
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y u: Symbol σ a, b: FamilyProd A (dom_symboltype (σ u)) R: for_all_2_family_prod
(A / Ψ) (A / Ψ) (cong_quotient subrel)
(map_family_prod (λs : Sort σ, class_of (Ψ s))
a)
(map_family_prod (λs : Sort σ, class_of (Ψ s))
b) x, y: A (cod_symboltype (σ u)) P: Φ (cod_symboltype (σ u)) (ap_operation u.#A a) x Q: Φ (cod_symboltype (σ u)) (ap_operation u.#A b) y
Φ (cod_symboltype (σ u)) x y
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y u: Symbol σ a, b: FamilyProd A (dom_symboltype (σ u)) R: for_all_2_family_prod
(A / Ψ) (A / Ψ) (cong_quotient subrel)
(map_family_prod (λs : Sort σ, class_of (Ψ s))
a)
(map_family_prod (λs : Sort σ, class_of (Ψ s))
b) x, y: A (cod_symboltype (σ u)) P: Φ (cod_symboltype (σ u)) (ap_operation u.#A a) x Q: Φ (cod_symboltype (σ u)) (ap_operation u.#A b) y
Φ (cod_symboltype (σ u)) x (ap_operation u.#A a)
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y u: Symbol σ a, b: FamilyProd A (dom_symboltype (σ u)) R: for_all_2_family_prod
(A / Ψ) (A / Ψ) (cong_quotient subrel)
(map_family_prod (λs : Sort σ, class_of (Ψ s))
a)
(map_family_prod (λs : Sort σ, class_of (Ψ s))
b) x, y: A (cod_symboltype (σ u)) P: Φ (cod_symboltype (σ u)) (ap_operation u.#A a) x Q: Φ (cod_symboltype (σ u)) (ap_operation u.#A b) y
Φ (cod_symboltype (σ u)) (ap_operation u.#A a) y
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y u: Symbol σ a, b: FamilyProd A (dom_symboltype (σ u)) R: for_all_2_family_prod
(A / Ψ) (A / Ψ) (cong_quotient subrel)
(map_family_prod (λs : Sort σ, class_of (Ψ s))
a)
(map_family_prod (λs : Sort σ, class_of (Ψ s))
b) x, y: A (cod_symboltype (σ u)) P: Φ (cod_symboltype (σ u)) (ap_operation u.#A a) x Q: Φ (cod_symboltype (σ u)) (ap_operation u.#A b) y
Φ (cod_symboltype (σ u)) x (ap_operation u.#A a)
bysymmetry.
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y u: Symbol σ a, b: FamilyProd A (dom_symboltype (σ u)) R: for_all_2_family_prod
(A / Ψ) (A / Ψ) (cong_quotient subrel)
(map_family_prod (λs : Sort σ, class_of (Ψ s))
a)
(map_family_prod (λs : Sort σ, class_of (Ψ s))
b) x, y: A (cod_symboltype (σ u)) P: Φ (cod_symboltype (σ u)) (ap_operation u.#A a) x Q: Φ (cod_symboltype (σ u)) (ap_operation u.#A b) y
Φ (cod_symboltype (σ u)) (ap_operation u.#A a) y
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y u: Symbol σ a, b: FamilyProd A (dom_symboltype (σ u)) R: for_all_2_family_prod
(A / Ψ) (A / Ψ) (cong_quotient subrel)
(map_family_prod (λs : Sort σ, class_of (Ψ s))
a)
(map_family_prod (λs : Sort σ, class_of (Ψ s))
b) x, y: A (cod_symboltype (σ u)) P: Φ (cod_symboltype (σ u)) (ap_operation u.#A a) x Q: Φ (cod_symboltype (σ u)) (ap_operation u.#A b) y
Φ (cod_symboltype (σ u)) (ap_operation u.#A a)
(ap_operation u.#A b)
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y u: Symbol σ a, b: FamilyProd A (dom_symboltype (σ u)) R: for_all_2_family_prod
(A / Ψ) (A / Ψ) (cong_quotient subrel)
(map_family_prod (λs : Sort σ, class_of (Ψ s))
a)
(map_family_prod (λs : Sort σ, class_of (Ψ s))
b) x, y: A (cod_symboltype (σ u)) P: Φ (cod_symboltype (σ u)) (ap_operation u.#A a) x Q: Φ (cod_symboltype (σ u)) (ap_operation u.#A b) y
for_all_2_family_prod A A Φ a b
byapply for_all_relation_quotient.Defined.#[export] Instanceis_congruence_quotient
: IsCongruence (A/Ψ) (cong_quotient subrel)
:= BuildIsCongruence (A/Ψ) (cong_quotient subrel).Endcong_quotient.Sectionthird_isomorphism.Context
`{Univalence}
{σ : Signature} {A : Algebra σ}
(Φ : ∀s, Relation (A s)) `{!IsCongruence A Φ}
(Ψ : ∀s, Relation (A s)) `{!IsCongruence A Ψ}
(subrel : ∀ (s : Sort σ) (xy : A s), Ψ s x y → Φ s x y).
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y s: Sort σ x, y: A s P: Ψ s x y
class_of (Φ s) x = class_of (Φ s) y
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y s: Sort σ x, y: A s P: Ψ s x y
class_of (Φ s) x = class_of (Φ s) y
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y s: Sort σ x, y: A s P: Ψ s x y
Φ s x y
exact (subrel s x y P).Defined.Definitiondef_third_surjection (s : Sort σ) : (A/Ψ) s → (A/Φ) s
:= Quotient_rec (Ψ s) _ (class_of (Φ s)) (third_surjecton_well_def s).
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y w: SymbolType σ f: Operation A w
forallα : Operation (A / Φ) w,
ComputeOpQuotient A Φ f α ->
forallβ : Operation (A / Ψ) w,
ComputeOpQuotient A Ψ f β ->
OpPreserving def_third_surjection β α
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y w: SymbolType σ f: Operation A w
forallα : Operation (A / Φ) w,
ComputeOpQuotient A Φ f α ->
forallβ : Operation (A / Ψ) w,
ComputeOpQuotient A Ψ f β ->
OpPreserving def_third_surjection β α
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y t: Sort σ f: Operation A (ne_list.one t)
forallα : Operation (A / Φ) (ne_list.one t),
ComputeOpQuotient A Φ f α ->
forallβ : Operation (A / Ψ) (ne_list.one t),
ComputeOpQuotient A Ψ f β ->
OpPreserving def_third_surjection β α
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y t: Sort σ w: ne_list.notations.ne_list (Sort σ) f: Operation A (ne_list.cons t w) IHw: forall (f : Operation A w)
(α : Operation (A / Φ) w),
ComputeOpQuotient A Φ f α ->
forallβ : Operation (A / Ψ) w,
ComputeOpQuotient A Ψ f β ->
OpPreserving def_third_surjection β α
forallα : Operation (A / Φ) (ne_list.cons t w),
ComputeOpQuotient A Φ f α ->
forallβ : Operation (A / Ψ) (ne_list.cons t w),
ComputeOpQuotient A Ψ f β ->
OpPreserving def_third_surjection β α
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y t: Sort σ f: Operation A (ne_list.one t)
forallα : Operation (A / Φ) (ne_list.one t),
ComputeOpQuotient A Φ f α ->
forallβ : Operation (A / Ψ) (ne_list.one t),
ComputeOpQuotient A Ψ f β ->
OpPreserving def_third_surjection β α
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y t: Sort σ f: Operation A (ne_list.one t)
foralla : A t,
ComputeOpQuotient A Φ f (class_of (Φ t) a) ->
forallβ : Operation (A / Ψ) (ne_list.one t),
ComputeOpQuotient A Ψ f β ->
OpPreserving def_third_surjection β (class_of (Φ t) a)
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y t: Sort σ f: Operation A (ne_list.one t) α: A t Qα: ComputeOpQuotient A Φ f (class_of (Φ t) α)
forallβ : Operation (A / Ψ) (ne_list.one t),
ComputeOpQuotient A Ψ f β ->
OpPreserving def_third_surjection β (class_of (Φ t) α)
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y t: Sort σ f: Operation A (ne_list.one t) α: A t Qα: ComputeOpQuotient A Φ f (class_of (Φ t) α)
foralla : A t,
ComputeOpQuotient A Ψ f (class_of (Ψ t) a) ->
OpPreserving def_third_surjection (class_of (Ψ t) a)
(class_of (Φ t) α)
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y t: Sort σ f: Operation A (ne_list.one t) α: A t Qα: ComputeOpQuotient A Φ f (class_of (Φ t) α) β: A t Qβ: ComputeOpQuotient A Ψ f (class_of (Ψ t) β)
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y t: Sort σ f: Operation A (ne_list.one t) α: A t Qα: ComputeOpQuotient A Φ f (class_of (Φ t) α) β: A t Qβ: ComputeOpQuotient A Ψ f (class_of (Ψ t) β)
Φ t β α
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y t: Sort σ f: Operation A (ne_list.one t) α: A t Qα: ComputeOpQuotient A Φ f (class_of (Φ t) α) β: A t Qβ: ComputeOpQuotient A Ψ f (class_of (Ψ t) β)
Φ t β f
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y t: Sort σ f: Operation A (ne_list.one t) α: A t Qα: ComputeOpQuotient A Φ f (class_of (Φ t) α) β: A t Qβ: ComputeOpQuotient A Ψ f (class_of (Ψ t) β)
Φ t f α
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y t: Sort σ f: Operation A (ne_list.one t) α: A t Qα: ComputeOpQuotient A Φ f (class_of (Φ t) α) β: A t Qβ: ComputeOpQuotient A Ψ f (class_of (Ψ t) β)
Φ t β f
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y t: Sort σ f: Operation A (ne_list.one t) α: A t Qα: ComputeOpQuotient A Φ f (class_of (Φ t) α) β: A t Qβ: ComputeOpQuotient A Ψ f (class_of (Ψ t) β)
Ψ t β f
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y t: Sort σ f: Operation A (ne_list.one t) α: A t Qα: ComputeOpQuotient A Φ f (class_of (Φ t) α) β: A t Qβ: ComputeOpQuotient A Ψ f (class_of (Ψ t) β)
class_of (Ψ t) β = class_of (Ψ t) f
exact (Qβ tt).
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y t: Sort σ f: Operation A (ne_list.one t) α: A t Qα: ComputeOpQuotient A Φ f (class_of (Φ t) α) β: A t Qβ: ComputeOpQuotient A Ψ f (class_of (Ψ t) β)
Φ t f α
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y t: Sort σ f: Operation A (ne_list.one t) α: A t Qα: ComputeOpQuotient A Φ f (class_of (Φ t) α) β: A t Qβ: ComputeOpQuotient A Ψ f (class_of (Ψ t) β)
class_of (Φ t) f = class_of (Φ t) α
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y t: Sort σ f: Operation A (ne_list.one t) α: A t Qα: ComputeOpQuotient A Φ f (class_of (Φ t) α) β: A t Qβ: ComputeOpQuotient A Ψ f (class_of (Ψ t) β)
class_of (Φ t) α = class_of (Φ t) f
exact (Qα tt).
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y t: Sort σ w: ne_list.notations.ne_list (Sort σ) f: Operation A (ne_list.cons t w) IHw: forall (f : Operation A w)
(α : Operation (A / Φ) w),
ComputeOpQuotient A Φ f α ->
forallβ : Operation (A / Ψ) w,
ComputeOpQuotient A Ψ f β ->
OpPreserving def_third_surjection β α
forallα : Operation (A / Φ) (ne_list.cons t w),
ComputeOpQuotient A Φ f α ->
forallβ : Operation (A / Ψ) (ne_list.cons t w),
ComputeOpQuotient A Ψ f β ->
OpPreserving def_third_surjection β α
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y t: Sort σ w: ne_list.notations.ne_list (Sort σ) f: Operation A (ne_list.cons t w) IHw: forall (f : Operation A w)
(α : Operation (A / Φ) w),
ComputeOpQuotient A Φ f α ->
forallβ : Operation (A / Ψ) w,
ComputeOpQuotient A Ψ f β ->
OpPreserving def_third_surjection β α α: Operation (A / Φ) (ne_list.cons t w) Qα: ComputeOpQuotient A Φ f α β: Operation (A / Ψ) (ne_list.cons t w) Qβ: ComputeOpQuotient A Ψ f β
OpPreserving def_third_surjection β α
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y t: Sort σ w: ne_list.notations.ne_list (Sort σ) f: Operation A (ne_list.cons t w) IHw: forall (f : Operation A w)
(α : Operation (A / Φ) w),
ComputeOpQuotient A Φ f α ->
forallβ : Operation (A / Ψ) w,
ComputeOpQuotient A Ψ f β ->
OpPreserving def_third_surjection β α α: Operation (A / Φ) (ne_list.cons t w) Qα: ComputeOpQuotient A Φ f α β: Operation (A / Ψ) (ne_list.cons t w) Qβ: ComputeOpQuotient A Ψ f β
foralla : A t,
(fix OpPreserving (w : SymbolType σ) :
Operation (A / Ψ) w ->
Operation (A / Φ) w -> Type :=
match
w as w0
return
(Operation (A / Ψ) w0 ->
Operation (A / Φ) w0 -> Type)
with
| ne_list.one s =>
λ (α : Operation (A / Ψ) (ne_list.one s))
(β : Operation (A / Φ) (ne_list.one s)),
def_third_surjection s α = β
| ne_list.cons s y =>
λ (α : Operation (A / Ψ) (ne_list.cons s y))
(β : Operation (A / Φ) (ne_list.cons s y)),
forallx : (A / Ψ) s,
OpPreserving y (α x)
(β (def_third_surjection s x))
end) w (β (class_of (Ψ t) a))
(α (def_third_surjection t (class_of (Ψ t) a)))
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y t: Sort σ w: ne_list.notations.ne_list (Sort σ) f: Operation A (ne_list.cons t w) IHw: forall (f : Operation A w)
(α : Operation (A / Φ) w),
ComputeOpQuotient A Φ f α ->
forallβ : Operation (A / Ψ) w,
ComputeOpQuotient A Ψ f β ->
OpPreserving def_third_surjection β α α: Operation (A / Φ) (ne_list.cons t w) Qα: ComputeOpQuotient A Φ f α β: Operation (A / Ψ) (ne_list.cons t w) Qβ: ComputeOpQuotient A Ψ f β x: A t
(fix OpPreserving (w : SymbolType σ) :
Operation (A / Ψ) w ->
Operation (A / Φ) w -> Type :=
match
w as w0
return
(Operation (A / Ψ) w0 ->
Operation (A / Φ) w0 -> Type)
with
| ne_list.one s =>
λ (α : Operation (A / Ψ) (ne_list.one s))
(β : Operation (A / Φ) (ne_list.one s)),
def_third_surjection s α = β
| ne_list.cons s y =>
λ (α : Operation (A / Ψ) (ne_list.cons s y))
(β : Operation (A / Φ) (ne_list.cons s y)),
forallx : (A / Ψ) s,
OpPreserving y (α x)
(β (def_third_surjection s x))
end) w (β (class_of (Ψ t) x))
(α (def_third_surjection t (class_of (Ψ t) x)))
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y
IsHomomorphism def_third_surjection
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y
IsHomomorphism def_third_surjection
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y u: Symbol σ
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y s: Sort σ
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y s: Sort σ
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y s: Sort σ
forallb : (A / Φ) s,
merely (hfiber (hom_third_surjection s) b)
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y s: Sort σ
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y s: Sort σ x: A s
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y s: Sort σ x: A s
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y
(A / Ψ) / cong_ker hom_third_surjection = (A / Ψ) / Θ
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y
(A / Ψ) / cong_ker hom_third_surjection = (A / Ψ) / Θ
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y
forall (s : Sort σ) (xy : (A / Ψ) s),
cong_ker hom_third_surjection s x y <-> Θ s x y
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y s: Sort σ x, y: (A / Ψ) s
cong_ker hom_third_surjection s x y <-> Θ s x y
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y s: Sort σ x, y: A s
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y s: Sort σ x, y: A s
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y s: Sort σ x, y: A s
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y s: Sort σ x, y: A s K: cong_ker hom_third_surjection s
(class_of (Ψ s) x)
(class_of (Ψ s) y) x', y': A s Cx: in_class (Ψ s) (class_of (Ψ s) x) x' Cy: in_class (Ψ s) (class_of (Ψ s) y) y'
Φ s x' y'
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y s: Sort σ x, y: A s K: cong_ker hom_third_surjection s
(class_of (Ψ s) x)
(class_of (Ψ s) y) x', y': A s Cx: Φ s x x' Cy: in_class (Ψ s) (class_of (Ψ s) y) y'
Φ s x' y'
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y s: Sort σ x, y: A s K: cong_ker hom_third_surjection s
(class_of (Ψ s) x)
(class_of (Ψ s) y) x', y': A s Cx: Φ s x x' Cy: Φ s y y'
Φ s x' y'
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y s: Sort σ x, y: A s K: Φ s x y x', y': A s Cx: Φ s x x' Cy: Φ s y y'
Φ s x' y'
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y s: Sort σ x, y: A s K: Φ s x y x', y': A s Cx: Φ s x x' Cy: Φ s y y'
Φ s x' x
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y s: Sort σ x, y: A s K: Φ s x y x', y': A s Cx: Φ s x x' Cy: Φ s y y'
Φ s x y'
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y s: Sort σ x, y: A s K: Φ s x y x', y': A s Cx: Φ s x x' Cy: Φ s y y'
Φ s x' x
bysymmetry.
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y s: Sort σ x, y: A s K: Φ s x y x', y': A s Cx: Φ s x x' Cy: Φ s y y'
Φ s x y'
bytransitivity y.
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y s: Sort σ x, y: A s
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y s: Sort σ x, y: A s T: Θ s (class_of (Ψ s) x) (class_of (Ψ s) y)
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y s: Sort σ x, y: A s T: Θ s (class_of (Ψ s) x) (class_of (Ψ s) y)
Φ s x y
exact (T x y (EquivRel_Reflexive x) (EquivRel_Reflexive y)).Defined.Definitionhom_third_isomorphism : Homomorphism (A/Ψ/Θ) (A/Φ)
:= transport (λX, Homomorphism X (A/Φ))
path_quotient_algebras_third_surjection
(hom_first_isomorphism_surjection hom_third_surjection).
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y
IsIsomorphism hom_third_isomorphism
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y
IsIsomorphism hom_third_isomorphism
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y
IsIsomorphism
(transport (λX : Algebra σ, Homomorphism X (A / Φ))
path_quotient_algebras_third_surjection
(hom_first_isomorphism_surjection
hom_third_surjection))
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y
IsIsomorphism
(transport (λX : Algebra σ, Homomorphism X (A / Φ))
1
(hom_first_isomorphism_surjection
hom_third_surjection))
exact _.Qed.#[export] Existing Instanceis_isomorphism_third_isomorphism.(** The third isomorphism theorem. *)
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y
(A / Ψ) / Θ ≅ A / Φ
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y
(A / Ψ) / Θ = A / Φ
H: Univalence σ: Signature A: Algebra σ Φ: foralls : Sort σ, Relation (A s) IsCongruence0: IsCongruence A Φ Ψ: foralls : Sort σ, Relation (A s) IsCongruence1: IsCongruence A Ψ subrel: forall (s : Sort σ)
(xy : A s), Ψ s x y -> Φ s x y