Equivalence relations #
We define internal equivalence relations (sometimes called congruences) in any category C, as a
structure on pairs of parallel morphisms p₁, p₂ : R ⟶ X .
We also define effective and universally effective equivalence relations.
We prove that equivalence relations on types provide internal equivalence relation structures in the category of types. In general, kernel pairs in any category are internal equivalence relations.
References #
A typeclass for pairs of morphisms that are jointly monic.
- right_cancellation ⦃Y : C⦄ (f g : Y ⟶ R) : CategoryStruct.comp f p₁ = CategoryStruct.comp g p₁ → CategoryStruct.comp f p₂ = CategoryStruct.comp g p₂ → f = g
Instances
A reflexive relation is a jointly monic pair of parallel morphisms p₁, p₂ : R ⟶ X, together
with a section r : X ⟶ R of both p₁ and p₂.
- right_cancellation ⦃Y : C⦄ (f g : Y ⟶ R) : CategoryStruct.comp f p₁ = CategoryStruct.comp g p₁ → CategoryStruct.comp f p₂ = CategoryStruct.comp g p₂ → f = g
ris the morphism witnessing reflexivity
Instances For
A symmetric relation is a jointly monic pair of parallel morphisms p₁, p₂ : R ⟶ X together
with a morphism s : R ⟶ R which interchanges p₁ and p₂.
- right_cancellation ⦃Y : C⦄ (f g : Y ⟶ R) : CategoryStruct.comp f p₁ = CategoryStruct.comp g p₁ → CategoryStruct.comp f p₂ = CategoryStruct.comp g p₂ → f = g
sis the morphism witnessing symmetry
Instances For
A transitive relation is a jointly monic pair of parallel morphisms p₁, p₂ : R ⟶ X, together
with a limiting pullback cone c for p₁ and p₂ and a map c.pt ⟶ R which factors the two
projections c.pt ⟶ X through R.
- right_cancellation ⦃Y : C⦄ (f g : Y ⟶ R) : CategoryStruct.comp f p₁ = CategoryStruct.comp g p₁ → CategoryStruct.comp f p₂ = CategoryStruct.comp g p₂ → f = g
- c : Limits.PullbackCone p₂ p₁
cis a pullback cone forp₁andp₂ - isLimit : Limits.IsLimit self.c
cis limiting tis the morphism witnessing transitivity
Instances For
An equivalence relation is a reflexive, symmetric and transitive relation.
- right_cancellation ⦃Y : C⦄ (f g : Y ⟶ R) : CategoryStruct.comp f p₁ = CategoryStruct.comp g p₁ → CategoryStruct.comp f p₂ = CategoryStruct.comp g p₂ → f = g
- c : Limits.PullbackCone p₂ p₁
- isLimit : Limits.IsLimit self.c
Instances For
The typeclass associated with the structure EquivalenceRelation.
- nonempty_equivalenceRelation : Nonempty (EquivalenceRelation p₁ p₂)
Instances
A kernel pair gives rise to an equivalence relation.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Given a functor F : C ⥤ D, if F.map p₁ and F.map p₂ form a jointly monic pair of
morphisms, then F preserves reflexive relations.
Equations
Instances For
Given a functor F : C ⥤ D, if F.map p₁ and F.map p₂ form a jointly monic pair of
morphisms, then F preserves symmetric relations.
Instances For
Given a functor F : C ⥤ D, if F.map p₁ and F.map p₂ form a jointly monic pair of
morphisms, and if F preserves pullbacks, then F preserves reflexive relations.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The subtype of X × X corresponding to a relation φ : X → X → Prop.
Equations
Instances For
Standard reflexive relations on types are internal reflexive relations in the category of types.
Equations
- TypeCat.ReflexiveRelation.ofRefl hφ = { toJointlyMono₂ := ⋯, r := TypeCat.ofHom fun (x : X) => ⟨(x, x), ⋯⟩, reflexivity₁ := ⋯, reflexivity₂ := ⋯ }
Instances For
Standard symmetric relations on types are internal symmetric relations in the category of types.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Standard transitive relations on types are internal transitive relations in the category of types.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Standard equivalence relations on types are internal equivalence relations in the category of types.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The relation on a type X coming from a pair of maps R ⟶ X.
Equations
- TypeCat.Rel.ofPair p₁ p₂ x₁ x₂ = ∃ (r : R), (CategoryTheory.ConcreteCategory.hom p₁) r = x₁ ∧ (CategoryTheory.ConcreteCategory.hom p₂) r = x₂
Instances For
An internal reflexive relation in the category of types gives rise to a standard reflexive relation.
An internal symmetric relation in the category of types gives rise to a standard symmetric relation.
Alias of TypeCat.symm_of_symmetricRelation.
An internal symmetric relation in the category of types gives rise to a standard symmetric relation.
An internal transitive relation in the category of types gives rise to a standard transitive relation.
An internal equivalence relation in the category of types gives rise to a standard equivalence relation.
An effective equivalence relation is an equivalence relation p₁, p₂ : R ⟶ A together with a
morphism π : A ⟶ B such that the resulting square is both a pullback square and a pushout
square.
- right_cancellation ⦃Y : C⦄ (f g : Y ⟶ R) : CategoryStruct.comp f p₁ = CategoryStruct.comp g p₁ → CategoryStruct.comp f p₂ = CategoryStruct.comp g p₂ → f = g
- c : Limits.PullbackCone p₂ p₁
- isLimit : Limits.IsLimit self.c
- B : C
Bis the "quotient" of the relation πis the "quotient map" of the relation- isKernelPair : IsKernelPair self.π p₁ p₂
Instances For
The typeclass associated with the structure EffectiveEquivalenceRelation.
- nonempty_effectiveEquivalenceRelation : Nonempty (EffectiveEquivalenceRelation p₁ p₂)
Instances
Given an effective equivalence relation structure e on p₁, p₂ : R ⟶ A, the morphism
e.π : A ⟶ e.B makes e.B a coequalizer of p₁ and p₂.
Equations
Instances For
A universally effective equivalence relation is an effective equivalence relation
p₁, p₂ : R ⟶ A such that the corresponding morphism π : A ⟶ B is a universal effective
epimorphism.
- right_cancellation ⦃Y : C⦄ (f g : Y ⟶ R) : CategoryStruct.comp f p₁ = CategoryStruct.comp g p₁ → CategoryStruct.comp f p₂ = CategoryStruct.comp g p₂ → f = g
- c : Limits.PullbackCone p₂ p₁
- isLimit : Limits.IsLimit self.c
- B : C
- isKernelPair : IsKernelPair self.π p₁ p₂
- universally_effectiveEpi_π : MorphismProperty.universally (fun (x x_1 : C) (f : x ⟶ x_1) => EffectiveEpi f) self.π
Instances For
The typeclass associated with the structure UniversallyEffectiveEquivalenceRelation.
- nonempty_universallyEffectiveEquivalenceRelation : Nonempty (UniversallyEffectiveEquivalenceRelation p₁ p₂)
Instances
A category C is a universally exact category if all equivalence relations in C are
universally effective equivalence relations.
- isUniversallyEffectiveEquivalenceRelation (p₁ p₂ : R ⟶ A) [IsEquivalenceRelation p₁ p₂] : IsUniversallyEffectiveEquivalenceRelation p₁ p₂