Monomorphisms over a fixed object #
As preparation for defining Subobject X
, we set up the theory for
MonoOver X := { f : Over X // Mono f.hom}
.
Here MonoOver X
is a thin category (a pair of objects has at most one morphism between them),
so we can think of it as a preorder. However as it is not skeletal, it is not yet a partial order.
Subobject X
will be defined as the skeletalization of MonoOver X
.
We provide
def pullback [HasPullbacks C] (f : X ⟶ Y) : MonoOver Y ⥤ MonoOver X
def map (f : X ⟶ Y) [Mono f] : MonoOver X ⥤ MonoOver Y
def «exists» [HasImages C] (f : X ⟶ Y) : MonoOver X ⥤ MonoOver Y
and prove their basic properties and relationships.
Notes #
This development originally appeared in Bhavik Mehta's "Topos theory for Lean" repository, and was ported to mathlib by Kim Morrison.
The category of monomorphisms into X
as a full subcategory of the over category.
This isn't skeletal, so it's not a partial order.
Later we define Subobject X
as the quotient of this by isomorphisms.
Equations
- CategoryTheory.MonoOver X = CategoryTheory.FullSubcategory fun (f : CategoryTheory.Over X) => CategoryTheory.Mono f.hom
Instances For
Equations
Construct a MonoOver X
.
Equations
- CategoryTheory.MonoOver.mk' f = { obj := CategoryTheory.Over.mk f, property := hf }
Instances For
The inclusion from monomorphisms over X to morphisms over X.
Equations
- CategoryTheory.MonoOver.forget X = CategoryTheory.fullSubcategoryInclusion fun (f : CategoryTheory.Over X) => CategoryTheory.Mono f.hom
Instances For
Equations
- CategoryTheory.MonoOver.instCoeOut = { coe := fun (Y : CategoryTheory.MonoOver X) => Y.obj.left }
Convenience notation for the underlying arrow of a monomorphism over X.
Equations
- f.arrow = ((CategoryTheory.MonoOver.forget X).obj f).hom
Instances For
The forget functor MonoOver X ⥤ Over X
is fully faithful.
Equations
Instances For
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
The category of monomorphisms over X is a thin category, which makes defining its skeleton easy.
Equations
- ⋯ = ⋯
Convenience constructor for a morphism in monomorphisms over X
.
Equations
Instances For
Convenience constructor for an isomorphism in monomorphisms over X
.
Equations
- CategoryTheory.MonoOver.isoMk h w = { hom := CategoryTheory.MonoOver.homMk h.hom w, inv := CategoryTheory.MonoOver.homMk h.inv ⋯, hom_inv_id := ⋯, inv_hom_id := ⋯ }
Instances For
If f : MonoOver X
, then mk' f.arrow
is of course just f
, but not definitionally, so we
package it as an isomorphism.
Equations
- f.mk'ArrowIso = CategoryTheory.MonoOver.isoMk (CategoryTheory.Iso.refl (CategoryTheory.MonoOver.mk' f.arrow).obj.left) ⋯
Instances For
Lift a functor between over categories to a functor between MonoOver
categories,
given suitable evidence that morphisms are taken to monomorphisms.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Isomorphic functors Over Y ⥤ Over X
lift to isomorphic functors MonoOver Y ⥤ MonoOver X
.
Equations
Instances For
MonoOver.lift
commutes with composition of functors.
Equations
- One or more equations did not get rendered due to their size.
Instances For
MonoOver.lift
preserves the identity functor.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Monomorphisms over an object f : Over A
in an over category
are equivalent to monomorphisms over the source of f
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
When C
has pullbacks, a morphism f : X ⟶ Y
induces a functor MonoOver Y ⥤ MonoOver X
,
by pulling back a monomorphism along f
.
Equations
Instances For
pullback commutes with composition (up to a natural isomorphism)
Equations
- One or more equations did not get rendered due to their size.
Instances For
pullback preserves the identity (up to a natural isomorphism)
Equations
- CategoryTheory.MonoOver.pullbackId = CategoryTheory.MonoOver.liftIso ⋯ ⋯ CategoryTheory.Over.pullbackId ≪≫ CategoryTheory.MonoOver.liftId
Instances For
We can map monomorphisms over X
to monomorphisms over Y
by post-composition with a monomorphism f : X ⟶ Y
.
Equations
Instances For
MonoOver.map
commutes with composition (up to a natural isomorphism).
Equations
- One or more equations did not get rendered due to their size.
Instances For
MonoOver.map
preserves the identity (up to a natural isomorphism).
Equations
- CategoryTheory.MonoOver.mapId X = CategoryTheory.MonoOver.liftIso ⋯ ⋯ (CategoryTheory.Over.mapId X) ≪≫ CategoryTheory.MonoOver.liftId
Instances For
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Isomorphic objects have equivalent MonoOver
categories.
Instances For
An equivalence of categories e
between C
and D
induces an equivalence between
MonoOver X
and MonoOver (e.functor.obj X)
whenever X
is an object of C
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
map f
is left adjoint to pullback f
when f
is a monomorphism
Equations
- One or more equations did not get rendered due to their size.
Instances For
MonoOver.map f
followed by MonoOver.pullback f
is the identity.
Equations
Instances For
The MonoOver Y
for the image inclusion for a morphism f : X ⟶ Y
.
Equations
Instances For
Taking the image of a morphism gives a functor Over X ⥤ MonoOver X
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
MonoOver.image : Over X ⥤ MonoOver X
is left adjoint to
MonoOver.forget : MonoOver X ⥤ Over X
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- ⋯ = ⋯
Equations
- CategoryTheory.MonoOver.reflective = CategoryTheory.Reflective.mk CategoryTheory.MonoOver.image CategoryTheory.MonoOver.imageForgetAdj
Forgetting that a monomorphism over X
is a monomorphism, then taking its image,
is the identity functor.
Equations
- CategoryTheory.MonoOver.forgetImage = CategoryTheory.asIso CategoryTheory.MonoOver.imageForgetAdj.counit
Instances For
In the case where f
is not a monomorphism but C
has images,
we can still take the "forward map" under it, which agrees with MonoOver.map f
.
Equations
- CategoryTheory.MonoOver.exists f = (CategoryTheory.MonoOver.forget X).comp ((CategoryTheory.Over.map f).comp CategoryTheory.MonoOver.image)
Instances For
Equations
- ⋯ = ⋯
When f : X ⟶ Y
is a monomorphism, exists f
agrees with map f
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
exists
is adjoint to pullback
when images exist
Equations
- One or more equations did not get rendered due to their size.