Theorem: Field.finSepDegree_eq_finrank_of_isSeparable
File: Mathlib/FieldTheory/SeparableDegree.lean

tactic: wlog hfd : FiniteDimensional F E generalizing E with 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✝ : IsSeparable F E
⊢ finSepDegree F E = finrank F E
state_after: case inr
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✝ : IsSeparable F E
H :
  ∀ (E : Type v) [inst : Field E] [inst_1 : Algebra F E] [inst_2 : IsSeparable F E],
    FiniteDimensional F E → finSepDegree F E = finrank F E
hfd : ¬FiniteDimensional F E
⊢ finSepDegree F E = finrank F E

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
E : Type v
inst✝² : Field E
inst✝¹ : Algebra F E
inst✝ : IsSeparable F E
hfd : FiniteDimensional F E
⊢ finSepDegree F E = finrank F E

tactic: rw [← finSepDegree_top F, ← finrank_top 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
E : Type v
inst✝² : Field E
inst✝¹ : Algebra F E
inst✝ : IsSeparable F E
hfd : FiniteDimensional F E
⊢ finSepDegree F E = finrank 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
E : Type v
inst✝² : Field E
inst✝¹ : Algebra F E
inst✝ : IsSeparable F E
hfd : FiniteDimensional F E
⊢ finSepDegree F ↥⊤ = finrank F ↥⊤

tactic: refine induction_on_adjoin (fun K : IntermediateField F E ↦ finSepDegree F K = finrank F K)
  (by simp_rw [finSepDegree_bot, IntermediateField.finrank_bot]) (fun L x 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
E : Type v
inst✝² : Field E
inst✝¹ : Algebra F E
inst✝ : IsSeparable F E
hfd : FiniteDimensional F E
⊢ finSepDegree F ↥⊤ = finrank F ↥⊤
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
E : Type v
inst✝² : Field E
inst✝¹ : Algebra F E
inst✝ : IsSeparable F E
hfd : FiniteDimensional F E
L : IntermediateField F E
x : E
h : (fun K => finSepDegree F ↥K = finrank F ↥K) L
⊢ (fun K => finSepDegree F ↥K = finrank F ↥K) (restrictScalars F (↥L)⟮x⟯)

tactic: simp only at 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
E : Type v
inst✝² : Field E
inst✝¹ : Algebra F E
inst✝ : IsSeparable F E
hfd : FiniteDimensional F E
L : IntermediateField F E
x : E
h : (fun K => finSepDegree F ↥K = finrank F ↥K) L
⊢ (fun K => finSepDegree F ↥K = finrank F ↥K) (restrictScalars F (↥L)⟮x⟯)
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
E : Type v
inst✝² : Field E
inst✝¹ : Algebra F E
inst✝ : IsSeparable F E
hfd : FiniteDimensional F E
L : IntermediateField F E
x : E
h : finSepDegree F ↥L = finrank F ↥L
⊢ finSepDegree F ↥(restrictScalars F (↥L)⟮x⟯) = finrank F ↥(restrictScalars F (↥L)⟮x⟯)

tactic: set M := 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
E : Type v
inst✝² : Field E
inst✝¹ : Algebra F E
inst✝ : IsSeparable F E
hfd : FiniteDimensional F E
L : IntermediateField F E
x : E
h : finSepDegree F ↥L = finrank F ↥L
heq : finSepDegree F ↥L * finSepDegree ↥L ↥(↥L)⟮x⟯ = finrank F ↥L * finrank ↥L ↥(↥L)⟮x⟯
⊢ finSepDegree F ↥(restrictScalars F (↥L)⟮x⟯) = finrank F ↥(restrictScalars F (↥L)⟮x⟯)
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
E : Type v
inst✝² : Field E
inst✝¹ : Algebra F E
inst✝ : IsSeparable F E
hfd : FiniteDimensional F E
L : IntermediateField F E
x : E
h : finSepDegree F ↥L = finrank F ↥L
M : IntermediateField (↥L) E := (↥L)⟮x⟯
heq : finSepDegree F ↥L * finSepDegree ↥L ↥M = finrank F ↥L * finrank ↥L ↥M
⊢ finSepDegree F ↥(restrictScalars F M) = finrank F ↥(restrictScalars F M)

tactic: have := Algebra.IsAlgebraic.of_finite L M
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
E : Type v
inst✝² : Field E
inst✝¹ : Algebra F E
inst✝ : IsSeparable F E
hfd : FiniteDimensional F E
L : IntermediateField F E
x : E
h : finSepDegree F ↥L = finrank F ↥L
M : IntermediateField (↥L) E := (↥L)⟮x⟯
heq : finSepDegree F ↥L * finSepDegree ↥L ↥M = finrank F ↥L * finrank ↥L ↥M
⊢ finSepDegree F ↥(restrictScalars F M) = finrank F ↥(restrictScalars F M)
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
E : Type v
inst✝² : Field E
inst✝¹ : Algebra F E
inst✝ : IsSeparable F E
hfd : FiniteDimensional F E
L : IntermediateField F E
x : E
h : finSepDegree F ↥L = finrank F ↥L
M : IntermediateField (↥L) E := (↥L)⟮x⟯
heq : finSepDegree F ↥L * finSepDegree ↥L ↥M = finrank F ↥L * finrank ↥L ↥M
this : Algebra.IsAlgebraic ↥L ↥M
⊢ finSepDegree F ↥(restrictScalars F M) = finrank F ↥(restrictScalars F M)

tactic: rwa [finSepDegree_mul_finSepDegree_of_isAlgebraic F L M,
  FiniteDimensional.finrank_mul_finrank F L M] at heq
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
E : Type v
inst✝² : Field E
inst✝¹ : Algebra F E
inst✝ : IsSeparable F E
hfd : FiniteDimensional F E
L : IntermediateField F E
x : E
h : finSepDegree F ↥L = finrank F ↥L
M : IntermediateField (↥L) E := (↥L)⟮x⟯
heq : finSepDegree F ↥L * finSepDegree ↥L ↥M = finrank F ↥L * finrank ↥L ↥M
this : Algebra.IsAlgebraic ↥L ↥M
⊢ finSepDegree F ↥(restrictScalars F M) = finrank F ↥(restrictScalars F M)
state_after: no goals

tactic: rw [finrank_of_infinite_dimensional hfd]
state_before: case inr
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✝ : IsSeparable F E
H :
  ∀ (E : Type v) [inst : Field E] [inst_1 : Algebra F E] [inst_2 : IsSeparable F E],
    FiniteDimensional F E → finSepDegree F E = finrank F E
hfd : ¬FiniteDimensional F E
⊢ finSepDegree F E = finrank F E
state_after: case inr
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✝ : IsSeparable F E
H :
  ∀ (E : Type v) [inst : Field E] [inst_1 : Algebra F E] [inst_2 : IsSeparable F E],
    FiniteDimensional F E → finSepDegree F E = finrank F E
hfd : ¬FiniteDimensional F E
⊢ finSepDegree F E = 0

tactic: have halg := IsSeparable.isAlgebraic F E
state_before: case inr
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✝ : IsSeparable F E
H :
  ∀ (E : Type v) [inst : Field E] [inst_1 : Algebra F E] [inst_2 : IsSeparable F E],
    FiniteDimensional F E → finSepDegree F E = finrank F E
hfd : ¬FiniteDimensional F E
⊢ finSepDegree F E = 0
state_after: case inr
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✝ : IsSeparable F E
H :
  ∀ (E : Type v) [inst : Field E] [inst_1 : Algebra F E] [inst_2 : IsSeparable F E],
    FiniteDimensional F E → finSepDegree F E = finrank F E
hfd : ¬FiniteDimensional F E
halg : Algebra.IsAlgebraic F E
⊢ finSepDegree F E = 0

tactic: obtain ⟨L, h, h'⟩ := exists_lt_finrank_of_infinite_dimensional hfd (finSepDegree F E)
state_before: case inr
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✝ : IsSeparable F E
H :
  ∀ (E : Type v) [inst : Field E] [inst_1 : Algebra F E] [inst_2 : IsSeparable F E],
    FiniteDimensional F E → finSepDegree F E = finrank F E
hfd : ¬FiniteDimensional F E
halg : Algebra.IsAlgebraic F E
⊢ finSepDegree F E = 0
state_after: case inr.intro.intro
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✝ : IsSeparable F E
H :
  ∀ (E : Type v) [inst : Field E] [inst_1 : Algebra F E] [inst_2 : IsSeparable F E],
    FiniteDimensional F E → finSepDegree F E = finrank F E
hfd : ¬FiniteDimensional F E
halg : Algebra.IsAlgebraic F E
L : IntermediateField F E
h : FiniteDimensional F ↥L
h' : finSepDegree F E < finrank F ↥L
⊢ finSepDegree F E = 0

tactic: have : IsSeparable F L := isSeparable_tower_bot_of_isSeparable F L E
state_before: case inr.intro.intro
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✝ : IsSeparable F E
H :
  ∀ (E : Type v) [inst : Field E] [inst_1 : Algebra F E] [inst_2 : IsSeparable F E],
    FiniteDimensional F E → finSepDegree F E = finrank F E
hfd : ¬FiniteDimensional F E
halg : Algebra.IsAlgebraic F E
L : IntermediateField F E
h : FiniteDimensional F ↥L
h' : finSepDegree F E < finrank F ↥L
⊢ finSepDegree F E = 0
state_after: case inr.intro.intro
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✝ : IsSeparable F E
H :
  ∀ (E : Type v) [inst : Field E] [inst_1 : Algebra F E] [inst_2 : IsSeparable F E],
    FiniteDimensional F E → finSepDegree F E = finrank F E
hfd : ¬FiniteDimensional F E
halg : Algebra.IsAlgebraic F E
L : IntermediateField F E
h : FiniteDimensional F ↥L
h' : finSepDegree F E < finrank F ↥L
this : IsSeparable F ↥L
⊢ finSepDegree F E = 0

tactic: have := (halg.tower_top L)
state_before: case inr.intro.intro
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✝ : IsSeparable F E
H :
  ∀ (E : Type v) [inst : Field E] [inst_1 : Algebra F E] [inst_2 : IsSeparable F E],
    FiniteDimensional F E → finSepDegree F E = finrank F E
hfd : ¬FiniteDimensional F E
halg : Algebra.IsAlgebraic F E
L : IntermediateField F E
h : FiniteDimensional F ↥L
h' : finSepDegree F E < finrank F ↥L
this : IsSeparable F ↥L
⊢ finSepDegree F E = 0
state_after: case inr.intro.intro
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✝ : IsSeparable F E
H :
  ∀ (E : Type v) [inst : Field E] [inst_1 : Algebra F E] [inst_2 : IsSeparable F E],
    FiniteDimensional F E → finSepDegree F E = finrank F E
hfd : ¬FiniteDimensional F E
halg : Algebra.IsAlgebraic F E
L : IntermediateField F E
h : FiniteDimensional F ↥L
h' : finSepDegree F E < finrank F ↥L
this✝ : IsSeparable F ↥L
this : Algebra.IsAlgebraic (↥L) E
⊢ finSepDegree F E = 0

tactic: have hd := finSepDegree_mul_finSepDegree_of_isAlgebraic F L E
state_before: case inr.intro.intro
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✝ : IsSeparable F E
H :
  ∀ (E : Type v) [inst : Field E] [inst_1 : Algebra F E] [inst_2 : IsSeparable F E],
    FiniteDimensional F E → finSepDegree F E = finrank F E
hfd : ¬FiniteDimensional F E
halg : Algebra.IsAlgebraic F E
L : IntermediateField F E
h : FiniteDimensional F ↥L
h' : finSepDegree F E < finrank F ↥L
this✝ : IsSeparable F ↥L
this : Algebra.IsAlgebraic (↥L) E
⊢ finSepDegree F E = 0
state_after: case inr.intro.intro
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✝ : IsSeparable F E
H :
  ∀ (E : Type v) [inst : Field E] [inst_1 : Algebra F E] [inst_2 : IsSeparable F E],
    FiniteDimensional F E → finSepDegree F E = finrank F E
hfd : ¬FiniteDimensional F E
halg : Algebra.IsAlgebraic F E
L : IntermediateField F E
h : FiniteDimensional F ↥L
h' : finSepDegree F E < finrank F ↥L
this✝ : IsSeparable F ↥L
this : Algebra.IsAlgebraic (↥L) E
hd : finSepDegree F ↥L * finSepDegree (↥L) E = finSepDegree F E
⊢ finSepDegree F E = 0

tactic: rw [H L h] at hd
state_before: case inr.intro.intro
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✝ : IsSeparable F E
H :
  ∀ (E : Type v) [inst : Field E] [inst_1 : Algebra F E] [inst_2 : IsSeparable F E],
    FiniteDimensional F E → finSepDegree F E = finrank F E
hfd : ¬FiniteDimensional F E
halg : Algebra.IsAlgebraic F E
L : IntermediateField F E
h : FiniteDimensional F ↥L
h' : finSepDegree F E < finrank F ↥L
this✝ : IsSeparable F ↥L
this : Algebra.IsAlgebraic (↥L) E
hd : finSepDegree F ↥L * finSepDegree (↥L) E = finSepDegree F E
⊢ finSepDegree F E = 0
state_after: case inr.intro.intro
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✝ : IsSeparable F E
H :
  ∀ (E : Type v) [inst : Field E] [inst_1 : Algebra F E] [inst_2 : IsSeparable F E],
    FiniteDimensional F E → finSepDegree F E = finrank F E
hfd : ¬FiniteDimensional F E
halg : Algebra.IsAlgebraic F E
L : IntermediateField F E
h : FiniteDimensional F ↥L
h' : finSepDegree F E < finrank F ↥L
this✝ : IsSeparable F ↥L
this : Algebra.IsAlgebraic (↥L) E
hd : finrank F ↥L * finSepDegree (↥L) E = finSepDegree F E
⊢ finSepDegree F E = 0

tactic: by_cases hd' : finSepDegree L E = 0
state_before: case inr.intro.intro
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✝ : IsSeparable F E
H :
  ∀ (E : Type v) [inst : Field E] [inst_1 : Algebra F E] [inst_2 : IsSeparable F E],
    FiniteDimensional F E → finSepDegree F E = finrank F E
hfd : ¬FiniteDimensional F E
halg : Algebra.IsAlgebraic F E
L : IntermediateField F E
h : FiniteDimensional F ↥L
h' : finSepDegree F E < finrank F ↥L
this✝ : IsSeparable F ↥L
this : Algebra.IsAlgebraic (↥L) E
hd : finrank F ↥L * finSepDegree (↥L) E = finSepDegree F E
⊢ finSepDegree F E = 0
state_after: case pos
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✝ : IsSeparable F E
H :
  ∀ (E : Type v) [inst : Field E] [inst_1 : Algebra F E] [inst_2 : IsSeparable F E],
    FiniteDimensional F E → finSepDegree F E = finrank F E
hfd : ¬FiniteDimensional F E
halg : Algebra.IsAlgebraic F E
L : IntermediateField F E
h : FiniteDimensional F ↥L
h' : finSepDegree F E < finrank F ↥L
this✝ : IsSeparable F ↥L
this : Algebra.IsAlgebraic (↥L) E
hd : finrank F ↥L * finSepDegree (↥L) E = finSepDegree F E
hd' : finSepDegree (↥L) E = 0
⊢ finSepDegree F E = 0

case neg
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✝ : IsSeparable F E
H :
  ∀ (E : Type v) [inst : Field E] [inst_1 : Algebra F E] [inst_2 : IsSeparable F E],
    FiniteDimensional F E → finSepDegree F E = finrank F E
hfd : ¬FiniteDimensional F E
halg : Algebra.IsAlgebraic F E
L : IntermediateField F E
h : FiniteDimensional F ↥L
h' : finSepDegree F E < finrank F ↥L
this✝ : IsSeparable F ↥L
this : Algebra.IsAlgebraic (↥L) E
hd : finrank F ↥L * finSepDegree (↥L) E = finSepDegree F E
hd' : ¬finSepDegree (↥L) E = 0
⊢ finSepDegree F E = 0

tactic: linarith only [h', hd, Nat.le_mul_of_pos_right (finrank F L) (Nat.pos_of_ne_zero hd')]
state_before: case neg
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✝ : IsSeparable F E
H :
  ∀ (E : Type v) [inst : Field E] [inst_1 : Algebra F E] [inst_2 : IsSeparable F E],
    FiniteDimensional F E → finSepDegree F E = finrank F E
hfd : ¬FiniteDimensional F E
halg : Algebra.IsAlgebraic F E
L : IntermediateField F E
h : FiniteDimensional F ↥L
h' : finSepDegree F E < finrank F ↥L
this✝ : IsSeparable F ↥L
this : Algebra.IsAlgebraic (↥L) E
hd : finrank F ↥L * finSepDegree (↥L) E = finSepDegree F E
hd' : ¬finSepDegree (↥L) E = 0
⊢ finSepDegree F E = 0
state_after: no goals

tactic: rw [← hd, hd', mul_zero]
state_before: case pos
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✝ : IsSeparable F E
H :
  ∀ (E : Type v) [inst : Field E] [inst_1 : Algebra F E] [inst_2 : IsSeparable F E],
    FiniteDimensional F E → finSepDegree F E = finrank F E
hfd : ¬FiniteDimensional F E
halg : Algebra.IsAlgebraic F E
L : IntermediateField F E
h : FiniteDimensional F ↥L
h' : finSepDegree F E < finrank F ↥L
this✝ : IsSeparable F ↥L
this : Algebra.IsAlgebraic (↥L) E
hd : finrank F ↥L * finSepDegree (↥L) E = finSepDegree F E
hd' : finSepDegree (↥L) E = 0
⊢ finSepDegree F E = 0
state_after: no goals

tactic: simp_rw [finSepDegree_bot, IntermediateField.finrank_bot]
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
E : Type v
inst✝² : Field E
inst✝¹ : Algebra F E
inst✝ : IsSeparable F E
hfd : FiniteDimensional F E
⊢ (fun K => finSepDegree F ↥K = finrank F ↥K) ⊥
state_after: no goals