Preadditive categories
A preadditive category is a category in which X ⟶ Y is an abelian group in such a way that
composition of morphisms is linear in both variables.
This file contains a definition of preadditive category that directly encodes the definition given above. The definition could also be phrased as follows: A preadditive category is a category enriched over the category of Abelian groups. Once the general framework to state this in Lean is available, the contents of this file should become obsolete.
Main results
- Definition of preadditive categories and basic properties
- In a preadditive category,
f : Q ⟶ Ris mono if and only ifg ≫ f = 0 → g = 0for all composableg. - A preadditive category with kernels has equalizers.
Implementation notes
The simp normal form for negation and composition is to push negations as far as possible to
the outside. For example, f ≫ (-g) and (-f) ≫ g both become -(f ≫ g), and (-f) ≫ (-g)
is simplified to f ≫ g.
References
- [F. Borceux, Handbook of Categorical Algebra 2][borceux-vol2]
Tags
additive, preadditive, Hom group, Ab-category, Ab-enriched
- hom_group : (Π (P Q : C), add_comm_group (P ⟶ Q)) . "apply_instance"
- add_comp' : (∀ (P Q R : C) (f f' : P ⟶ Q) (g : Q ⟶ R), (f + f') ≫ g = f ≫ g + f' ≫ g) . "obviously"
- comp_add' : (∀ (P Q R : C) (f : P ⟶ Q) (g g' : Q ⟶ R), f ≫ (g + g') = f ≫ g + f ≫ g') . "obviously"
A category is called preadditive if P ⟶ Q is an abelian group such that composition is
linear in both variables.
Composition by a fixed left argument as a group homomorphism
Equations
- category_theory.preadditive.left_comp R f = add_monoid_hom.mk' (λ (g : Q ⟶ R), f ≫ g) _
Composition by a fixed right argument as a group homomorphism
Equations
- category_theory.preadditive.right_comp P g = add_monoid_hom.mk' (λ (f : P ⟶ Q), f ≫ g) _
Equations
Equations
Equations
- category_theory.preadditive.preadditive_has_zero_morphisms = {has_zero := infer_instance (λ (X Y : C), add_monoid.to_has_zero (X ⟶ Y)), comp_zero' := _, zero_comp' := _}
A kernel of f - g is an equalizer of f and g.
Equations
- category_theory.preadditive.has_limit_parallel_pair f g = {cone := category_theory.limits.fork.of_ι (category_theory.limits.kernel.ι (f - g)) _, is_limit := category_theory.limits.fork.is_limit.mk (category_theory.limits.fork.of_ι (category_theory.limits.kernel.ι (f - g)) _) (λ (s : category_theory.limits.fork f g), category_theory.limits.kernel.lift (f - g) s.ι _) _ _}
If a preadditive category has all kernels, then it also has all equalizers.
A cokernel of f - g is a coequalizer of f and g.
Equations
- category_theory.preadditive.has_colimit_parallel_pair f g = {cocone := category_theory.limits.cofork.of_π (category_theory.limits.cokernel.π (f - g)) _, is_colimit := category_theory.limits.cofork.is_colimit.mk (category_theory.limits.cofork.of_π (category_theory.limits.cokernel.π (f - g)) _) (λ (s : category_theory.limits.cofork f g), category_theory.limits.cokernel.desc (f - g) s.π _) _ _}
If a preadditive category has all cokernels, then it also has all coequalizers.