Documentation

DerivedAlgGeo.CategoryTheory.SubobjectEquivalence

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
Instances For
    @[simp]
    theorem CategoryTheory.Subobject.mapFunctor_mk {A : Type u₁} [Category.{v₁, u₁} A] {B : Type u₂} [Category.{v₂, u₂} B] (F : Functor A B) [F.PreservesMonomorphisms] {X A₁ : A} (f : A₁ ⟶ X) [Mono f] :
    mapFunctor F (mk f) = mk (F.map f)

    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.

    theorem CategoryTheory.Subobject.mapFunctor_map_hom {A : Type u₁} [Category.{v₁, u₁} A] {B : Type u₂} [Category.{v₂, u₂} B] (F : Functor A B) [F.PreservesMonomorphisms] {X Y : A} (i : X ≅ Y) (P : Subobject X) :
    mapFunctor F ((map i.hom).obj P) = (map (F.map i.hom)).obj (mapFunctor F P)

    Pushing forward commutes with rewriting the ambient object along an isomorphism.

    theorem CategoryTheory.Subobject.map_inv_map_hom {A : Type u₁} [Category.{v₁, u₁} A] {X Y : A} (i : X ≅ Y) (P : Subobject X) :
    (map i.inv).obj ((map i.hom).obj P) = P

    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.

    theorem CategoryTheory.Subobject.map_hom_map_inv {A : Type u₁} [Category.{v₁, u₁} A] {X Y : A} (i : X ≅ Y) (Q : Subobject Y) :
    (map i.hom).obj ((map i.inv).obj Q) = Q

    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.

        def CategoryTheory.Subobject.unitAt {A : Type u₁} [Category.{v₁, u₁} A] {B : Type u₂} [Category.{v₂, u₂} B] (e : A ≌ B) (X : A) :

        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
        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
            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.
              Instances For