Documentation

Mathlib.CategoryTheory.Subobject.Lattice

The lattice of subobjects #

We provide the SemilatticeInf with OrderTop (Subobject X) instance when [HasPullback C], and the SemilatticeSup (Subobject X) instance when [HasImages C] [HasBinaryCoproducts C].

@[implicit_reducible]
@[implicit_reducible]
instance CategoryTheory.MonoOver.instInhabited {C : Type u₁} [Category.{v₁, u₁} C] {X : C} :
Inhabited (MonoOver X)

The morphism to the top object in MonoOver X.

Instances For
    def CategoryTheory.MonoOver.mapTop {C : Type u₁} [Category.{v₁, u₁} C] {X Y : C} (f : X Y) [Mono f] :
    (map f).obj mk f

    map f sends ⊤ : MonoOver X to ⟨X, f⟩ : MonoOver Y.

    Instances For
      noncomputable def CategoryTheory.MonoOver.pullbackTop {C : Type u₁} [Category.{v₁, u₁} C] {X Y : C} [Limits.HasPullbacks C] (f : X Y) :

      The pullback of the top object in MonoOver Y is (isomorphic to) the top object in MonoOver X.

      Instances For
        noncomputable def CategoryTheory.MonoOver.topLEPullbackSelf {C : Type u₁} [Category.{v₁, u₁} C] [Limits.HasPullbacks C] {A B : C} (f : A B) [Mono f] :

        There is a morphism from ⊤ : MonoOver A to the pullback of a monomorphism along itself; as the category is thin this is an isomorphism.

        Instances For
          noncomputable def CategoryTheory.MonoOver.pullbackSelf {C : Type u₁} [Category.{v₁, u₁} C] [Limits.HasPullbacks C] {A B : C} (f : A B) [Mono f] :

          The pullback of a monomorphism along itself is isomorphic to the top object.

          Instances For
            @[implicit_reducible]

            The (unique) morphism from ⊥ : MonoOver X to any other f : MonoOver X.

            Instances For
              noncomputable def CategoryTheory.MonoOver.mapBot {C : Type u₁} [Category.{v₁, u₁} C] {X Y : C} [Limits.HasInitial C] [Limits.InitialMonoClass C] (f : X Y) [Mono f] :

              map f sends ⊥ : MonoOver X to ⊥ : MonoOver Y.

              Instances For

                The object underlying ⊥ : Subobject B is (up to isomorphism) the zero object.

                Instances For

                  When [HasPullbacks C], MonoOver A has "intersections", functorial in both arguments.

                  As MonoOver A is only a preorder, this doesn't satisfy the axioms of SemilatticeInf, but we reuse all the names from SemilatticeInf because they will be used to construct SemilatticeInf (Subobject A) shortly.

                  Instances For
                    noncomputable def CategoryTheory.MonoOver.infLELeft {C : Type u₁} [Category.{v₁, u₁} C] [Limits.HasPullbacks C] {A : C} (f g : MonoOver A) :
                    (inf.obj f).obj g f

                    A morphism from the "infimum" of two objects in MonoOver A to the first object.

                    Instances For
                      noncomputable def CategoryTheory.MonoOver.infLERight {C : Type u₁} [Category.{v₁, u₁} C] [Limits.HasPullbacks C] {A : C} (f g : MonoOver A) :
                      (inf.obj f).obj g g

                      A morphism from the "infimum" of two objects in MonoOver A to the second object.

                      Instances For
                        noncomputable def CategoryTheory.MonoOver.leInf {C : Type u₁} [Category.{v₁, u₁} C] [Limits.HasPullbacks C] {A : C} (f g h : MonoOver A) :
                        (h f) → (h g) → (h (inf.obj f).obj g)

                        A morphism version of the le_inf axiom.

                        Instances For

                          When [HasImages C] [HasBinaryCoproducts C], MonoOver A has a sup construction, which is functorial in both arguments, and which on Subobject A will induce a SemilatticeSup.

                          Instances For

                            A morphism version of le_sup_left.

                            Instances For

                              A morphism version of le_sup_right.

                              Instances For
                                noncomputable def CategoryTheory.MonoOver.supLe {C : Type u₁} [Category.{v₁, u₁} C] [Limits.HasImages C] [Limits.HasBinaryCoproducts C] {A : C} (f g h : MonoOver A) :
                                (f h) → (g h) → ((sup.obj f).obj g h)

                                A morphism version of sup_le.

                                Instances For
                                  @[implicit_reducible]
                                  @[implicit_reducible]
                                  instance CategoryTheory.Subobject.instInhabited {C : Type u₁} [Category.{v₁, u₁} C] {X : C} :
                                  Inhabited (Subobject X)
                                  @[simp]
                                  theorem CategoryTheory.Subobject.map_top {C : Type u₁} [Category.{v₁, u₁} C] {X Y : C} (f : X Y) [Mono f] :
                                  (map f).obj = mk f

                                  The object underlying ⊥ : Subobject B is (up to isomorphism) the initial object.

                                  Instances For

                                    The object underlying ⊥ : Subobject B is (up to isomorphism) the zero object.

                                    Instances For

                                      Sending X : C to Subobject X is a contravariant functor Cᵒᵖ ⥤ Type.

                                      Instances For
                                        @[simp]
                                        theorem CategoryTheory.Subobject.functor_map (C : Type u₁) [Category.{v₁, u₁} C] [Limits.HasPullbacks C] {X✝ Y✝ : Cᵒᵖ} (f : X✝ Y✝) (a✝ : Subobject (Opposite.unop X✝)) :
                                        (functor C).map f a✝ = (pullback f.unop).obj a✝

                                        The functorial infimum on MonoOver A descends to an infimum on Subobject A.

                                        Instances For
                                          theorem CategoryTheory.Subobject.le_inf {C : Type u₁} [Category.{v₁, u₁} C] [Limits.HasPullbacks C] {A : C} (h f g : Subobject A) :
                                          h fh gh (inf.obj f).obj g
                                          @[implicit_reducible]
                                          @[simp]
                                          theorem CategoryTheory.Subobject.inf_factors {C : Type u₁} [Category.{v₁, u₁} C] [Limits.HasPullbacks C] {A B : C} {X Y : Subobject B} (f : A B) :
                                          (XY).Factors f X.Factors f Y.Factors f
                                          theorem CategoryTheory.Subobject.inf_isPullback {C : Type u₁} [Category.{v₁, u₁} C] [Limits.HasPullbacks C] {A : C} (f g : Subobject A) :
                                          IsPullback ((fg).ofLE f ) ((fg).ofLE g ) f.arrow g.arrow
                                          @[simp]
                                          theorem CategoryTheory.Subobject.finset_inf_factors {C : Type u₁} [Category.{v₁, u₁} C] [Limits.HasPullbacks C] {I : Type u_1} {A B : C} {s : Finset I} {P : ISubobject B} (f : A B) :
                                          (s.inf P).Factors f is, (P i).Factors f
                                          theorem CategoryTheory.Subobject.finset_inf_arrow_factors {C : Type u₁} [Category.{v₁, u₁} C] [Limits.HasPullbacks C] {I : Type u_1} {B : C} (s : Finset I) (P : ISubobject B) (i : I) (m : i s) :
                                          (P i).Factors (s.inf P).arrow
                                          theorem CategoryTheory.Subobject.inf_eq_map_pullback {C : Type u₁} [Category.{v₁, u₁} C] [Limits.HasPullbacks C] {A : C} (f₁ f₂ : Subobject A) :
                                          f₁f₂ = (map f₁.arrow).obj ((pullback f₁.arrow).obj f₂)
                                          theorem CategoryTheory.Subobject.prod_eq_inf {C : Type u₁} [Category.{v₁, u₁} C] [Limits.HasPullbacks C] {A : C} {f₁ f₂ : Subobject A} [Limits.HasBinaryProduct f₁ f₂] :
                                          (f₁ f₂) = f₁f₂
                                          theorem CategoryTheory.Subobject.inf_pullback {C : Type u₁} [Category.{v₁, u₁} C] [Limits.HasPullbacks C] {X Y : C} (g : X Y) (f₁ f₂ : Subobject Y) :
                                          (pullback g).obj (f₁f₂) = (pullback g).obj f₁(pullback g).obj f₂

                                          commutes with pullback.

                                          theorem CategoryTheory.Subobject.inf_map {C : Type u₁} [Category.{v₁, u₁} C] [Limits.HasPullbacks C] {X Y : C} (g : Y X) [Mono g] (f₁ f₂ : Subobject Y) :
                                          (map g).obj (f₁f₂) = (map g).obj f₁(map g).obj f₂

                                          commutes with map.

                                          The functorial supremum on MonoOver A descends to a supremum on Subobject A.

                                          Instances For
                                            theorem CategoryTheory.Subobject.finset_sup_factors {C : Type u₁} [Category.{v₁, u₁} C] [Limits.HasImages C] [Limits.HasBinaryCoproducts C] [Limits.HasInitial C] [Limits.InitialMonoClass C] {I : Type u_1} {A B : C} {s : Finset I} {P : ISubobject B} {f : A B} (h : is, (P i).Factors f) :
                                            (s.sup P).Factors f

                                            The "wide cospan" diagram, with a small indexing type, constructed from a set of subobjects. (This is just the diagram of all the subobjects pasted together, but using WellPowered C to make the diagram small.)

                                            Instances For

                                              Auxiliary construction of a cone for le_inf.

                                              Instances For

                                                The limit of wideCospan s. (This will be the supremum of the set of subobjects.)

                                                Instances For

                                                  When [WellPowered C] and [HasWidePullbacks C], Subobject A has arbitrary infimums.

                                                  Instances For

                                                    The universal morphism out of the coproduct of a set of subobjects, after using [WellPowered C] to reindex by a small type.

                                                    Instances For

                                                      When [WellPowered C] [HasImages C] [HasCoproducts C], Subobject A has arbitrary supremums.

                                                      Instances For
                                                        theorem CategoryTheory.Subobject.symm_apply_mem_iff_mem_image {α : Type u_1} {β : Type u_2} (e : α β) (s : Set α) (x : β) :
                                                        e.symm x s x e '' s

                                                        A nonzero object has nontrivial subobject lattice.

                                                        The subobject lattice of a subobject Y is order isomorphic to the interval Set.Iic Y.

                                                        Instances For