Theorem: separableClosure.isPurelyInseparable
File: Mathlib/FieldTheory/PurelyInseparable.lean

Proof steps:
state_before: F : Type u
E : Type v
inst✝⁵ : Field F
inst✝⁴ : Field E
inst✝³ : Algebra F E
K : Type w
inst✝² : Field K
inst✝¹ : Algebra F K
inst✝ : Algebra.IsAlgebraic F E
x : E
⊢ IsIntegral (↥(separableClosure F E)) x ∧
    (IsSeparable (↥(separableClosure F E)) x → x ∈ (algebraMap (↥(separableClosure F E)) E).range)
state_after: F : Type u
E : Type v
inst✝⁵ : Field F
inst✝⁴ : Field E
inst✝³ : Algebra F E
K : Type w
inst✝² : Field K
inst✝¹ : Algebra F K
inst✝ : Algebra.IsAlgebraic F E
x : E
L : IntermediateField F E := separableClosure F E
⊢ IsIntegral (↥L) x ∧ (IsSeparable (↥L) x → x ∈ (algebraMap (↥L) E).range)
tactic: set L := separableClosure F E
state_before: F : Type u
E : Type v
inst✝⁵ : Field F
inst✝⁴ : Field E
inst✝³ : Algebra F E
K : Type w
inst✝² : Field K
inst✝¹ : Algebra F K
inst✝ : Algebra.IsAlgebraic F E
x : E
L : IntermediateField F E := separableClosure F E
⊢ IsIntegral (↥L) x ∧ (IsSeparable (↥L) x → x ∈ (algebraMap (↥L) E).range)
state_after: F : Type u
E : Type v
inst✝⁵ : Field F
inst✝⁴ : Field E
inst✝³ : Algebra F E
K : Type w
inst✝² : Field K
inst✝¹ : Algebra F K
inst✝ : Algebra.IsAlgebraic F E
x : E
L : IntermediateField F E := separableClosure F E
h : IsSeparable (↥L) x
⊢ x ∈ (algebraMap (↥L) E).range
tactic: refine ⟨(IsAlgebraic.tower_top L (Algebra.IsAlgebraic.isAlgebraic (R := F) x)).isIntegral,
    fun h ↦ ?_⟩
state_before: F : Type u
E : Type v
inst✝⁵ : Field F
inst✝⁴ : Field E
inst✝³ : Algebra F E
K : Type w
inst✝² : Field K
inst✝¹ : Algebra F K
inst✝ : Algebra.IsAlgebraic F E
x : E
L : IntermediateField F E := separableClosure F E
h : IsSeparable (↥L) x
⊢ x ∈ (algebraMap (↥L) E).range
state_after: F : Type u
E : Type v
inst✝⁵ : Field F
inst✝⁴ : Field E
inst✝³ : Algebra F E
K : Type w
inst✝² : Field K
inst✝¹ : Algebra F K
inst✝ : Algebra.IsAlgebraic F E
x : E
L : IntermediateField F E := separableClosure F E
h : IsSeparable (↥L) x
this : Algebra.IsSeparable ↥L ↥(↥L)⟮x⟯
⊢ x ∈ (algebraMap (↥L) E).range
tactic: haveI := (isSeparable_adjoin_simple_iff_isSeparable L E).2 h
state_before: F : Type u
E : Type v
inst✝⁵ : Field F
inst✝⁴ : Field E
inst✝³ : Algebra F E
K : Type w
inst✝² : Field K
inst✝¹ : Algebra F K
inst✝ : Algebra.IsAlgebraic F E
x : E
L : IntermediateField F E := separableClosure F E
h : IsSeparable (↥L) x
this : Algebra.IsSeparable ↥L ↥(↥L)⟮x⟯
⊢ x ∈ (algebraMap (↥L) E).range
state_after: F : Type u
E : Type v
inst✝⁵ : Field F
inst✝⁴ : Field E
inst✝³ : Algebra F E
K : Type w
inst✝² : Field K
inst✝¹ : Algebra F K
inst✝ : Algebra.IsAlgebraic F E
x : E
L : IntermediateField F E := separableClosure F E
h : IsSeparable (↥L) x
this✝ : Algebra.IsSeparable ↥L ↥(↥L)⟮x⟯
this : Algebra.IsSeparable F ↥(restrictScalars F (↥L)⟮x⟯)
⊢ x ∈ (algebraMap (↥L) E).range
tactic: haveI : Algebra.IsSeparable F (restrictScalars F L⟮x⟯) := Algebra.IsSeparable.trans F L L⟮x⟯
state_before: F : Type u
E : Type v
inst✝⁵ : Field F
inst✝⁴ : Field E
inst✝³ : Algebra F E
K : Type w
inst✝² : Field K
inst✝¹ : Algebra F K
inst✝ : Algebra.IsAlgebraic F E
x : E
L : IntermediateField F E := separableClosure F E
h : IsSeparable (↥L) x
this✝ : Algebra.IsSeparable ↥L ↥(↥L)⟮x⟯
this : Algebra.IsSeparable F ↥(restrictScalars F (↥L)⟮x⟯)
⊢ x ∈ (algebraMap (↥L) E).range
state_after: F : Type u
E : Type v
inst✝⁵ : Field F
inst✝⁴ : Field E
inst✝³ : Algebra F E
K : Type w
inst✝² : Field K
inst✝¹ : Algebra F K
inst✝ : Algebra.IsAlgebraic F E
x : E
L : IntermediateField F E := separableClosure F E
h : IsSeparable (↥L) x
this✝ : Algebra.IsSeparable ↥L ↥(↥L)⟮x⟯
this : Algebra.IsSeparable F ↥(restrictScalars F (↥L)⟮x⟯)
hx : x ∈ restrictScalars F (↥L)⟮x⟯
⊢ x ∈ (algebraMap (↥L) E).range
tactic: have hx : x ∈ restrictScalars F L⟮x⟯ := mem_adjoin_simple_self _ x
state_before: F : Type u
E : Type v
inst✝⁵ : Field F
inst✝⁴ : Field E
inst✝³ : Algebra F E
K : Type w
inst✝² : Field K
inst✝¹ : Algebra F K
inst✝ : Algebra.IsAlgebraic F E
x : E
L : IntermediateField F E := separableClosure F E
h : IsSeparable (↥L) x
this✝ : Algebra.IsSeparable ↥L ↥(↥L)⟮x⟯
this : Algebra.IsSeparable F ↥(restrictScalars F (↥L)⟮x⟯)
hx : x ∈ restrictScalars F (↥L)⟮x⟯
⊢ x ∈ (algebraMap (↥L) E).range
state_after: no goals
tactic: exact ⟨⟨x, mem_separableClosure_iff.2 <| isSeparable_of_mem_isSeparable F E hx⟩, rfl⟩