Documentation

LeanPool.Dilatations.Basic

Construction and universal property of categorical dilatations #

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).

Transporting the endpoints of two composable morphisms respects composition.

structure CategoryTheory.Dilatations.Center (C : Type u) [Category.{v, u} C] :
Type (max (u + 1) v)

Definition 2.9. A center {[Nᵢ,dᵢ]}ᵢ∈I in C.

  • I : Type u

    Indices of the denominator morphisms and their numerator sieves.

  • nonempty : Nonempty self.I
  • dom : self.I → C

    Domain of each denominator morphism.

  • cod : self.I → C

    Codomain of each denominator morphism.

  • mor (i : self.I) : self.dom i ⟶ self.cod i

    Morphisms by which the corresponding numerators may be divided.

  • N (i : self.I) : Sieve (self.cod i)

    Permitted numerators, stable under precomposition.

Instances For
    def CategoryTheory.Dilatations.IsCenterMor {C : Type u} [Category.{v, u} C] (Z : Center C) (f : (X : C) × (Y : C) × (X ⟶ Y)) :

    Whether a dependent morphism is one of the chosen denominators.

    Equations
    Instances For

      The localized category obtained by formally inverting the morphisms in CenterMorphismProperty.

      Equations
      Instances For

        A chosen denominator together with a permitted numerator.

        Equations
        Instances For

          The path consisting of a numerator followed by its formal denominator inverse.

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

            A permitted fraction evaluated in the ambient localization.

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

              Whether a localization morphism is represented by one permitted fraction.

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

                Data exhibiting a localization morphism as a permitted fraction.

                Instances For

                  Data exhibiting a localization morphism as the image of a base morphism.

                  Instances For

                    A generator is either a permitted fraction or the image of a base morphism.

                    Instances For
                      @[instance_reducible]

                      The quiver of witnessed original and fraction morphisms.

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

                        Objects of the ambient localization, used to build the generator category.

                        Equations
                        Instances For

                          Forget the witness distinguishing original and fraction generators.

                          Equations
                          Instances For

                            Two paths are identified exactly when they evaluate equally in the localization.

                            Equations
                            Instances For

                              Definition 2.13 / Fact 2.11. The dilatation C[{(dᵢ)⁻¹∘Nᵢ}ᵢ∈I]: objects are C's objects, morphisms are {[Nᵢ,dᵢ]}-fractions, composed via Quotient (Fact 2.11's associativity of fraction composition is Quotient.category's own well-definedness).

                              Equations
                              Instances For

                                The base-category prefunctor sending morphisms to original generators.

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

                                  Proposition 3.1 (1). The canonical functor Θ : C ⥤ C'.

                                  Equations
                                  • One or more equations did not get rendered due to their size.
                                  Instances For
                                    theorem CategoryTheory.Dilatations.Fact_3_2 {A : Type u_1} [Category.{u_3, u_1} A] {B : Type u_2} [Category.{u_4, u_2} B] (F : Functor A B) [F.Faithful] {X Y : A} (f : X ⟶ Y) [Mono (F.map f)] [Epi (F.map f)] :

                                    Fact 3.2. A morphism whose image under a faithful functor is a bimorphism (mono and epi) is itself a bimorphism.

                                    theorem CategoryTheory.Dilatations.Prop_3_3 {C : Type u} [Category.{v, u} C] (Z : Center C) (i : Z.I) :
                                    Mono ((CatToDila Z).map (Z.mor i)) ∧ Epi ((CatToDila Z).map (Z.mor i))

                                    Proposition 3.3. For i : Z.I, Θ(dᵢ) = (CatToDila Z).map (Z.mor i) is a bimorphism in Dila Z.

                                    Push a sieve forward along the canonical dilatation functor.

                                    Equations
                                    Instances For

                                      Proposition 3.1 (2), existence. The fraction b = dᵢ\n = [n∘l_{dᵢ}] witnessing the unique factorization [n] = Θ(dᵢ) ∘ b.

                                      Equations
                                      Instances For
                                        theorem CategoryTheory.Dilatations.fraction_in_dila_comp_mor {C : Type u} [Category.{v, u} C] (Z : Center C) (i : Z.I) (X : C) (m : X ⟶ Z.cod i) (hm : (Z.N i).arrows m) :

                                        Proposition 3.1 (2), defining property. b ≫ Θ(dᵢ) = Θ(n), i.e. the triangle [n] = Θ(dᵢ) ∘ b commutes.

                                        Proposition 3.5. S ^ C'_Θ(Nᵢ) ⊂ S ^ C'_Θ(dᵢ).

                                        theorem CategoryTheory.Dilatations.GeneratedCategory_morphism_induction {C : Type u} [Category.{v, u} C] (Z : Center C) (P : {X Y : GeneratedCategory Z} → (X ⟶ Y) → Prop) (h_id : ∀ (X : GeneratedCategory Z), P (CategoryStruct.id X)) (h_comp : ∀ {X Y W : GeneratedCategory Z} (f : X ⟶ Y) (g : Y ⟶ W), P f → P g → P (CategoryStruct.comp f g)) (h_gen : ∀ {A B : GeneratorObjects Z} (g : A ⟶ B), P g.toPath) {X Y : GeneratedCategory Z} (f : X ⟶ Y) :
                                        P f

                                        The universal property #

                                        def CategoryTheory.Dilatations.IsImageCenterMor {C : Type u} [Category.{v, u} C] (Z : Center C) {D : Type u} [Category.{v', u} D] (F : Functor C D) (f : (X : D) × (Y : D) × (X ⟶ Y)) :

                                        Morphisms in D obtained as images of the chosen central morphisms of C.

                                        Equations
                                        Instances For

                                          The morphism property consisting of the images of the chosen denominators.

                                          Equations
                                          Instances For

                                            The localization of D obtained by formally inverting the images of the central morphisms.

                                            Equations
                                            Instances For
                                              theorem CategoryTheory.Dilatations.exists_factor_D {C : Type u} [Category.{v, u} C] (Z : Center C) {D : Type u} [Category.{v', u} D] (F : Functor C D) (hsieve : ∀ (i : Z.I), Sieve.functorPushforward F (Z.N i) ≤ Sieve.generate (Presieve.singleton (F.map (Z.mor i)))) (i : Z.I) (Y : D) (n : Y ⟶ F.obj (Z.cod i)) :
                                              (Sieve.functorPushforward F (Z.N i)).arrows n → ∃ (q : Y ⟶ F.obj (Z.dom i)), CategoryStruct.comp q (F.map (Z.mor i)) = n
                                              theorem CategoryTheory.Dilatations.unique_factor_D {C : Type u} [Category.{v, u} C] (Z : Center C) {D : Type u} [Category.{v', u} D] (F : Functor C D) (hfaith : (ImageCenterLocalizationFunctor Z F).Faithful) (i : Z.I) (Y : D) (q₁ q₂ : Y ⟶ F.obj (Z.dom i)) :
                                              CategoryStruct.comp q₁ (F.map (Z.mor i)) = CategoryStruct.comp q₂ (F.map (Z.mor i)) → q₁ = q₂
                                              theorem CategoryTheory.Dilatations.exists_unique_factor_D {C : Type u} [Category.{v, u} C] (Z : Center C) {D : Type u} [Category.{v', u} D] (F : Functor C D) (hfaith : (ImageCenterLocalizationFunctor Z F).Faithful) (hsieve : ∀ (i : Z.I), Sieve.functorPushforward F (Z.N i) ≤ Sieve.generate (Presieve.singleton (F.map (Z.mor i)))) (i : Z.I) (Y : D) (n : Y ⟶ F.obj (Z.cod i)) :
                                              (Sieve.functorPushforward F (Z.N i)).arrows n → ∃! q : Y ⟶ F.obj (Z.dom i), CategoryStruct.comp q (F.map (Z.mor i)) = n
                                              noncomputable def CategoryTheory.Dilatations.uniqueFactor {C : Type u} [Category.{v, u} C] (Z : Center C) {D : Type u} [Category.{v', u} D] (F : Functor C D) (hfaith : (ImageCenterLocalizationFunctor Z F).Faithful) (hsieve : ∀ (i : Z.I), Sieve.functorPushforward F (Z.N i) ≤ Sieve.generate (Presieve.singleton (F.map (Z.mor i)))) (i : Z.I) (Y : C) (n : Y ⟶ Z.cod i) (hn : (Z.N i).arrows n) :
                                              F.obj Y ⟶ F.obj (Z.dom i)

                                              The unique factor of a mapped numerator through its mapped denominator.

                                              Equations
                                              Instances For

                                                Interpret each original or fraction generator in a sieve-compatible target category.

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

                                                  The prefunctor interpreting dilatation generators in the target category.

                                                  Equations
                                                  • One or more equations did not get rendered due to their size.
                                                  Instances For
                                                    noncomputable def CategoryTheory.Dilatations.H {C : Type u} [Category.{v, u} C] (Z : Center C) {D : Type u} [Category.{v', u} D] (F : Functor C D) (hfaith : (ImageCenterLocalizationFunctor Z F).Faithful) (hsieve : ∀ (i : Z.I), Sieve.functorPushforward F (Z.N i) ≤ Sieve.generate (Presieve.singleton (F.map (Z.mor i)))) :

                                                    Extend the generator interpretation to paths by the free-category universal property.

                                                    Equations
                                                    Instances For
                                                      theorem CategoryTheory.Dilatations.mapGenerator_original {C : Type u} [Category.{v, u} C] (Z : Center C) {D : Type u} [Category.{v', u} D] (F : Functor C D) (hfaith : (ImageCenterLocalizationFunctor Z F).Faithful) (hsieve : ∀ (i : Z.I), Sieve.functorPushforward F (Z.N i) ≤ Sieve.generate (Presieve.singleton (F.map (Z.mor i)))) {X Y : C} (f : X ⟶ Y) :
                                                      mapGenerator Z F hfaith hsieve ⟨(CenterMorphismProperty Z).Q.map f, GeneratorMorphismData.original { g := f, eq := ⋯ }⟩ = F.map f
                                                      theorem CategoryTheory.Dilatations.H_map_original {C : Type u} [Category.{v, u} C] (Z : Center C) {D : Type u} [Category.{v', u} D] (F : Functor C D) (hfaith : (ImageCenterLocalizationFunctor Z F).Faithful) (hsieve : ∀ (i : Z.I), Sieve.functorPushforward F (Z.N i) ≤ Sieve.generate (Presieve.singleton (F.map (Z.mor i)))) {X Y : C} (f : X ⟶ Y) :
                                                      (H Z F hfaith hsieve).map ((CToGeneratorQuiver Z).map f).toPath = F.map f
                                                      theorem CategoryTheory.Dilatations.uniqueFactor_spec {C : Type u} [Category.{v, u} C] (Z : Center C) {D : Type u} [Category.{v', u} D] (F : Functor C D) (hfaith : (ImageCenterLocalizationFunctor Z F).Faithful) (hsieve : ∀ (i : Z.I), Sieve.functorPushforward F (Z.N i) ≤ Sieve.generate (Presieve.singleton (F.map (Z.mor i)))) (i : Z.I) (Y : C) (n : Y ⟶ Z.cod i) (hn : (Z.N i).arrows n) :
                                                      CategoryStruct.comp (uniqueFactor Z F hfaith hsieve i Y n hn) (F.map (Z.mor i)) = F.map n
                                                      theorem CategoryTheory.Dilatations.generatedLocalization_commutes_fraction_core {C : Type u} [Category.{v, u} C] (Z : Center C) {D : Type u} [Category.{v', u} D] (F : Functor C D) (hfaith : (ImageCenterLocalizationFunctor Z F).Faithful) (hsieve : ∀ (i : Z.I), Sieve.functorPushforward F (Z.N i) ≤ Sieve.generate (Presieve.singleton (F.map (Z.mor i)))) (hobj : ∀ (A : GeneratedCategory Z), ((H Z F hfaith hsieve).comp (ImageCenterLocalizationFunctor Z F)).obj A = ((GeneratedToLocalization Z).comp (localizationMap Z F)).obj A) (i : Z.I) (X : C) (n : X ⟶ Z.cod i) (hn : (Z.N i).arrows n) :

                                                      Core cancellation step for the fraction case : matching the two sides of generatedLocalization_commutes after both have been rewritten via H_map_fraction / GeneratedToLocalization_map_fraction, using that L(F(d_i)) is (tautologically) invertible in the image-center localization.

                                                      theorem CategoryTheory.Dilatations.H_descends {C : Type u} [Category.{v, u} C] (Z : Center C) {D : Type u} [Category.{v', u} D] (F : Functor C D) (hfaith : (ImageCenterLocalizationFunctor Z F).Faithful) (hsieve : ∀ (i : Z.I), Sieve.functorPushforward F (Z.N i) ≤ Sieve.generate (Presieve.singleton (F.map (Z.mor i)))) {X Y : GeneratedCategory Z} (f g : X ⟶ Y) :
                                                      DilaRel Z f g → (H Z F hfaith hsieve).map f = (H Z F hfaith hsieve).map g

                                                      H sends DilaRel-related paths to equal morphisms of D: the second, global use of Σ-regularity, by injectivity after post-composing with ImageCenterLocalizationFunctor Z F.

                                                      noncomputable def CategoryTheory.Dilatations.DilaLift {C : Type u} [Category.{v, u} C] (Z : Center C) {D : Type u} [Category.{v', u} D] (F : Functor C D) (hfaith : (ImageCenterLocalizationFunctor Z F).Faithful) (hsieve : ∀ (i : Z.I), Sieve.functorPushforward F (Z.N i) ≤ Sieve.generate (Presieve.singleton (F.map (Z.mor i)))) :

                                                      Theorem 3.10, the functor F'. The functor Dila Z ⥤ D factoring F through Θ = CatToDila Z, built structurally : the generator-by-generator choice generatorImage, lifted to the free category as H, descends along the quotient by DilaRel via H_descends. Its defining equation F' ∘ Θ = F is DilaLift_fac; its uniqueness is DilaLift_unique.

                                                      Equations
                                                      Instances For
                                                        theorem CategoryTheory.Dilatations.DilaLift_fac {C : Type u} [Category.{v, u} C] (Z : Center C) {D : Type u} [Category.{v', u} D] (F : Functor C D) (hfaith : (ImageCenterLocalizationFunctor Z F).Faithful) (hsieve : ∀ (i : Z.I), Sieve.functorPushforward F (Z.N i) ≤ Sieve.generate (Presieve.singleton (F.map (Z.mor i)))) :
                                                        (CatToDila Z).comp (DilaLift Z F hfaith hsieve) = F

                                                        Theorem 3.10, existence half. F' ∘ Θ = F.

                                                        theorem CategoryTheory.Dilatations.exists_Dila_factor {C : Type u} [Category.{v, u} C] (Z : Center C) {D : Type u} [Category.{v', u} D] (F : Functor C D) (hfaith : (ImageCenterLocalizationFunctor Z F).Faithful) (hsieve : ∀ (i : Z.I), Sieve.functorPushforward F (Z.N i) ≤ Sieve.generate (Presieve.singleton (F.map (Z.mor i)))) :
                                                        ∃ (G : Functor (Dila Z) D), (CatToDila Z).comp G = F
                                                        theorem CategoryTheory.Dilatations.Dila_factor_unique_on_C {C : Type u} [Category.{v, u} C] (Z : Center C) {D : Type u} [Category.{v', u} D] (F : Functor C D) (G₁ G₂ : Functor (Dila Z) D) (h₁ : (CatToDila Z).comp G₁ = F) (h₂ : (CatToDila Z).comp G₂ = F) :
                                                        (CatToDila Z).comp G₁ = (CatToDila Z).comp G₂
                                                        theorem CategoryTheory.Dilatations.map_eq_of_agree_on_C {C : Type u} [Category.{v, u} C] (Z : Center C) {D : Type u} [Category.{v', u} D] (F : Functor C D) {X Y : C} (G₁ G₂ : Functor (Dila Z) D) (h₁ : (CatToDila Z).comp G₁ = F) (h₂ : (CatToDila Z).comp G₂ = F) (f : X ⟶ Y) :
                                                        theorem CategoryTheory.Dilatations.imageCenter_mono {C : Type u} [Category.{v, u} C] (Z : Center C) {D : Type u} [Category.{v', u} D] (F : Functor C D) (hfaith : (ImageCenterLocalizationFunctor Z F).Faithful) (i : Z.I) :
                                                        Mono (F.map (Z.mor i))

                                                        Sigma-regularity makes every mapped denominator a monomorphism.

                                                        theorem CategoryTheory.Dilatations.Dila_factor_unique_fraction {C : Type u} [Category.{v, u} C] (Z : Center C) {D : Type u} [Category.{v', u} D] (F : Functor C D) (G₁ G₂ : Functor (Dila Z) D) (hfaith : (ImageCenterLocalizationFunctor Z F).Faithful) (h₁ : (CatToDila Z).comp G₁ = F) (h₂ : (CatToDila Z).comp G₂ = F) (i : Z.I) (X : C) (n : X ⟶ Z.cod i) (hn : (Z.N i).arrows n) :
                                                        theorem CategoryTheory.Dilatations.Subtype.ext_val {α : Type u_1} {p : α → Prop} {a b : Subtype p} (h : ↑a = ↑b) :
                                                        a = b
                                                        theorem CategoryTheory.Dilatations.Subtype.val_eq_of_eq {α : Type u_1} {p : α → Prop} {a b : Subtype p} (h : a = b) :
                                                        ↑a = ↑b
                                                        theorem CategoryTheory.Dilatations.GeneratorQuiver_Hom_ext {C : Type u} [Category.{v, u} C] (Z : Center C) {X Y : GeneratorObjects Z} (g₁ g₂ : X ⟶ Y) (h : g₁.fst = g₂.fst) :
                                                        theorem CategoryTheory.Dilatations.Generated_factor_unique_generator {C : Type u} [Category.{v, u} C] (Z : Center C) {D : Type u} [Category.{v', u} D] (G₁ G₂ : Functor (Dila Z) D) (h_obj : ∀ (X : Dila Z), G₁.obj X = G₂.obj X) (h_mor : ∀ {X Y : C} (f : X ⟶ Y), G₁.map ((CatToDila Z).map f) = CategoryStruct.comp (eqToHom ⋯) (CategoryStruct.comp (G₂.map ((CatToDila Z).map f)) (eqToHom ⋯))) (h_fraction : ∀ (i : Z.I) (X : C) (n : X ⟶ Z.cod i) (hn : (Z.N i).arrows n), G₁.map (fractionInDilatation Z ⟨i, ⟨X, ⟨n, hn⟩⟩⟩) = CategoryStruct.comp (eqToHom ⋯) (CategoryStruct.comp (G₂.map (fractionInDilatation Z ⟨i, ⟨X, ⟨n, hn⟩⟩⟩)) (eqToHom ⋯))) {A B : GeneratorObjects Z} (g : A ⟶ B) :
                                                        theorem CategoryTheory.Dilatations.Generated_factor_unique_map {C : Type u} [Category.{v, u} C] (Z : Center C) {D : Type u} [Category.{v', u} D] (G₁ G₂ : Functor (Dila Z) D) (h_obj : ∀ (X : Dila Z), G₁.obj X = G₂.obj X) (h_mor : ∀ {X Y : C} (f : X ⟶ Y), G₁.map ((CatToDila Z).map f) = CategoryStruct.comp (eqToHom ⋯) (CategoryStruct.comp (G₂.map ((CatToDila Z).map f)) (eqToHom ⋯))) (h_fraction : ∀ (i : Z.I) (X : C) (n : X ⟶ Z.cod i) (hn : (Z.N i).arrows n), G₁.map (fractionInDilatation Z ⟨i, ⟨X, ⟨n, hn⟩⟩⟩) = CategoryStruct.comp (eqToHom ⋯) (CategoryStruct.comp (G₂.map (fractionInDilatation Z ⟨i, ⟨X, ⟨n, hn⟩⟩⟩)) (eqToHom ⋯))) {X Y : Dila Z} (f : X ⟶ Y) :
                                                        theorem CategoryTheory.Dilatations.Dila_obj_eq_C_obj {C : Type u} [Category.{v, u} C] (Z : Center C) (X : Dila Z) :
                                                        ∃ (Y : C), (CatToDila Z).obj Y = X
                                                        theorem CategoryTheory.Dilatations.Dila_factor_unique {C : Type u} [Category.{v, u} C] (Z : Center C) {D : Type u} [Category.{v', u} D] (F : Functor C D) (G₁ G₂ : Functor (Dila Z) D) (h₁ : (CatToDila Z).comp G₁ = F) (h₂ : (CatToDila Z).comp G₂ = F) (hfaith : (ImageCenterLocalizationFunctor Z F).Faithful) :
                                                        G₁ = G₂
                                                        theorem CategoryTheory.Dilatations.DilaLift_unique {C : Type u} [Category.{v, u} C] (Z : Center C) {D : Type u} [Category.{v', u} D] (F : Functor C D) (hfaith : (ImageCenterLocalizationFunctor Z F).Faithful) (hsieve : ∀ (i : Z.I), Sieve.functorPushforward F (Z.N i) ≤ Sieve.generate (Presieve.singleton (F.map (Z.mor i)))) (G : Functor (Dila Z) D) (hG : (CatToDila Z).comp G = F) :
                                                        G = DilaLift Z F hfaith hsieve

                                                        Theorem 3.10, uniqueness half. Any G with G ∘ Θ = F equals DilaLift.

                                                        Definition 3.6. F : C ⥤ D is Σ-regular (F ∈ Cat ^ Σ-reg_C) if D → D[F(Σ)⁻¹] is faithful.

                                                        Equations
                                                        Instances For
                                                          theorem CategoryTheory.Dilatations.faithful_of_comp_faithful {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) :

                                                          If p ⋙ e is faithful, then p is faithful. This is the elementary categorical fact behind both Fact 3.7 and Fact 3.8 : a functor that factors (on the target side) through a faithful functor is itself faithful.

                                                          Fact 3.7. Θ : C ⥤ C' is Σ-regular.

                                                          Fact 3.11. If G : Dila Z ⥤ D and i : Z.I, then the pushforward of Z.N i along CatToDila Z ⋙ G is contained in the singleton sieve generated by (CatToDila Z ⋙ G).map (Z.mor i). This is CatToDila_image_sieve_le_singleton pushed forward one further step through G.