Documentation

LeanPool.Dilatations.Centers

Restriction, composition, and union of centers #

From Arnaud Mayeux, Dilatations of categories, via their Lean formalization, https://arxiv.org/abs/2608.09305, and rndmx/DilCat at commit 604559654c948566675da3f7709b8ad3126bd487 (Apache-2.0).

Proposition 3.14, setup. The restriction of Z to a subcollection K ⊂ Z.I.

Equations
  • Z.restrict K hK = { I := ↑K, nonempty := ⋯, dom := fun (k : ↑K) => Z.dom ↑k, cod := fun (k : ↑K) => Z.cod ↑k, mor := fun (k : ↑K) => Z.mor ↑k, N := fun (k : ↑K) => Z.N ↑k }
Instances For

    Γ := {d_i}_{i ∈ K} is a subcollection of Σ := {d_i}_{i ∈ I} as MorphismPropertys.

    noncomputable def CategoryTheory.Dilatations.restrictPhi {C : Type u} [Category.{v, u} C] (Z : Center C) (K : Set Z.I) (hK : K.Nonempty) :
    Functor (Dila (Z.restrict K hK)) (Dila Z)

    Proposition 3.14. The canonical functor Φ : C[{dᵢ}_{i∈K}] ⥤ C[{dᵢ}_{i∈I}].

    Equations
    Instances For
      theorem CategoryTheory.Dilatations.faithful_of_comp_faithful_gen {C₁ : Type u₁} [Category.{v₁, u₁} C₁] {C₂ : Type u₂} [Category.{v₂, u₂} C₂] {C₃ : Type u₃} [Category.{v₃, u₃} C₃] (p : Functor C₁ C₂) (e : Functor C₂ C₃) (hfaith : (p.comp e).Faithful) :

      Universe-polymorphic version of faithful_of_comp_faithful, with independent universes for each of the three categories.

      theorem CategoryTheory.Dilatations.isoMorphismProperty_Q_faithful {E : Type u} [Category.{v', u} E] (W : MorphismProperty E) (hW : ∀ ⦃X Y : E⦄ (f : X ⟶ Y), W f → IsIso f) :

      Z's own raw localization functor is always Z-regular — every Z-generator is already inverted by .Q (Q_inverts), so isoMorphismProperty_Q_faithful applies directly.

      Proposition 3.14 (ii). If C[Γ⁻¹] → C[Σ⁻¹] is faithful, then Φ is faithful.

      theorem CategoryTheory.Dilatations.fractionInDilatation_eq_of_factors {C : Type u} [Category.{v, u} C] (Z : Center C) (i : Z.I) (X : C) (q : X ⟶ Z.dom i) (m : X ⟶ Z.cod i) (hm : (Z.N i).arrows m) (hfactor : m = CategoryStruct.comp q (Z.mor i)) :

      A fraction whose numerator already factors through its denominator is an original morphism.

      theorem CategoryTheory.Dilatations.restrictPhi_obj_eq {C : Type u} [Category.{v, u} C] (Z : Center C) (K : Set Z.I) (hK : K.Nonempty) (Y : C) :
      (restrictPhi Z K hK).obj ((CatToDila (Z.restrict K hK)).obj Y) = (CatToDila Z).obj Y

      The basic object-identification : Φ sends the Z.restrict K hK-image of Y to the Z-image of Y, on the nose, via restrictPhi_spec.

      def CategoryTheory.Dilatations.PhiPreimage {C : Type u} [Category.{v, u} C] (Z : Center C) (K : Set Z.I) (hK : K.Nonempty) {A' B' : GeneratedCategory Z} (p : A' ⟶ B') :

      The Φ-preimage predicate used in the induction : p : A' ⟶ B' (in GeneratedCategory Z) has a Φ-preimage among morphisms of Dila (Z.restrict K hK), up to the object-identification restrictPhi_full_hobj.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For

        Base case : the identity generator has a Φ-preimage (namely the identity).

        theorem CategoryTheory.Dilatations.PhiPreimage_comp {C : Type u} [Category.{v, u} C] (Z : Center C) (K : Set Z.I) (hK : K.Nonempty) {X' Y' W' : GeneratedCategory Z} (p : X' ⟶ Y') (q : Y' ⟶ W') (hp : PhiPreimage Z K hK p) (hq : PhiPreimage Z K hK q) :

        Inductive step : Φ-preimages compose.

        DilaToLoc sends a fraction generator back down to the corresponding fraction morphism of the localization.

        theorem CategoryTheory.Dilatations.baseRestrictFunctor_map_fraction {C : Type u} [Category.{v, u} C] (Z : Center C) (K : Set Z.I) (hK : K.Nonempty) (i : Z.I) (hiK : i ∈ K) (X0 : C) (n : X0 ⟶ Z.cod i) (hn : (Z.N i).arrows n) :
        theorem CategoryTheory.Dilatations.restrictPhi_map_fraction {C : Type u} [Category.{v, u} C] (Z : Center C) (K : Set Z.I) (hK : K.Nonempty) (i : Z.I) (hiK : i ∈ K) (X0 : C) (n : X0 ⟶ Z.cod i) (hn : (Z.N i).arrows n) :

        restrictPhi sends the fraction generator of Z.restrict K hK at an index i ∈ K to the corresponding fraction generator of Z at i, up to the object-identification restrictPhi_obj_eq.

        theorem CategoryTheory.Dilatations.PhiPreimage_fraction_mem {C : Type u} [Category.{v, u} C] (Z : Center C) (K : Set Z.I) (hK : K.Nonempty) (i : Z.I) (hiK : i ∈ K) (X0 : C) (n : X0 ⟶ Z.cod i) (hn : (Z.N i).arrows n) :

        Generator case, i ∈ K: a fraction generator indexed by i ∈ K has a Φ-preimage — the corresponding fraction generator of Z.restrict K hK, via restrictPhi_map_fraction.

        Generator case, original morphisms : always has a Φ-preimage.

        theorem CategoryTheory.Dilatations.PhiPreimage_fraction_notmem {C : Type u} [Category.{v, u} C] (Z : Center C) (K : Set Z.I) (hK : K.Nonempty) (hI : ∀ i ∉ K, Z.N i = Sieve.generate (Presieve.singleton (Z.mor i))) (i : Z.I) (hiK : i ∉ K) (X0 : C) (n : X0 ⟶ Z.cod i) (hn : (Z.N i).arrows n) :

        Generator case, i ∉ K: under hI, a fraction generator indexed by i ∉ K reduces to an ordinary morphism, which already has a Φ-preimage.

        theorem CategoryTheory.Dilatations.CatToDila_obj_surjective {C : Type u} [Category.{v, u} C] (Z : Center C) (A : Dila Z) :
        ∃ (X : C), (CatToDila Z).obj X = A

        Every object of Dila Z is the CatToDila-image of some object of C.

        theorem CategoryTheory.Dilatations.PhiPreimage_edge {C : Type u} [Category.{v, u} C] (Z : Center C) (K : Set Z.I) (hK : K.Nonempty) (hI : ∀ i ∉ K, Z.N i = Sieve.generate (Presieve.singleton (Z.mor i))) {X Y : (CenterMorphismProperty Z).Localization} (e : X ⟶ Y) :

        A single generator edge always has a Φ-preimage.

        theorem CategoryTheory.Dilatations.PhiPreimage_all {C : Type u} [Category.{v, u} C] (Z : Center C) (K : Set Z.I) (hK : K.Nonempty) (hI : ∀ i ∉ K, Z.N i = Sieve.generate (Presieve.singleton (Z.mor i))) {A' B' : GeneratedCategory Z} (p : A' ⟶ B') :
        PhiPreimage Z K hK p

        Every morphism of GeneratedCategory Z has a Φ-preimage : induction on the underlying path, using PhiPreimage_id, PhiPreimage_comp, and PhiPreimage_edge.

        theorem CategoryTheory.Dilatations.restrictPhi_full {C : Type u} [Category.{v, u} C] (Z : Center C) (K : Set Z.I) (hK : K.Nonempty) (hI : ∀ i ∉ K, Z.N i = Sieve.generate (Presieve.singleton (Z.mor i))) :
        (restrictPhi Z K hK).Full

        Proposition 3.15 #

        Pushing a center W on C forward along a functor F : C ⥤ D gives a center on D, namely {[F(N_j), F(d_j)]}_j.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For

          Combining two centers Z and W on the same category C into one center indexed by Z.I ⊕ W.I.

          Equations
          • One or more equations did not get rendered due to their size.
          Instances For

            The dilatation of the Z-part of Z.sum W is regular for CatToDila (Z.sum W): analogous to CatToDila_isSigmaRegular_restrict, but for the Sum.inl-inclusion into Z.sum W instead of a Center.restrict.

            The sieve condition needed to extend CatToDila (Z.sum W) along CatToDila Z.

            noncomputable def CategoryTheory.Dilatations.Phi315 {C : Type u} [Category.{v, u} C] (Z W : Center C) :
            Functor (Dila Z) (Dila (Z.sum W))

            Proposition 3.15, setup. The canonical functor Φ : Dila Z ⥤ Dila (Z.sum W), obtained directly from the universal property of Dila Z (Theorem 3.10 / Dila_universal_property) applied to CatToDila (Z.sum W), rather than through Center.restrict/restrictPhi — this avoids having to reindex Z.sum W restricted to its Z-part back to Z, since the two constructions agree by the uniqueness clause of the universal property.

            Equations
            Instances For

              The pushed-forward center {[Θ(Nj), Θ(dj)]}_{j∈J} living in Dila Z.

              Equations
              Instances For
                theorem CategoryTheory.Dilatations.sigma_hom_eq {D : Type u} [Category.{v', u} D] {A A' B B' : D} (hA : A = A') (hB : B = B') (m : A ⟶ B) (m' : A' ⟶ B') (hm : m' = CategoryStruct.comp (eqToHom ⋯) (CategoryStruct.comp m (eqToHom hB))) :
                ⟨A, ⟨B, m⟩⟩ = ⟨A', ⟨B', m'⟩⟩

                A helper for comparing two elements of Σ X Y : D, X ⟶ Y whose objects agree via a (possibly non-trivial) eqToHom-transport of the morphism.

                Fact 2.14. C[(dᵢ)⁻¹∘Nᵢ] → C[{dᵢ}⁻¹] is faithful.

                Proposition 3.15 (i). Φ belongs to Cat ^ {Θ(dj)}_j-reg_{Dila Z}.

                noncomputable def CategoryTheory.Dilatations.Alpha'315 {C : Type u} [Category.{v, u} C] (Z W : Center C) :
                Functor (Dila (CenterZW Z W)) (Dila (Z.sum W))

                Proposition 3.15 (iv), setup. The unique functor α' with Φ = α' ∘ β. Built ahead of Part (ii)/(iii) since Part (ii) depends on Alpha'315_spec.

                Equations
                Instances For
                  theorem CategoryTheory.Dilatations.Alpha'315_unique {C : Type u} [Category.{v, u} C] (Z W : Center C) (G : Functor (Dila (CenterZW Z W)) (Dila (Z.sum W))) (hG : (Beta315 Z W).comp G = Phi315 Z W) :
                  G = Alpha'315 Z W
                  theorem CategoryTheory.Dilatations.Phi315_obj_eq {C : Type u} [Category.{v, u} C] (Z W : Center C) (X : C) :
                  (Phi315 Z W).obj ((CatToDila Z).obj X) = (CatToDila (Z.sum W)).obj X

                  Φ sends the Θ-image of a C-object to the Θ'-image, on the nose (both Θ ⋙ Φ and Θ' are functors C ⥤ Dila (Z.sum W), so the object part of Phi315_spec needs no eqToHom).

                  theorem CategoryTheory.Dilatations.Phi315_map_eq {C : Type u} [Category.{v, u} C] (Z W : Center C) {X Y : C} (f : X ⟶ Y) :

                  The map-level companion of Phi315_obj_eq: since Φ is opaque (built via .choose), this needs the eqToHom-sandwiched form, exactly as in restrictPhi's own object/map lemmas.

                  The "flattened" comparison functor Dila Z → C[{dᵢ}_{I'}⁻¹], obtained by composing Φ with DilaToLoc (Z.sum W).

                  Equations
                  Instances For

                    comparisonToLocalization sends the Θ-image of a C-morphism to its direct image under (CenterMorphismProperty (Z.sum W)).Q, up to the object-identification comparisonToLocalization_obj.

                    Part of "Fact 2.14 applied a third time". comparisonToLocalization is regular for CenterZW Z W: its image-center morphism property is exactly the Sum.inr-image of (CenterMorphismProperty (Z.sum W)).Q's own generators (via comparisonToLocalization_map), which are already invertible by MorphismProperty.Q_inverts, so isoMorphismProperty_Q_faithful applies directly — no appeal to Φ's own faithfulness (which is not known) is needed.

                    comparisonToLocalization precomposed with Θ is literally (CenterMorphismProperty (Z.sum W)).Q, as a functor equality (both sides C ⥤ (CenterMorphismProperty (Z.sum W)).Localization) — combining Phi315_spec (Θ ⋙ Φ = Θ') with CatToDila_comp_DilaToLoc (Z.sum W).

                    The sieve condition needed to extend comparisonToLocalization along CatToDila (CenterZW Z W): (CatToDila Z ⋙ comparisonToLocalization Z W).map (W.mor j) is already an isomorphism, so its generated sieve is the top sieve.

                    The unique extension of comparisonToLocalization along β. By Dila_universal_property (CenterZW Z W) (comparisonToLocalization Z W) comparisonToLocalization_isSigmaRegular comparisonToLocalization_hsieve.

                    Equations
                    Instances For

                      H315 agrees with α' ⋙ DilaToLoc (Z.sum W): both extend comparisonToLocalization along β (β ⋙ (α' ⋙ DilaToLoc (Z.sum W)) = (β ⋙ α') ⋙ DilaToLoc (Z.sum W) = Φ ⋙ DilaToLoc (Z.sum W) = comparisonToLocalization, using Alpha'315_spec), so by the uniqueness half of the same universal property used to build H315, they coincide. Alpha'315 only needs Part (i), so this holds unconditionally.

                      noncomputable def CategoryTheory.Dilatations.Alpha315 {C : Type u} [Category.{v, u} C] (Z W : Center C) (hreg : IsSigmaRegular (Z.sum W) ((CatToDila Z).comp (Beta315 Z W))) :
                      Functor (Dila (Z.sum W)) (Dila (CenterZW Z W))

                      Proposition 3.15 (iii), setup.

                      Equations
                      Instances For
                        theorem CategoryTheory.Dilatations.Alpha315_spec {C : Type u} [Category.{v, u} C] (Z W : Center C) (hreg : IsSigmaRegular (Z.sum W) ((CatToDila Z).comp (Beta315 Z W))) :
                        (CatToDila (Z.sum W)).comp (Alpha315 Z W hreg) = (CatToDila Z).comp (Beta315 Z W)
                        theorem CategoryTheory.Dilatations.Alpha315_unique {C : Type u} [Category.{v, u} C] (Z W : Center C) (hreg : IsSigmaRegular (Z.sum W) ((CatToDila Z).comp (Beta315 Z W))) (G : Functor (Dila (Z.sum W)) (Dila (CenterZW Z W))) (hG : (CatToDila (Z.sum W)).comp G = (CatToDila Z).comp (Beta315 Z W)) :
                        G = Alpha315 Z W hreg

                        General form of CatToDila_isSigmaRegular_sum_inl: regularity for the Z-part transfers from regularity of Z.sum W for any target functor F, not just CatToDila (Z.sum W).

                        theorem CategoryTheory.Dilatations.Phi315_comp_Alpha315 {C : Type u} [Category.{v, u} C] (Z W : Center C) (hreg : IsSigmaRegular (Z.sum W) ((CatToDila Z).comp (Beta315 Z W))) :
                        (Phi315 Z W).comp (Alpha315 Z W hreg) = Beta315 Z W

                        Proposition 3.15 (v), part 1. Φ ∘ α = β (equivalently Φ ⋙ α = β in Lean's left-to-right composition). Conditional on item 2 (hreg).

                        Proposition 3.15 (v), part 2 / α ∘ α' = id. Alpha315 Z W ⋙ Alpha'315 Z W = 𝟭 _ (i.e. α' ∘ α = 𝟭 in the paper's right-to-left composition). Conditional on item 2 (hreg).

                        Proposition 3.15 (v), part 3 / α' ∘ α = id. Alpha'315 Z W ⋙ Alpha315 Z W = 𝟭 _ (i.e. α ∘ α' = 𝟭 in the paper's right-to-left composition). Conditional on item 2 (hreg).

                        noncomputable def CategoryTheory.Dilatations.Iso315 {C : Type u} [Category.{v, u} C] (Z W : Center C) (hreg : IsSigmaRegular (Z.sum W) ((CatToDila Z).comp (Beta315 Z W))) :
                        ↧(Dila (CenterZW Z W)) ≅ ↧(Dila (Z.sum W))

                        Proposition 3.15 (vi). The mutually-inverse Alpha315 Z W and Alpha'315 Z W assemble into an isomorphism of categories Dila (CenterZW Z W) ≅ Dila (Z.sum W) (as objects of Cat, i.e. a pair of mutually-inverse functors — this needs only hom_inv_id/inv_hom_id, not the fuller coherence of a CategoryTheory.Equivalence). Conditional on item 2 (hreg).

                        Equations
                        • One or more equations did not get rendered due to their size.
                        Instances For

                          Proposition 3.18 #

                          For a fixed center {[Nᵢ,dᵢ]}_{i∈I} on C and an alternative choice of sieves {N'ᵢ}_{i∈I} (same generators dᵢ), the dilatation for the combined two-copy center {[Nᵢ,dᵢ]}_{i∈I}, {[N'ᵢ,dᵢ]}_{i∈I} identifies with the dilatation for the single center with sieves Nᵢ ∪ N'ᵢ.

                          def CategoryTheory.Dilatations.Center.altSieve {C : Type u} [Category.{v, u} C] (Z : Center C) (N' : (i : Z.I) → Sieve (Z.cod i)) :

                          Same generators {dᵢ} as Z, with an alternative choice of sieves N'. Represents {[N'ᵢ,dᵢ]}_{i∈I}.

                          Equations
                          Instances For
                            def CategoryTheory.Dilatations.Center.sieveUnion {C : Type u} [Category.{v, u} C] (Z : Center C) (N' : (i : Z.I) → Sieve (Z.cod i)) :

                            Same generators as Z, with sieves Nᵢ ∪ N'ᵢ. Represents {[N''ᵢ,dᵢ]}_{i∈I} from Proposition 3.18.

                            Equations
                            • Z.sieveUnion N' = { I := Z.I, nonempty := ⋯, dom := Z.dom, cod := Z.cod, mor := Z.mor, N := fun (i : Z.I) => Z.N i ⊔ N' i }
                            Instances For

                              The combined two-copy center Z.sum (Z.altSieve N') shares its ImageCenterMorphismProperty with Z alone : both Sum.inl and Sum.inr witnesses reduce to the same underlying generator data, since Z.altSieve N' shares dom/cod/mor with Z.

                              noncomputable def CategoryTheory.Dilatations.Fact313Phi {C : Type u} [Category.{v, u} C] (Z : Center C) (M : (i : Z.I) → Sieve (Z.cod i)) (hM : ∀ (i : Z.I), M i ≤ Z.N i) :

                              Fact 3.13. For a family of subsieves Mᵢ ⊆ Nᵢ, the canonical comparison functor φ : C[{(dᵢ)⁻¹∘Mᵢ}] ⥤ C[{(dᵢ)⁻¹∘Nᵢ}].

                              Equations
                              Instances For
                                theorem CategoryTheory.Dilatations.Fact313Phi_spec {C : Type u} [Category.{v, u} C] (Z : Center C) (M : (i : Z.I) → Sieve (Z.cod i)) (hM : ∀ (i : Z.I), M i ≤ Z.N i) :
                                theorem CategoryTheory.Dilatations.Fact313Phi_faithful {C : Type u} [Category.{v, u} C] (Z : Center C) (M : (i : Z.I) → Sieve (Z.cod i)) (hM : ∀ (i : Z.I), M i ≤ Z.N i) :

                                Fact 3.13. φ is faithful : Dila_factor_unique identifies φ ⋙ DilaToLoc Z with DilaToLoc (Z.altSieve M) (both are the unique factorization of the same raw localization functor, since CenterMorphismProperty doesn't see the sieve component at all), and the latter is always faithful (Fact 2.14).

                                The sieve condition needed to extend CatToDila (Z.sieveUnion N') along CatToDila (Z.sum (Z.altSieve N')) (Fact 3.17, via Sieve.functorPushforward_union, combined with Proposition 3.5 applied to both Z and Z.altSieve N' inside the sum).

                                noncomputable def CategoryTheory.Dilatations.Alpha318 {C : Type u} [Category.{v, u} C] (Z : Center C) (N' : (i : Z.I) → Sieve (Z.cod i)) :
                                Functor (Dila (Z.sieveUnion N')) (Dila (Z.sum (Z.altSieve N')))

                                Proposition 3.18, direction one. The unique functor α : Dila (Z.sieveUnion N') ⥤ Dila (Z.sum (Z.altSieve N')) extending CatToDila (Z.sum (Z.altSieve N')) along CatToDila (Z.sieveUnion N').

                                Equations
                                Instances For
                                  theorem CategoryTheory.Dilatations.Alpha318_spec {C : Type u} [Category.{v, u} C] (Z : Center C) (N' : (i : Z.I) → Sieve (Z.cod i)) :

                                  The sieve condition needed to extend CatToDila (Z.sieveUnion N') along CatToDila (Z.sum (Z.altSieve N')).

                                  noncomputable def CategoryTheory.Dilatations.Alpha'318 {C : Type u} [Category.{v, u} C] (Z : Center C) (N' : (i : Z.I) → Sieve (Z.cod i)) :
                                  Functor (Dila (Z.sum (Z.altSieve N'))) (Dila (Z.sieveUnion N'))

                                  Proposition 3.18, direction two. The unique functor α' : Dila (Z.sum (Z.altSieve N')) ⥤ Dila (Z.sieveUnion N') extending CatToDila (Z.sieveUnion N') along CatToDila (Z.sum (Z.altSieve N')).

                                  Equations
                                  Instances For
                                    theorem CategoryTheory.Dilatations.Alpha'318_spec {C : Type u} [Category.{v, u} C] (Z : Center C) (N' : (i : Z.I) → Sieve (Z.cod i)) :
                                    theorem CategoryTheory.Dilatations.Alpha'318_comp_Alpha318 {C : Type u} [Category.{v, u} C] (Z : Center C) (N' : (i : Z.I) → Sieve (Z.cod i)) :
                                    (Alpha'318 Z N').comp (Alpha318 Z N') = Functor.id (Dila (Z.sum (Z.altSieve N')))
                                    noncomputable def CategoryTheory.Dilatations.Iso318 {C : Type u} [Category.{v, u} C] (Z : Center C) (N' : (i : Z.I) → Sieve (Z.cod i)) :
                                    ↧(Dila (Z.sum (Z.altSieve N'))) ≅ ↧(Dila (Z.sieveUnion N'))

                                    Proposition 3.18. Dila (Z.sum (Z.altSieve N')) (i.e. C[{(dᵢ)⁻¹∘Nᵢ}, {(dᵢ)⁻¹∘N'ᵢ}]) is isomorphic to Dila (Z.sieveUnion N') (i.e. C[{(dᵢ)⁻¹∘(Nᵢ∪N'ᵢ)}]).

                                    Equations
                                    • One or more equations did not get rendered due to their size.
                                    Instances For