# mathlibdocumentation

category_theory.simple

# Simple objects #

We define simple objects in any category with zero morphisms. A simple object is an object Y such that any monomorphism f : X ⟶ Y is either an isomorphism or zero (but not both).

This is formalized as a Prop valued typeclass simple X.

If a morphism f out of a simple object is nonzero and has a kernel, then that kernel is zero. (We state this as kernel.ι f = 0, but should add kernel f ≅ 0.)

When the category is abelian, being simple is the same as being cosimple (although we do not state a separate typeclass for this). As a consequence, any nonzero epimorphism out of a simple object is an isomorphism, and any nonzero morphism into a simple object has trivial cokernel.

@[class]
structure category_theory.simple {C : Type u} (X : C) :
Prop
• mono_is_iso_iff_nonzero : ∀ {Y : C} (f : Y X) [_inst_3 : , f 0

An object is simple if monomorphisms into it are (exclusively) either isomorphisms or zero.

theorem category_theory.is_iso_of_mono_of_nonzero {C : Type u} {X Y : C} {f : X Y} (w : f 0) :

A nonzero monomorphism to a simple object is an isomorphism.

theorem category_theory.kernel_zero_of_nonzero_from_simple {C : Type u} {X Y : C} {f : X Y} (w : f 0) :
theorem category_theory.mono_to_simple_zero_of_not_iso {C : Type u} {X Y : C} {f : X Y} (w : false) :
f = 0
theorem category_theory.id_nonzero {C : Type u} (X : C)  :
𝟙 X 0
@[instance]
def category_theory.End.nontrivial {C : Type u} (X : C)  :

We don't want the definition of 'simple' to include the zero object, so we check that here.

theorem category_theory.simple_of_cosimple {C : Type u} (X : C) (h : ∀ {Z : C} (f : X Z) [_inst_3 : , f 0) :

In an abelian category, an object satisfying the dual of the definition of a simple object is simple.

theorem category_theory.is_iso_of_epi_of_nonzero {C : Type u} {X Y : C} {f : X Y} (w : f 0) :

A nonzero epimorphism from a simple object is an isomorphism.

theorem category_theory.cokernel_zero_of_nonzero_to_simple {C : Type u} {X Y : C} {f : X Y} (w : f 0) :
theorem category_theory.epi_from_simple_zero_of_not_iso {C : Type u} {X Y : C} {f : X Y} (w : false) :
f = 0