The monoid of isomorphism classes under the binary biproduct #
For an essentially small category C with zero morphisms, a zero object and binary biproducts,
the small type TauCeti.ObjectCode C of codes for the isomorphism classes of objects carries an
additive commutative monoid structure: the sum of two classes is the class of the biproduct of
representatives, and the neutral element is the class of the zero object.
Representatives are chosen internally to define addition, through
Function.surjInv TauCeti.objectCode_surjective, but they never escape:
TauCeti.objectCode_biprod computes the sum on the codes of actual objects, and the monoid laws
are transported from biprod.associator, biprod.braiding and the two zero-summand isomorphisms
of Mathlib.
Main definitions #
- the
AddCommMonoid (TauCeti.ObjectCode C)instance.
Main results #
TauCeti.objectCode_biprodandTauCeti.objectCode_zero: the code of a binary biproduct is the sum of the codes, and the code of the zero object is the neutral element.
References #
- Charles A. Weibel, The K-book: An Introduction to Algebraic K-theory, Chapter II, Section 5,
where the monoid of isomorphism classes of objects under the biproduct is the starting point of
the group-completion description of split
K₀.
Isomorphism classes of objects are added by taking the binary biproduct of representatives.
Equations
- TauCeti.instAddObjectCode = { add := fun (c d : TauCeti.ObjectCode C) => TauCeti.objectCode (Function.surjInv ⋯ c ⊞ Function.surjInv ⋯ d) }
The class of the zero object is the neutral isomorphism class.
Equations
- TauCeti.instZeroObjectCode = { zero := TauCeti.objectCode 0 }
The code of a binary biproduct is the sum of the object codes.
The code of the zero object is the neutral isomorphism class.
The isomorphism classes of an essentially small category with zero morphisms, a zero object and binary biproducts form an additive commutative monoid under the binary biproduct.
Equations
- One or more equations did not get rendered due to their size.