Choice independence of the small presentation of K₀ #
A categorical Grothendieck group is a quotient of a free abelian group whose generators index the
isomorphism classes of objects. TauCeti.PresentedK0 takes those generators to be
TauCeti.ObjectCode C = Shrink (Skeleton C), but this is only one small type in bijection with
the isomorphism classes: the skeleton of Mathlib's chosen small model SmallModel C, or the
codes ObjectCode C formed in another universe, serve as well. This file shows that the choice
does not matter, canonically.
A model m : TauCeti.IsoClassModel C I of the isomorphism classes of C is a surjective map
m.code : C → I under which two objects have the same code exactly when they are isomorphic.
Relations are given at the level of objects, as a set ρ of integral combinations of objects,
so that they make sense over every model at once, and m.K0 ρ is the free abelian group on I
modulo the codes of the relations. Over two models m and m' the groups m.K0 ρ and
m'.K0 ρ are related by a canonical isomorphism TauCeti.IsoClassModel.K0.equiv m m' ρ, the
unique homomorphism sending the class of each object to its class. These isomorphisms satisfy
the cocycle laws, and they commute with the maps induced by functors. The public group
TauCeti.PresentedK0 of the codes of ρ is identified with m.K0 ρ for every model m by
TauCeti.IsoClassModel.K0.presentedK0Equiv, compatibly with these isomorphisms.
Main definitions #
TauCeti.IsoClassModel C I: a model of the isomorphism classes of objects ofCinI, with the instancesTauCeti.IsoClassModel.objectCode,TauCeti.IsoClassModel.skeletonandTauCeti.IsoClassModel.smallModel, and the transportsTauCeti.IsoClassModel.ofEquivandTauCeti.IsoClassModel.ofEquivalence.TauCeti.IsoClassModel.equiv m m': the bijection between the index types of two models which sends the code of an object to its code.TauCeti.IsoClassModel.K0 m ρ: the Grothendieck group presented by the object-level relationsρover the modelm, with its class mapTauCeti.IsoClassModel.K0.of, its universal propertyTauCeti.IsoClassModel.K0.liftand its functorialityTauCeti.IsoClassModel.K0.map.TauCeti.IsoClassModel.K0.equiv m m' ρ: the canonical isomorphismm.K0 ρ ≃+ m'.K0 ρ.TauCeti.IsoClassModel.K0.presentedK0Equiv m ρ: the canonical isomorphism from the public presentationTauCeti.PresentedK0of the codes ofρtom.K0 ρ.
Main results #
TauCeti.IsoClassModel.K0.equiv_ofandTauCeti.IsoClassModel.K0.equiv_unique: the canonical isomorphism preserves the class of every object, and is the only homomorphism doing so.TauCeti.IsoClassModel.K0.equiv_refl,TauCeti.IsoClassModel.K0.equiv_symmandTauCeti.IsoClassModel.K0.equiv_trans: the cocycle laws.TauCeti.IsoClassModel.K0.equiv_map: naturality of the canonical isomorphisms with respect to the maps induced by functors.TauCeti.IsoClassModel.K0.presentedK0Equiv_trans_equiv: the identification with the public presentation is compatible with the canonical isomorphisms.
References #
- Charles A. Weibel, The K-book: An Introduction to Algebraic K-theory, Chapter II, Section 6,
where
K₀of an essentially small category is presented on a set of representatives of the isomorphism classes, and the universal property of an additive invariant removes the dependence on that set.
A model of the isomorphism classes of objects of C in a type I: a surjective map from the
objects of C to I under which two objects have the same image exactly when they are
isomorphic.
- code : C → I
The element of
Icoding the isomorphism class of an object. - code_surjective : Function.Surjective self.code
Every element of
Icodes some object. Two objects have the same code exactly when they are isomorphic.
Instances For
The isomorphism classes of C modelled by the objects of its skeleton.
Equations
- TauCeti.IsoClassModel.skeleton C = { code := CategoryTheory.toSkeleton, code_surjective := ⋯, code_eq_code_iff := ⋯ }
Instances For
The model underlying TauCeti.PresentedK0: the codes TauCeti.ObjectCode C.
Equations
- TauCeti.IsoClassModel.objectCode C = { code := TauCeti.objectCode, code_surjective := ⋯, code_eq_code_iff := ⋯ }
Instances For
A model transported along a bijection of its index type.
Equations
Instances For
A model of the isomorphism classes of D pulled back along an equivalence C ≌ D.
Equations
Instances For
The isomorphism classes of C modelled by the skeleton of Mathlib's chosen small model
SmallModel C.
Equations
Instances For
The bijection between the index types of two models of the isomorphism classes of C which
sends the code of an object in the first model to its code in the second.
Equations
- m.equiv m' = { toFun := fun (i : I) => m'.code (Function.surjInv ⋯ i), invFun := fun (j : J) => m.code (Function.surjInv ⋯ j), left_inv := ⋯, right_inv := ⋯ }
Instances For
The bijection between two models is the only map compatible with the codes.
The Grothendieck group presented by the object-level relations ρ over the model m: the
free abelian group on I modulo the subgroup generated by the codes of the relations.
Equations
- m.K0 ρ = (FreeAbelianGroup I ⧸ AddSubgroup.closure (⇑(FreeAbelianGroup.map m.code) '' ρ))
Instances For
Equations
- One or more equations did not get rendered due to their size.
The quotient map presenting TauCeti.IsoClassModel.K0 m ρ.
Equations
Instances For
The class of an object of C.
Equations
Instances For
The class map, extended additively to integral combinations of objects, is the quotient map applied to their codes.
The class map satisfies every relation in the subgroup generated by ρ.
The classes of objects generate the presented Grothendieck group.
Two homomorphisms out of m.K0 ρ agreeing on the classes of objects are equal.
The universal property: an isomorphism-invariant function on objects whose additive
extension annihilates every relation induces a homomorphism out of m.K0 ρ.
Equations
- TauCeti.IsoClassModel.K0.lift f hf hρ = QuotientAddGroup.lift (AddSubgroup.closure (⇑(FreeAbelianGroup.map m.code) '' ρ)) (FreeAbelianGroup.lift (f ∘ Function.surjInv ⋯)) ⋯
Instances For
Functoriality: a functor carrying every relation of ρ into the subgroup generated by σ
induces a homomorphism between the presented Grothendieck groups, over any two models.
Equations
- TauCeti.IsoClassModel.K0.map m n F h = TauCeti.IsoClassModel.K0.lift (fun (X : C) => TauCeti.IsoClassModel.K0.of (F.obj X)) ⋯ ⋯
Instances For
A composite functor carries ρ into the subgroup generated by τ when each of its factors
carries its relations into the next generated subgroup.
The canonical isomorphism between the Grothendieck groups presented by the same relations
over two models of the isomorphism classes of C. It sends the class of every object to its
class; see TauCeti.IsoClassModel.K0.equiv_of and TauCeti.IsoClassModel.K0.equiv_unique.
Equations
- TauCeti.IsoClassModel.K0.equiv m m' ρ = (TauCeti.IsoClassModel.K0.map m m' (CategoryTheory.Functor.id C) ⋯).toAddEquiv (TauCeti.IsoClassModel.K0.map m' m (CategoryTheory.Functor.id C) ⋯) ⋯ ⋯
Instances For
The map induced by the identity functor between two models is the canonical isomorphism.
The canonical isomorphism is the only homomorphism preserving the class of every object.
The cocycle law for the canonical isomorphisms.
Naturality of the canonical isomorphisms: they commute with the maps induced by a functor.
The public presentation TauCeti.PresentedK0 of the codes of the object-level relations ρ
is canonically isomorphic to the presentation of ρ over any model m, by the isomorphism
preserving the class of every object.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The identification with the public presentation is compatible with the canonical isomorphisms between models.