Subobjects along a functor, and the order isomorphism from an equivalence #
Mathlib maps subobjects along a morphism (Subobject.map) and along an isomorphism of objects
(Subobject.mapIsoToOrderIso), both inside a single category. It does not map them along a
functor, so an equivalence of categories does not yet carry subobject lattices to subobject
lattices.
This file supplies that. mapFunctor pushes a subobject forward along any mono-preserving functor,
and mapEquivalence upgrades it to an order isomorphism when the functor is half of an
equivalence. For abelian categories, a functor preserving monos, epis, and binary coproducts
also carries binary joins of subobjects to binary joins. Preserving monos and epis likewise
allows the image of a lifted arrow into a fixed target to lift its image subobject in
the abelian setting.
Why an order isomorphism and not just a monotone map #
The consumers are chain conditions and filtrations. A monotone map carries a chain to a chain, but it does not carry a strictly increasing chain to a strictly increasing one, and it need not carry the bottom and top to the bottom and top. An order isomorphism does all three, which is what makes it possible to transport a Harder–Narasimhan filtration along an equivalence.
The shape of the proofs #
For the equivalence results, the proofs reduce a subobject to a representing mono, then compare explicit morphisms using the unit isomorphism. Image preservation uses the epi--mono image factorization and balancedness instead.
A subobject pushed forward along a mono-preserving functor.
Equations
- CategoryTheory.Subobject.mapFunctor F = CategoryTheory.Subobject.lift (fun (x : A) (f : x ⟶ X) (x_1 : CategoryTheory.Mono f) => CategoryTheory.Subobject.mk (F.map f)) ⋯
Instances For
A functor between abelian categories that preserves monomorphisms, epimorphisms, and binary coproducts carries binary joins of subobjects to binary joins. The join is the image of the map from the coproduct.
Pushing forward along the identity does nothing.
Pushing forward along a composite is pushing forward twice. It holds by definition.
Pushing forward commutes with rewriting the ambient object along an isomorphism.
Mapping along an isomorphism and back is the identity. Stated as a lemma rather than reached
by rw [← map_comp], whose motive is not type correct here: Subobject.map carries a Mono
instance argument that changes under the rewrite.
Between categories with images and equalizers, with balanced target, a functor preserving monomorphisms and epimorphisms carries the image subobject of an arrow to the image subobject of the mapped arrow.
Every arrow into G.obj X extends from a source object into the fixed
source target X, up to an isomorphism on the arrow's domain. This is an
explicit input for localization arguments, not an automatic consequence of
essential surjectivity on objects.
Equations
Instances For
Only monomorphisms into G.obj X need extend in order to lift subobjects.
Unlike extension of all arrows, this does not force every object of B into
the essential image of G.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Fixed-target mono extension yields pointwise lifting of subobjects by taking the image of each extended monomorphism.
All-arrow extension is a stronger, geometry-facing sufficient condition for lifting subobjects.
The unit of an equivalence at X, with both endpoints spelled out.
e.unitIso.app X has type (𝟭 A).obj X ≅ (e.functor ⋙ e.inverse).obj X. That is definitionally
what is wanted but not syntactically, and the difference defeats rw on Subobject.map, whose
statements are dependent in the ambient object. Naming the isomorphism with its endpoints spelled
out is what makes the rewrites below go through.
Equations
- CategoryTheory.Subobject.unitAt e X = e.unitIso.app X
Instances For
The round trip through an equivalence is the unit isomorphism.
This is the one step with content: naturality of the unit rewrites the round trip as composition with a unit component, and that component is invertible, so the two subobjects agree.
The order isomorphism on subobjects induced by an equivalence.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The underlying object of a pushed-forward subobject is the image of the underlying object.
mapFunctor F P is only propositionally mk (F.map P.arrow), so this is an isoOfEqMk rather
than a definitional equality.
Equations
- CategoryTheory.Subobject.mapFunctorIso F P = (CategoryTheory.Subobject.mapFunctor F P).isoOfEqMk (F.map P.arrow) ⋯
Instances For
The chain step transports. Both sides are maps into a subobject, so it is enough to compose with its arrow, which is a mono.
The successive quotient transports.
This is what a Harder–Narasimhan filtration needs beyond the order isomorphism: its factors are
cokernels of chain steps, and they must be identified with the images of the original factors.
The square of ofLE_mapFunctor is an isomorphism square, so the cokernels agree; then F
preserving finite colimits moves the cokernel inside.
Equations
- One or more equations did not get rendered due to their size.