Skip to content

Commit

Permalink
feat(category_theory/limits): strict initial objects are initial mono (
Browse files Browse the repository at this point in the history
…#8267)

- [x] depends on: #8094 
- [x] depends on: #8099
  • Loading branch information
b-mehta committed Jul 22, 2021
1 parent bc65818 commit df50b6c
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 2 deletions.
4 changes: 4 additions & 0 deletions src/category_theory/limits/shapes/strict_initial.lean
Expand Up @@ -78,6 +78,10 @@ lemma is_initial.subsingleton_to (hI : is_initial I) {A : C} :
subsingleton (A ⟶ I) :=
⟨hI.strict_hom_ext⟩

@[priority 100] instance initial_mono_of_strict_initial_objects : initial_mono_class C :=
{ is_initial_mono_from := λ I A hI,
{ right_cancellation := λ B g h i, hI.strict_hom_ext _ _ } }

/-- If `I` is initial, then `X ⨯ I` is isomorphic to it. -/
@[simps hom]
noncomputable def mul_is_initial (X : C) [has_binary_product X I] (hI : is_initial I) :
Expand Down
3 changes: 1 addition & 2 deletions src/category_theory/limits/shapes/terminal.lean
Expand Up @@ -222,8 +222,7 @@ initial object, see `initial.mono_from`.
Given a terminal object, this is equivalent to the assumption that the unique morphism from initial
to terminal is a monomorphism, which is the second of Freyd's axioms for an AT category.
TODO: This is a condition satisfied by categories with zero objects and morphisms, as well as
categories with a strict initial object; though these conditions are essentially mutually exclusive.
TODO: This is a condition satisfied by categories with zero objects and morphisms.
-/
class initial_mono_class (C : Type u) [category.{v} C] : Prop :=
(is_initial_mono_from : ∀ {I} (X : C) (hI : is_initial I), mono (hI.to X))
Expand Down

0 comments on commit df50b6c

Please sign in to comment.