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 Scott 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.instCoeOutMonoOver = { coe := fun (Y : CategoryTheory.MonoOver X) => Y.obj.left }
Convenience notation for the underlying arrow of a monomorphism over X.
Equations
- CategoryTheory.MonoOver.arrow f = ((CategoryTheory.MonoOver.forget X).toPrefunctor.obj f).hom
Instances For
Equations
- CategoryTheory.MonoOver.instFullMonoOverInstCategoryMonoOverOverInstCategoryOverForget = CategoryTheory.FullSubcategory.full fun (f : CategoryTheory.Over X) => CategoryTheory.Mono f.hom
Equations
- One or more equations did not get rendered due to their size.
Equations
- (_ : CategoryTheory.Mono (CategoryTheory.MonoOver.arrow f)) = (_ : CategoryTheory.Mono f.obj.hom)
The category of monomorphisms over X is a thin category, which makes defining its skeleton easy.
Equations
- (_ : Subsingleton (f ⟶ g)) = (_ : Subsingleton (f ⟶ g))
Convenience constructor for a morphism in monomorphisms over X
.
Equations
Instances For
Convenience constructor for an isomorphism in monomorphisms over X
.
Equations
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
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
- One or more equations did not get rendered due to their size.
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
- One or more equations did not get rendered due to their size.
Instances For
We can map monomorphisms over X
to monomorphisms over Y
by post-composition with a monomorphism f : X ⟶ Y
.
Equations
- One or more equations did not get rendered due to their size.
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
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Equations
Isomorphic objects have equivalent MonoOver
categories.
Equations
- One or more equations did not get rendered due to their size.
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
- CategoryTheory.MonoOver.instIsRightAdjointOverInstCategoryOverMonoOverInstCategoryMonoOverForget = { left := CategoryTheory.MonoOver.image, adj := CategoryTheory.MonoOver.imageForgetAdj }
Equations
- CategoryTheory.MonoOver.reflective = CategoryTheory.Reflective.mk
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.Functor.comp (CategoryTheory.MonoOver.forget X) (CategoryTheory.Functor.comp (CategoryTheory.Over.map f) 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.