# Schur's lemma #

We first prove the part of Schur's Lemma that holds in any preadditive category with kernels, that any nonzero morphism between simple objects is an isomorphism.

Second, we prove Schur's lemma for 𝕜-linear categories with finite dimensional hom spaces, over an algebraically closed field 𝕜: the hom space X ⟶ Y between simple objects X and Y is at most one dimensional, and is 1-dimensional iff X and Y are isomorphic.

## Future work #

It might be nice to provide a division_ring instance on End X when X is simple. This is an easy consequence of the results here, but may take some care setting up usable instances.

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

The part of Schur's lemma that holds in any preadditive category with kernels: that a nonzero morphism between simple objects is an isomorphism.

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

As a corollary of Schur's lemma for preadditive categories, any morphism between simple objects is (exclusively) either an isomorphism or zero.

theorem category_theory.finrank_hom_simple_simple_eq_zero_of_not_iso {C : Type u} (𝕜 : Type u_1) [field 𝕜] {X Y : C} (h : (X Y)false) :
(X Y) = 0

Part of Schur's lemma for 𝕜-linear categories: the hom space between two non-isomorphic simple objects is 0-dimensional.

theorem distrib_mul_action.ext {M : Type u_9} {A : Type u_10} {_inst_1 : monoid M} {_inst_2 : add_monoid A} (x y : A)  :
x = y
theorem module.ext {R : Type u} {M : Type v} {_inst_1 : semiring R} {_inst_2 : add_comm_monoid M} (x y : M)  :
x = y
theorem distrib_mul_action.ext_iff {M : Type u_9} {A : Type u_10} {_inst_1 : monoid M} {_inst_2 : add_monoid A} (x y : A) :
theorem add_comm_group.ext {G : Type u} (x y : add_comm_group G)  :
x = y
theorem mul_action.ext {α : Type u_9} {β : Type u_10} {_inst_1 : monoid α} (x y : β)  :
x = y
theorem mul_action.ext_iff {α : Type u_9} {β : Type u_10} {_inst_1 : monoid α} (x y : β) :
theorem has_scalar.ext {M : Type u_9} {α : Type u_10} (x y : α)  :
x = y
theorem module.ext_iff {R : Type u} {M : Type v} {_inst_1 : semiring R} {_inst_2 : add_comm_monoid M} (x y : M) :
theorem has_scalar.ext_iff {M : Type u_9} {α : Type u_10} (x y : α) :
theorem category_theory.finrank_endomorphism_eq_one {C : Type u} (𝕜 : Type u_1) [field 𝕜] {X : C} (is_iso_iff_nonzero : ∀ (f : X X), f 0) [I : (X X)] :
(X X) = 1

An auxiliary lemma for Schur's lemma.

If X ⟶ X is finite dimensional, and every nonzero endomorphism is invertible, then X ⟶ X is 1-dimensional.

theorem category_theory.finrank_endomorphism_simple_eq_one {C : Type u} (𝕜 : Type u_1) [field 𝕜] (X : C) [I : (X X)] :
(X X) = 1

Schur's lemma for endomorphisms in 𝕜-linear categories.

theorem category_theory.endomorphism_simple_eq_smul_id {C : Type u} (𝕜 : Type u_1) [field 𝕜] {X : C} [I : (X X)] (f : X X) :
∃ (c : 𝕜), c 𝟙 X = f
theorem category_theory.finrank_hom_simple_simple_le_one {C : Type u} (𝕜 : Type u_1) [field 𝕜] (X Y : C) [∀ (X Y : C), (X Y)]  :
(X Y) 1

Schur's lemma for 𝕜-linear categories: if hom spaces are finite dimensional, then the hom space between simples is at most 1-dimensional.

See finrank_hom_simple_simple_eq_one_iff and finrank_hom_simple_simple_eq_zero_iff below for the refinements when we know whether or not the simples are isomorphic.

theorem category_theory.finrank_hom_simple_simple_eq_one_iff {C : Type u} (𝕜 : Type u_1) [field 𝕜] (X Y : C) [∀ (X Y : C), (X Y)]  :
(X Y) = 1 nonempty (X Y)
theorem category_theory.finrank_hom_simple_simple_eq_zero_iff {C : Type u} (𝕜 : Type u_1) [field 𝕜] (X Y : C) [∀ (X Y : C), (X Y)]  :
(X Y) = 0 ¬nonempty (X Y)