Theorem: Algebra.trace_surjective
File: Mathlib/RingTheory/Trace/Basic.lean

Proof steps:
state_before: R : Type u_1
S : Type u_2
T : Type u_3
inst✝¹⁵ : CommRing R
inst✝¹⁴ : CommRing S
inst✝¹³ : CommRing T
inst✝¹² : Algebra R S
inst✝¹¹ : Algebra R T
K : Type u_4
L : Type u_5
inst✝¹⁰ : Field K
inst✝⁹ : Field L
inst✝⁸ : Algebra K L
ι κ : Type w
inst✝⁷ : Fintype ι
F : Type u_6
inst✝⁶ : Field F
inst✝⁵ : Algebra R L
inst✝⁴ : Algebra L F
inst✝³ : Algebra R F
inst✝² : IsScalarTower R L F
pb : PowerBasis K L
inst✝¹ : FiniteDimensional K L
inst✝ : Algebra.IsSeparable K L
⊢ Function.Surjective ⇑(trace K L)
state_after: R : Type u_1
S : Type u_2
T : Type u_3
inst✝¹⁵ : CommRing R
inst✝¹⁴ : CommRing S
inst✝¹³ : CommRing T
inst✝¹² : Algebra R S
inst✝¹¹ : Algebra R T
K : Type u_4
L : Type u_5
inst✝¹⁰ : Field K
inst✝⁹ : Field L
inst✝⁸ : Algebra K L
ι κ : Type w
inst✝⁷ : Fintype ι
F : Type u_6
inst✝⁶ : Field F
inst✝⁵ : Algebra R L
inst✝⁴ : Algebra L F
inst✝³ : Algebra R F
inst✝² : IsScalarTower R L F
pb : PowerBasis K L
inst✝¹ : FiniteDimensional K L
inst✝ : Algebra.IsSeparable K L
⊢ range (trace K L) = ⊤
tactic: rw [← LinearMap.range_eq_top]
state_before: R : Type u_1
S : Type u_2
T : Type u_3
inst✝¹⁵ : CommRing R
inst✝¹⁴ : CommRing S
inst✝¹³ : CommRing T
inst✝¹² : Algebra R S
inst✝¹¹ : Algebra R T
K : Type u_4
L : Type u_5
inst✝¹⁰ : Field K
inst✝⁹ : Field L
inst✝⁸ : Algebra K L
ι κ : Type w
inst✝⁷ : Fintype ι
F : Type u_6
inst✝⁶ : Field F
inst✝⁵ : Algebra R L
inst✝⁴ : Algebra L F
inst✝³ : Algebra R F
inst✝² : IsScalarTower R L F
pb : PowerBasis K L
inst✝¹ : FiniteDimensional K L
inst✝ : Algebra.IsSeparable K L
⊢ range (trace K L) = ⊤
state_after: R : Type u_1
S : Type u_2
T : Type u_3
inst✝¹⁵ : CommRing R
inst✝¹⁴ : CommRing S
inst✝¹³ : CommRing T
inst✝¹² : Algebra R S
inst✝¹¹ : Algebra R T
K : Type u_4
L : Type u_5
inst✝¹⁰ : Field K
inst✝⁹ : Field L
inst✝⁸ : Algebra K L
ι κ : Type w
inst✝⁷ : Fintype ι
F : Type u_6
inst✝⁶ : Field F
inst✝⁵ : Algebra R L
inst✝⁴ : Algebra L F
inst✝³ : Algebra R F
inst✝² : IsScalarTower R L F
pb : PowerBasis K L
inst✝¹ : FiniteDimensional K L
inst✝ : Algebra.IsSeparable K L
⊢ ¬range (trace K L) = ⊥
tactic: apply (IsSimpleOrder.eq_bot_or_eq_top (α := Ideal K) _).resolve_left
state_before: R : Type u_1
S : Type u_2
T : Type u_3
inst✝¹⁵ : CommRing R
inst✝¹⁴ : CommRing S
inst✝¹³ : CommRing T
inst✝¹² : Algebra R S
inst✝¹¹ : Algebra R T
K : Type u_4
L : Type u_5
inst✝¹⁰ : Field K
inst✝⁹ : Field L
inst✝⁸ : Algebra K L
ι κ : Type w
inst✝⁷ : Fintype ι
F : Type u_6
inst✝⁶ : Field F
inst✝⁵ : Algebra R L
inst✝⁴ : Algebra L F
inst✝³ : Algebra R F
inst✝² : IsScalarTower R L F
pb : PowerBasis K L
inst✝¹ : FiniteDimensional K L
inst✝ : Algebra.IsSeparable K L
⊢ ¬range (trace K L) = ⊥
state_after: R : Type u_1
S : Type u_2
T : Type u_3
inst✝¹⁵ : CommRing R
inst✝¹⁴ : CommRing S
inst✝¹³ : CommRing T
inst✝¹² : Algebra R S
inst✝¹¹ : Algebra R T
K : Type u_4
L : Type u_5
inst✝¹⁰ : Field K
inst✝⁹ : Field L
inst✝⁸ : Algebra K L
ι κ : Type w
inst✝⁷ : Fintype ι
F : Type u_6
inst✝⁶ : Field F
inst✝⁵ : Algebra R L
inst✝⁴ : Algebra L F
inst✝³ : Algebra R F
inst✝² : IsScalarTower R L F
pb : PowerBasis K L
inst✝¹ : FiniteDimensional K L
inst✝ : Algebra.IsSeparable K L
⊢ ¬trace K L = 0
tactic: rw [LinearMap.range_eq_bot]
state_before: R : Type u_1
S : Type u_2
T : Type u_3
inst✝¹⁵ : CommRing R
inst✝¹⁴ : CommRing S
inst✝¹³ : CommRing T
inst✝¹² : Algebra R S
inst✝¹¹ : Algebra R T
K : Type u_4
L : Type u_5
inst✝¹⁰ : Field K
inst✝⁹ : Field L
inst✝⁸ : Algebra K L
ι κ : Type w
inst✝⁷ : Fintype ι
F : Type u_6
inst✝⁶ : Field F
inst✝⁵ : Algebra R L
inst✝⁴ : Algebra L F
inst✝³ : Algebra R F
inst✝² : IsScalarTower R L F
pb : PowerBasis K L
inst✝¹ : FiniteDimensional K L
inst✝ : Algebra.IsSeparable K L
⊢ ¬trace K L = 0
state_after: no goals
tactic: exact Algebra.trace_ne_zero K L