Theorem: IntermediateField.AdjoinSimple.trace_gen_eq_zero
File: Mathlib/RingTheory/Trace.lean

tactic: rw [trace_eq_zero_of_not_exists_basis, LinearMap.zero_apply]
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 K S
inst✝ : Algebra K F
x : L
hx : ¬IsIntegral K x
⊢ (Algebra.trace K ↥K⟮x⟯) (gen K x) = 0
state_after: case h
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 K S
inst✝ : Algebra K F
x : L
hx : ¬IsIntegral K x
⊢ ¬∃ s, Nonempty (Basis { x_1 // x_1 ∈ s } K ↥K⟮x⟯)

tactic: contrapose! hx
state_before: case h
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 K S
inst✝ : Algebra K F
x : L
hx : ¬IsIntegral K x
⊢ ¬∃ s, Nonempty (Basis { x_1 // x_1 ∈ s } K ↥K⟮x⟯)
state_after: case h
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 K S
inst✝ : Algebra K F
x : L
hx : ∃ s, Nonempty (Basis { x_1 // x_1 ∈ s } K ↥K⟮x⟯)
⊢ IsIntegral K x

tactic: obtain ⟨s, ⟨b⟩⟩ := hx
state_before: case h
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 K S
inst✝ : Algebra K F
x : L
hx : ∃ s, Nonempty (Basis { x_1 // x_1 ∈ s } K ↥K⟮x⟯)
⊢ IsIntegral K x
state_after: case h.intro.intro
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 K S
inst✝ : Algebra K F
x : L
s : Finset ↥K⟮x⟯
b : Basis { x_1 // x_1 ∈ s } K ↥K⟮x⟯
⊢ IsIntegral K x

tactic: refine .of_mem_of_fg K⟮x⟯.toSubalgebra ?_ x ?_
state_before: case h.intro.intro
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 K S
inst✝ : Algebra K F
x : L
s : Finset ↥K⟮x⟯
b : Basis { x_1 // x_1 ∈ s } K ↥K⟮x⟯
⊢ IsIntegral K x
state_after: case h.intro.intro.refine_1
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 K S
inst✝ : Algebra K F
x : L
s : Finset ↥K⟮x⟯
b : Basis { x_1 // x_1 ∈ s } K ↥K⟮x⟯
⊢ (Subalgebra.toSubmodule K⟮x⟯.toSubalgebra).FG

case h.intro.intro.refine_2
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 K S
inst✝ : Algebra K F
x : L
s : Finset ↥K⟮x⟯
b : Basis { x_1 // x_1 ∈ s } K ↥K⟮x⟯
⊢ x ∈ K⟮x⟯.toSubalgebra

tactic: exact (Submodule.fg_iff_finiteDimensional _).mpr (FiniteDimensional.of_fintype_basis b)
state_before: case h.intro.intro.refine_1
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 K S
inst✝ : Algebra K F
x : L
s : Finset ↥K⟮x⟯
b : Basis { x_1 // x_1 ∈ s } K ↥K⟮x⟯
⊢ (Subalgebra.toSubmodule K⟮x⟯.toSubalgebra).FG
state_after: no goals

tactic: exact subset_adjoin K _ (Set.mem_singleton x)
state_before: case h.intro.intro.refine_2
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 K S
inst✝ : Algebra K F
x : L
s : Finset ↥K⟮x⟯
b : Basis { x_1 // x_1 ∈ s } K ↥K⟮x⟯
⊢ x ∈ K⟮x⟯.toSubalgebra
state_after: no goals