Documentation

TauCeti.CategoryTheory.GrothendieckGroup.Presentation

The small presentation of a categorical Grothendieck group #

Every categorical Grothendieck group -- split, exact, abelian, or triangulated -- is the quotient of a free abelian group on the isomorphism classes of objects by a family of additive relations. Only the relations differ. This file builds that common engine once, for an essentially small category C, so that each Grothendieck group can be obtained by naming its relations.

The generators are TauCeti.ObjectCode C, a genuinely small type of codes for the isomorphism classes of objects: it is Shrink (Skeleton C). The smallness hypotheses are Prop-valued, so ObjectCode C takes no data argument and depends only on C and the target universe. Its underlying small model and representatives are nevertheless arbitrary choices. Consequently, the object-facing API -- of, induction_on, hom_ext, AdditiveInvariant, liftEquiv, and map -- is stated purely in terms of objects of C, so callers need not manipulate representatives.

Main definitions #

Main results #

Implementation notes #

TauCeti.freeLift f is defined for an arbitrary f : C → G, by evaluating f at a chosen representative of each code. Isomorphism invariance of f is not needed to define it; it is needed exactly to compute it on the classes TauCeti.freeOf X, and so appears as a hypothesis of TauCeti.freeLift_freeOf rather than as an unused argument of the definition. The bundled form TauCeti.PresentedK0.AdditiveInvariant carries that hypothesis together with the relations.

Relations are packaged as a Set (FreeAbelianGroup (ObjectCode C)) rather than as an AddSubgroup, and the quotient is taken by AddSubgroup.closure. The universal property then has a hypothesis about the chosen generating relations only, which is what a caller can check.

References #

@[reducible, inline]

ObjectCode C is a small type of codes for the isomorphism classes of objects of an essentially small category C.

Equations
Instances For

    The code of an object of C. Two objects have the same code exactly when they are isomorphic; see TauCeti.objectCode_eq_objectCode_iff.

    Equations
    Instances For

      The generator of the free abelian group on object codes attached to an object X.

      Equations
      Instances For

        The object generator is the free generator on its object code.

        The additive homomorphism out of the free abelian group on object codes determined by a function on objects, obtained by evaluating at a chosen representative of each code. It computes as expected on the classes TauCeti.freeOf X as soon as the function is invariant under isomorphism; see TauCeti.freeLift_freeOf.

        Equations
        Instances For
          theorem TauCeti.freeLift_freeOf {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.EssentiallySmall.{w, v, u} C] {G : Type u_1} [AddCommGroup G] {f : C → G} (hf : ∀ ⦃X Y : C⦄ (a : X ≅ Y), f X = f Y) (X : C) :
          (freeLift f) (freeOf X) = f X
          theorem TauCeti.freeLift_unique {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.EssentiallySmall.{w, v, u} C] {G : Type u_1} [AddCommGroup G] {f : C → G} (g : FreeAbelianGroup (ObjectCode C) →+ G) (hg : ∀ (X : C), g (freeOf X) = f X) :
          theorem TauCeti.freeLift_comp {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.EssentiallySmall.{w, v, u} C] {G : Type u_1} [AddCommGroup G] {H : Type u_2} [AddCommGroup H] (φ : G →+ H) (f : C → G) :
          (freeLift fun (X : C) => φ (f X)) = φ.comp (freeLift f)

          The Grothendieck group of C presented by the family of relations rels: the free abelian group on the isomorphism classes of objects of C, modulo the additive subgroup generated by rels.

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

            An additive invariant for the presentation rels: a function on objects of C, invariant under isomorphism, whose free extension annihilates every chosen relation. These are exactly the data that factor through TauCeti.PresentedK0 rels; see TauCeti.PresentedK0.liftEquiv.

            • obj : C → G

              The value of the invariant on an object.

            • map_iso ⦃X Y : C⦄ : ∀ (a : X ≅ Y), self.obj X = self.obj Y

              Isomorphic objects receive equal values.

            • map_rel (r : FreeAbelianGroup (ObjectCode C)) : r ∈ rels → (freeLift self.obj) r = 0

              The free extension of the invariant annihilates every chosen relation.

            Instances For
              theorem TauCeti.PresentedK0.AdditiveInvariant.ext {C : Type u} {inst✝ : CategoryTheory.Category.{v, u} C} {inst✝¹ : CategoryTheory.EssentiallySmall.{w, v, u} C} {rels : Set (FreeAbelianGroup (ObjectCode C))} {G : Type u_1} {inst✝² : AddCommGroup G} {x y : AdditiveInvariant rels G} (obj : x.obj = y.obj) :
              x = y

              The class of an object of C in the presented Grothendieck group.

              Equations
              Instances For
                theorem TauCeti.PresentedK0.induction_on {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.EssentiallySmall.{w, v, u} C] {rels : Set (FreeAbelianGroup (ObjectCode C))} {motive : PresentedK0 rels → Prop} (x : PresentedK0 rels) (zero : motive 0) (of : ∀ (X : C), motive (of X)) (add : ∀ (a b : PresentedK0 rels), motive a → motive b → motive (a + b)) (neg : ∀ (a : PresentedK0 rels), motive a → motive (-a)) :
                motive x

                Induction on the classes of objects of C: no skeleton representative is ever mentioned.

                theorem TauCeti.PresentedK0.hom_ext {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.EssentiallySmall.{w, v, u} C] {rels : Set (FreeAbelianGroup (ObjectCode C))} {G : Type u_1} [AddMonoid G] {f g : PresentedK0 rels →+ G} (h : ∀ (X : C), f (of X) = g (of X)) :
                f = g

                Two homomorphisms out of a presented Grothendieck group agreeing on the classes of objects of C are equal.

                A homomorphism into a presented Grothendieck group whose range contains the class of every object of C is surjective, since those classes generate.

                The additive homomorphism induced by an additive invariant.

                Equations
                Instances For

                  The universal property of a presented Grothendieck group: additive invariants for rels with values in G correspond bijectively to additive homomorphisms PresentedK0 rels →+ G.

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

                    The additive homomorphism on free abelian groups on object codes induced by a functor.

                    Equations
                    Instances For

                      The free map of the identity functor preserves every generated relation subgroup.

                      A composite free map preserves generated relation subgroups when each of its factors does.

                      Functoriality: a functor whose induced map on free abelian groups sends every chosen relation of relsC into the subgroup generated by relsD induces a homomorphism of presented Grothendieck groups.

                      Equations
                      Instances For

                        The comparison map to a presentation with more relations: enlarging the family of relations factors the class map. Taking rels to be the split relations and rels' the conflations of an exact structure, this is the canonical comparison from split to exact K₀.

                        Equations
                        Instances For
                          @[simp]

                          Enlarging a relation family to itself induces the identity map.

                          theorem TauCeti.PresentedK0.ofLE_comp {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.EssentiallySmall.{w, v, u} C] {rels rels' rels'' : Set (FreeAbelianGroup (ObjectCode C))} (h : rels ⊆ ↑(AddSubgroup.closure rels')) (h' : rels' ⊆ ↑(AddSubgroup.closure rels'')) :
                          (ofLE h').comp (ofLE h) = ofLE ⋯

                          Comparison maps for successive enlargements of relation families compose.

                          Equivalence invariance: an equivalence carrying the chosen relations into one another in both directions induces an isomorphism of presented Grothendieck groups.

                          Equations
                          Instances For
                            @[simp]

                            The additive homomorphism underlying equivalence invariance is the functorial map.

                            @[simp]
                            theorem TauCeti.PresentedK0.mapEquiv_refl {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.EssentiallySmall.{w, v, u} C] {relsC : Set (FreeAbelianGroup (ObjectCode C))} (h : ∀ r ∈ relsC, (freeMap CategoryTheory.Equivalence.refl.functor) r ∈ AddSubgroup.closure relsC := by simpa only [CategoryTheory.Equivalence.refl_functor] using (freeMap_id_mapsTo (relsC := relsC))) (h' : ∀ r ∈ relsC, (freeMap CategoryTheory.Equivalence.refl.inverse) r ∈ AddSubgroup.closure relsC := by simpa only [CategoryTheory.Equivalence.refl_inverse] using (freeMap_id_mapsTo (relsC := relsC))) :

                            Equivalence invariance for the identity equivalence is the identity.

                            theorem TauCeti.PresentedK0.mapEquiv_trans {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.EssentiallySmall.{w, v, u} C] {D : Type u'} [CategoryTheory.Category.{v', u'} D] [CategoryTheory.EssentiallySmall.{w', v', u'} D] {relsC : Set (FreeAbelianGroup (ObjectCode C))} {relsD : Set (FreeAbelianGroup (ObjectCode D))} {E : Type u''} [CategoryTheory.Category.{v'', u''} E] [CategoryTheory.EssentiallySmall.{w'', v'', u''} E] {relsE : Set (FreeAbelianGroup (ObjectCode E))} (e : C ≌ D) (f : D ≌ E) (h : ∀ r ∈ relsC, (freeMap e.functor) r ∈ AddSubgroup.closure relsD) (h' : ∀ r ∈ relsD, (freeMap e.inverse) r ∈ AddSubgroup.closure relsC) (k : ∀ r ∈ relsD, (freeMap f.functor) r ∈ AddSubgroup.closure relsE) (k' : ∀ r ∈ relsE, (freeMap f.inverse) r ∈ AddSubgroup.closure relsD) (hk : ∀ r ∈ relsC, (freeMap (e.trans f).functor) r ∈ AddSubgroup.closure relsE := ⋯) (hk' : ∀ r ∈ relsE, (freeMap (e.trans f).inverse) r ∈ AddSubgroup.closure relsC := ⋯) :
                            (mapEquiv e h h').trans (mapEquiv f k k') = mapEquiv (e.trans f) hk hk'

                            Equivalence invariance respects composition of equivalences.