Theorem: FiniteDimensional.Subalgebra.isSimpleOrder_of_finrank_prime
File: Mathlib/FieldTheory/Tower.lean

Proof steps:
state_before: F✝ : Type u
K✝ : Type v
A✝ : Type w
inst✝¹⁰ : DivisionRing F✝
inst✝⁹ : DivisionRing K✝
inst✝⁸ : AddCommGroup A✝
inst✝⁷ : Module F✝ K✝
inst✝⁶ : Module K✝ A✝
inst✝⁵ : Module F✝ A✝
inst✝⁴ : IsScalarTower F✝ K✝ A✝
F : Type u_1
A : Type u_2
inst✝³ : Field F
inst✝² : Ring A
inst✝¹ : IsDomain A
inst✝ : Algebra F A
hp : Nat.Prime (finrank F A)
K : Subalgebra F A
⊢ K = ⊥ ∨ K = ⊤
state_after: F✝ : Type u
K✝ : Type v
A✝ : Type w
inst✝¹⁰ : DivisionRing F✝
inst✝⁹ : DivisionRing K✝
inst✝⁸ : AddCommGroup A✝
inst✝⁷ : Module F✝ K✝
inst✝⁶ : Module K✝ A✝
inst✝⁵ : Module F✝ A✝
inst✝⁴ : IsScalarTower F✝ K✝ A✝
F : Type u_1
A : Type u_2
inst✝³ : Field F
inst✝² : Ring A
inst✝¹ : IsDomain A
inst✝ : Algebra F A
hp : Nat.Prime (finrank F A)
K : Subalgebra F A
this : FiniteDimensional F A
⊢ K = ⊥ ∨ K = ⊤
tactic: haveI : FiniteDimensional _ _ := .of_finrank_pos hp.pos
state_before: F✝ : Type u
K✝ : Type v
A✝ : Type w
inst✝¹⁰ : DivisionRing F✝
inst✝⁹ : DivisionRing K✝
inst✝⁸ : AddCommGroup A✝
inst✝⁷ : Module F✝ K✝
inst✝⁶ : Module K✝ A✝
inst✝⁵ : Module F✝ A✝
inst✝⁴ : IsScalarTower F✝ K✝ A✝
F : Type u_1
A : Type u_2
inst✝³ : Field F
inst✝² : Ring A
inst✝¹ : IsDomain A
inst✝ : Algebra F A
hp : Nat.Prime (finrank F A)
K : Subalgebra F A
this : FiniteDimensional F A
⊢ K = ⊥ ∨ K = ⊤
state_after: F✝ : Type u
K✝ : Type v
A✝ : Type w
inst✝¹⁰ : DivisionRing F✝
inst✝⁹ : DivisionRing K✝
inst✝⁸ : AddCommGroup A✝
inst✝⁷ : Module F✝ K✝
inst✝⁶ : Module K✝ A✝
inst✝⁵ : Module F✝ A✝
inst✝⁴ : IsScalarTower F✝ K✝ A✝
F : Type u_1
A : Type u_2
inst✝³ : Field F
inst✝² : Ring A
inst✝¹ : IsDomain A
inst✝ : Algebra F A
hp : Nat.Prime (finrank F A)
K : Subalgebra F A
this✝ : FiniteDimensional F A
this : DivisionRing ↥K := divisionRingOfFiniteDimensional F ↥K
⊢ K = ⊥ ∨ K = ⊤
tactic: letI := divisionRingOfFiniteDimensional F K
state_before: F✝ : Type u
K✝ : Type v
A✝ : Type w
inst✝¹⁰ : DivisionRing F✝
inst✝⁹ : DivisionRing K✝
inst✝⁸ : AddCommGroup A✝
inst✝⁷ : Module F✝ K✝
inst✝⁶ : Module K✝ A✝
inst✝⁵ : Module F✝ A✝
inst✝⁴ : IsScalarTower F✝ K✝ A✝
F : Type u_1
A : Type u_2
inst✝³ : Field F
inst✝² : Ring A
inst✝¹ : IsDomain A
inst✝ : Algebra F A
hp : Nat.Prime (finrank F A)
K : Subalgebra F A
this✝ : FiniteDimensional F A
this : DivisionRing ↥K := divisionRingOfFiniteDimensional F ↥K
⊢ K = ⊥ ∨ K = ⊤
state_after: case refine_1
F✝ : Type u
K✝ : Type v
A✝ : Type w
inst✝¹⁰ : DivisionRing F✝
inst✝⁹ : DivisionRing K✝
inst✝⁸ : AddCommGroup A✝
inst✝⁷ : Module F✝ K✝
inst✝⁶ : Module K✝ A✝
inst✝⁵ : Module F✝ A✝
inst✝⁴ : IsScalarTower F✝ K✝ A✝
F : Type u_1
A : Type u_2
inst✝³ : Field F
inst✝² : Ring A
inst✝¹ : IsDomain A
inst✝ : Algebra F A
hp : Nat.Prime (finrank F A)
K : Subalgebra F A
this✝ : FiniteDimensional F A
this : DivisionRing ↥K := divisionRingOfFiniteDimensional F ↥K
⊢ finrank F ↥K = 1 → K = ⊥

case refine_2
F✝ : Type u
K✝ : Type v
A✝ : Type w
inst✝¹⁰ : DivisionRing F✝
inst✝⁹ : DivisionRing K✝
inst✝⁸ : AddCommGroup A✝
inst✝⁷ : Module F✝ K✝
inst✝⁶ : Module K✝ A✝
inst✝⁵ : Module F✝ A✝
inst✝⁴ : IsScalarTower F✝ K✝ A✝
F : Type u_1
A : Type u_2
inst✝³ : Field F
inst✝² : Ring A
inst✝¹ : IsDomain A
inst✝ : Algebra F A
hp : Nat.Prime (finrank F A)
K : Subalgebra F A
this✝ : FiniteDimensional F A
this : DivisionRing ↥K := divisionRingOfFiniteDimensional F ↥K
h : finrank F ↥K = finrank F A
⊢ K = ⊤
tactic: refine (hp.eq_one_or_self_of_dvd _ ⟨_, (finrank_mul_finrank F K A).symm⟩).imp ?_ fun h => ?_