Documentation

LeanPool.Dilatations.CategoryCounterexample

A category extension that is not a dilatation #

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

Fact 5.2 : the "sub-algebra" characterization of ring dilatations fails for categories #

A concrete counterexample : a category C with two objects X, Y and two parallel non-identity arrows a, b : X ⟶ Y (else trivial/empty Hom-sets), Γ := {b}, and a category D (with Hom_D(X,Y) = {b, a, a ∘ b⁻¹ ∘ a}, finite) through which C → C[Γ⁻¹] factors faithfully — such that D is not isomorphic (as a C-category) to any dilatation of C.

The two objects of C.

Instances For

    Hom_C(X,X) = {id}, Hom_C(Y,Y) = {id}, Hom_C(Y,X) = ∅, Hom_C(X,Y) = {a, b}.

    Instances For
      @[instance_reducible]
      Equations
      • One or more equations did not get rendered due to their size.
      @[reducible, inline]

      The target groupoid for separating a, b, a ∘ b⁻¹ ∘ a in C[Γ⁻¹]: the one-object groupoid on Multiplicative ℤ (Quiver.SingleObj, already fully instanced in mathlib).

      Equations
      Instances For

        The functor F : C ⥤ D0 sending a ↦ ofAdd 1, b ↦ 1 (both automatically invertible, since D0 is a groupoid).

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

          F inverts Γ, trivially — D0 is a groupoid, so every morphism is invertible.

          The composite a ∘ b⁻¹ ∘ a in C[Γ⁻¹].

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

            b, a, a ∘ b⁻¹ ∘ a are pairwise distinct morphisms X ⟶ Y in C[Γ⁻¹].

            The two objects of D.

            Instances For

              Hom_D(X,X)={id}, Hom_D(Y,Y)={id}, Hom_D(Y,X)=∅, Hom_D(X,Y)={b,a,c}.

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

                Fact 5.2, setup. The canonical (identity-on-objects) functor C → D.

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

                  Fact 5.2, setup. The canonical functor D → C[Γ⁻¹].

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

                    The triangle C → D → C[Γ⁻¹] commutes with C → C[Γ⁻¹].

                    Fact 5.2, (ii). D → C[Γ⁻¹] is faithful.

                    General separation fact. For any W : MorphismProperty Obj, a and b remain distinct after localizing at W — via the same FSep/groupoid-separation trick as pairwise_distinct, since FSep (landing in a groupoid) inverts every W, not just Γ.

                    Θ(a) ≠ Θ(b) in any dilatation Dila Z, unconditionally — via Fact_2_14/ CatToDila_comp_DilaToLoc transporting Q_map_a_ne_map_b back along DilaToLoc Z.

                    Every generator index of a center on Obj has domain/codomain (X,X), (Y,Y), or (X,Y) (the (Y,X) case is vacuous, Hom_C(Y,X) = ∅).

                    The only endomorphism of any object in Obj is the identity.

                    theorem CategoryTheory.Dilatations.Fact52.false_of_hnq_selfmor {P Q X' : Obj} (hPQ : P = Q) (m : X' ⟶ Q) (f : P ⟶ Q) (hnq : ∀ (x : X' ⟶ P), m ≠ CategoryStruct.comp x f) :

                    If Z.dom i = Z.cod i (an identity-shaped generator), every witness trivially factors through Z.mor i, so such a generator index can never witness ¬ GoodCenter. All objects here are free variables of the lemma (not the compound Z.dom i/Z.cod i), so the subst below is unproblematic; the caller instantiates P, Q at Z.dom i, Z.cod i directly.

                    theorem CategoryTheory.Dilatations.Fact52.false_of_hnq_case3 {P Q X' : Obj} (hP : P = Obj.X) (hQ : Q = Obj.Y) {D : Type u_1} [Category.{u_2, u_1} D] (Θ : Functor Obj D) (N : Sieve Q) (gen : P ⟶ Q) (m : X' ⟶ Q) (hm : N.arrows m) (hnq : ∀ (x : X' ⟶ P), m ≠ CategoryStruct.comp x gen) (frac : {X'' : Obj} → (m' : X'' ⟶ Q) → N.arrows m' → (Θ.obj X'' ⟶ Θ.obj P)) (hfrac_comp : ∀ {X'' : Obj} (m' : X'' ⟶ Q) (hm' : N.arrows m'), CategoryStruct.comp (frac m' hm') (Θ.map gen) = Θ.map m') (hYX : ∀ (a : Θ.obj Obj.Y ⟶ Θ.obj Obj.X), False) (hendX : ∀ (e' : Θ.obj Obj.X ⟶ Θ.obj Obj.X), e' ≠ CategoryStruct.id (Θ.obj Obj.X) → False) (hab_ne : Θ.map CHom.a ≠ Θ.map CHom.b) :

                    A witness m in the sieve N that doesn't factor through gen forces a contradiction. Parametrized over free objects P, Q so cases m needs no dependent-elimination gymnastics.

                    The case-(ii) hypothesis, phrased directly as the factorization property needed by fractionInDilatation_eq_of_factors: every sieve-witness m ∈ Z.N i factors through the generator Z.mor i itself. For Z.mor i = a this forces (given Hom_C's rigidity) N_a ⊆ {a}; for Z.mor i = b, N_b ⊆ {b}; for Z.mor i ∈ {idX, idY} it holds unconditionally (composing with an identity is free), matching the paper's case (ii) exactly.

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

                      Case (i). If Z is not "good", CtoD cannot be equivalent to CatToDila Z compatibly with the maps from C.

                      Case (ii), core step. Under GoodCenter Z, every morphism of the generated category (hence, via GeneratedToDila_full, every morphism of Dila Z) between the images of two objects of Obj is Θ applied to some morphism of Obj. This collapses every fraction edge back to an original edge using fractionInDilatation_eq_of_factors, driven by the factorization GoodCenter Z supplies.

                      theorem CategoryTheory.Dilatations.Fact52.CatToDila_full_of_good {Z : Center Obj} (hGood : GoodCenter Z) (P Q : Obj) (φ : (CatToDila Z).obj P ⟶ (CatToDila Z).obj Q) :
                      ∃ (c : P ⟶ Q), φ = (CatToDila Z).map c

                      Case (ii). Under GoodCenter Z, CatToDila Z is "full onto its generators": every morphism (CatToDila Z).obj P ⟶ (CatToDila Z).obj Q is Θ of an actual morphism of Obj.