Theorem: CategoryTheory.finrank_hom_simple_simple_eq_zero_iff
File: Mathlib/CategoryTheory/Preadditive/Schur.lean

tactic: rw [← not_nonempty_iff, ← not_congr (finrank_hom_simple_simple_eq_one_iff 𝕜 X Y)]
state_before: C : Type u_3
inst✝⁹ : Category C
inst✝⁸ : Preadditive C
𝕜 : Type u_1
inst✝⁷ : Field 𝕜
inst✝⁶ : IsAlgClosed 𝕜
inst✝⁵ : Linear 𝕜 C
inst✝⁴ : HasKernels C
X Y : C
inst✝³ : FiniteDimensional 𝕜 (X ⟶ X)
inst✝² : FiniteDimensional 𝕜 (X ⟶ Y)
inst✝¹ : Simple X
inst✝ : Simple Y
⊢ finrank 𝕜 (X ⟶ Y) = 0 ↔ IsEmpty (X ≅ Y)

tactic: refine' ⟨fun h => by rw [h]; simp, fun h => _⟩
state_before: C : Type u_3
inst✝⁹ : Category C
inst✝⁸ : Preadditive C
𝕜 : Type u_1
inst✝⁷ : Field 𝕜
inst✝⁶ : IsAlgClosed 𝕜
inst✝⁵ : Linear 𝕜 C
inst✝⁴ : HasKernels C
X Y : C
inst✝³ : FiniteDimensional 𝕜 (X ⟶ X)
inst✝² : FiniteDimensional 𝕜 (X ⟶ Y)
inst✝¹ : Simple X
inst✝ : Simple Y
⊢ finrank 𝕜 (X ⟶ Y) = 0 ↔ ¬finrank 𝕜 (X ⟶ Y) = 1

tactic: have := finrank_hom_simple_simple_le_one 𝕜 X Y
state_before: C : Type u_3
inst✝⁹ : Category C
inst✝⁸ : Preadditive C
𝕜 : Type u_1
inst✝⁷ : Field 𝕜
inst✝⁶ : IsAlgClosed 𝕜
inst✝⁵ : Linear 𝕜 C
inst✝⁴ : HasKernels C
X Y : C
inst✝³ : FiniteDimensional 𝕜 (X ⟶ X)
inst✝² : FiniteDimensional 𝕜 (X ⟶ Y)
inst✝¹ : Simple X
inst✝ : Simple Y
h : ¬finrank 𝕜 (X ⟶ Y) = 1
⊢ finrank 𝕜 (X ⟶ Y) = 0

tactic: interval_cases finrank 𝕜 (X ⟶ Y)
state_before: C : Type u_3
inst✝⁹ : Category C
inst✝⁸ : Preadditive C
𝕜 : Type u_1
inst✝⁷ : Field 𝕜
inst✝⁶ : IsAlgClosed 𝕜
inst✝⁵ : Linear 𝕜 C
inst✝⁴ : HasKernels C
X Y : C
inst✝³ : FiniteDimensional 𝕜 (X ⟶ X)
inst✝² : FiniteDimensional 𝕜 (X ⟶ Y)
inst✝¹ : Simple X
inst✝ : Simple Y
h : ¬finrank 𝕜 (X ⟶ Y) = 1
this : finrank 𝕜 (X ⟶ Y) ≤ 1
⊢ finrank 𝕜 (X ⟶ Y) = 0

tactic: . rfl
state_before: case «0»
C : Type u_3
inst✝⁹ : Category C
inst✝⁸ : Preadditive C
𝕜 : Type u_1
inst✝⁷ : Field 𝕜
inst✝⁶ : IsAlgClosed 𝕜
inst✝⁵ : Linear 𝕜 C
inst✝⁴ : HasKernels C
X Y : C
inst✝³ : FiniteDimensional 𝕜 (X ⟶ X)
inst✝² : FiniteDimensional 𝕜 (X ⟶ Y)
inst✝¹ : Simple X
inst✝ : Simple Y
h : ¬0 = 1
this : 0 ≤ 1
⊢ 0 = 0

case «1»
C : Type u_3
inst✝⁹ : Category C
inst✝⁸ : Preadditive C
𝕜 : Type u_1
inst✝⁷ : Field 𝕜
inst✝⁶ : IsAlgClosed 𝕜
inst✝⁵ : Linear 𝕜 C
inst✝⁴ : HasKernels C
X Y : C
inst✝³ : FiniteDimensional 𝕜 (X ⟶ X)
inst✝² : FiniteDimensional 𝕜 (X ⟶ Y)
inst✝¹ : Simple X
inst✝ : Simple Y
h : ¬1 = 1
this : 1 ≤ 1
⊢ 1 = 0

tactic: rw [h]
state_before: C : Type u_3
inst✝⁹ : Category C
inst✝⁸ : Preadditive C
𝕜 : Type u_1
inst✝⁷ : Field 𝕜
inst✝⁶ : IsAlgClosed 𝕜
inst✝⁵ : Linear 𝕜 C
inst✝⁴ : HasKernels C
X Y : C
inst✝³ : FiniteDimensional 𝕜 (X ⟶ X)
inst✝² : FiniteDimensional 𝕜 (X ⟶ Y)
inst✝¹ : Simple X
inst✝ : Simple Y
h : finrank 𝕜 (X ⟶ Y) = 0
⊢ ¬finrank 𝕜 (X ⟶ Y) = 1

tactic: simp
state_before: C : Type u_3
inst✝⁹ : Category C
inst✝⁸ : Preadditive C
𝕜 : Type u_1
inst✝⁷ : Field 𝕜
inst✝⁶ : IsAlgClosed 𝕜
inst✝⁵ : Linear 𝕜 C
inst✝⁴ : HasKernels C
X Y : C
inst✝³ : FiniteDimensional 𝕜 (X ⟶ X)
inst✝² : FiniteDimensional 𝕜 (X ⟶ Y)
inst✝¹ : Simple X
inst✝ : Simple Y
h : finrank 𝕜 (X ⟶ Y) = 0
⊢ ¬0 = 1

tactic: rfl
state_before: case «0»
C : Type u_3
inst✝⁹ : Category C
inst✝⁸ : Preadditive C
𝕜 : Type u_1
inst✝⁷ : Field 𝕜
inst✝⁶ : IsAlgClosed 𝕜
inst✝⁵ : Linear 𝕜 C
inst✝⁴ : HasKernels C
X Y : C
inst✝³ : FiniteDimensional 𝕜 (X ⟶ X)
inst✝² : FiniteDimensional 𝕜 (X ⟶ Y)
inst✝¹ : Simple X
inst✝ : Simple Y
h : ¬0 = 1
this : 0 ≤ 1
⊢ 0 = 0

tactic: exact False.elim (h rfl)
state_before: case «1»
C : Type u_3
inst✝⁹ : Category C
inst✝⁸ : Preadditive C
𝕜 : Type u_1
inst✝⁷ : Field 𝕜
inst✝⁶ : IsAlgClosed 𝕜
inst✝⁵ : Linear 𝕜 C
inst✝⁴ : HasKernels C
X Y : C
inst✝³ : FiniteDimensional 𝕜 (X ⟶ X)
inst✝² : FiniteDimensional 𝕜 (X ⟶ Y)
inst✝¹ : Simple X
inst✝ : Simple Y
h : ¬1 = 1
this : 1 ≤ 1
⊢ 1 = 0