Theorem: isPurelyInseparable_of_finSepDegree_eq_one
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
hdeg : finSepDegree F E = 1
⊢ IsPurelyInseparable F E
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
hdeg : finSepDegree F E = 1
⊢ ∀ (x : E), IsIntegral F x ∧ (IsSeparable F x → x ∈ (algebraMap F E).range)
tactic: rw [isPurelyInseparable_iff]
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
hdeg : finSepDegree F E = 1
⊢ ∀ (x : E), IsIntegral F x ∧ (IsSeparable F x → x ∈ (algebraMap F 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
hdeg : finSepDegree F E = 1
x : E
hsep : IsSeparable F x
⊢ x ∈ (algebraMap F E).range
tactic: refine fun x ↦ ⟨Algebra.IsIntegral.isIntegral x, fun hsep ↦ ?_⟩
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
hdeg : finSepDegree F E = 1
x : E
hsep : IsSeparable F x
⊢ x ∈ (algebraMap F 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
hdeg : finSepDegree F E = 1
x : E
hsep : IsSeparable F x
this : Algebra.IsAlgebraic (↥F⟮x⟯) E
⊢ x ∈ (algebraMap F E).range
tactic: have : Algebra.IsAlgebraic F⟮x⟯ E := Algebra.IsAlgebraic.tower_top (K := F) F⟮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
hdeg : finSepDegree F E = 1
x : E
hsep : IsSeparable F x
this : Algebra.IsAlgebraic (↥F⟮x⟯) E
⊢ x ∈ (algebraMap F 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
hdeg : finSepDegree F E = 1
x : E
hsep : IsSeparable F x
this✝ : Algebra.IsAlgebraic (↥F⟮x⟯) E
this : finSepDegree F ↥F⟮x⟯ * finSepDegree (↥F⟮x⟯) E = finSepDegree F E
⊢ x ∈ (algebraMap F E).range
tactic: have := finSepDegree_mul_finSepDegree_of_isAlgebraic F F⟮x⟯ 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
hdeg : finSepDegree F E = 1
x : E
hsep : IsSeparable F x
this✝ : Algebra.IsAlgebraic (↥F⟮x⟯) E
this : finSepDegree F ↥F⟮x⟯ * finSepDegree (↥F⟮x⟯) E = finSepDegree F E
⊢ x ∈ (algebraMap F 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
hdeg : finSepDegree F E = 1
x : E
hsep : IsSeparable F x
this✝ : Algebra.IsAlgebraic (↥F⟮x⟯) E
this : F⟮x⟯ = ⊥ ∧ finSepDegree (↥F⟮x⟯) E = 1
⊢ x ∈ (algebraMap F E).range
tactic: rw [hdeg, mul_eq_one, (finSepDegree_adjoin_simple_eq_finrank_iff F E x
      (Algebra.IsAlgebraic.isAlgebraic x)).2 hsep,
    IntermediateField.finrank_eq_one_iff] at this
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
hdeg : finSepDegree F E = 1
x : E
hsep : IsSeparable F x
this✝ : Algebra.IsAlgebraic (↥F⟮x⟯) E
this : F⟮x⟯ = ⊥ ∧ finSepDegree (↥F⟮x⟯) E = 1
⊢ x ∈ (algebraMap F E).range
state_after: no goals
tactic: simpa only [this.1] using mem_adjoin_simple_self F x