Theorem: isCyclic_tfae
File: Mathlib/FieldTheory/KummerExtension.lean

tactic: tfae_have 1 → 3
state_before: K✝ : Type u
inst✝⁴ : Field K✝
n : ℕ
hζ : (primitiveRoots n K✝).Nonempty
hn : 0 < n
a : K✝
H : Irreducible (X ^ n - C a)
K : Type u_1
L : Type u_2
inst✝³ : Field K
inst✝² : Field L
inst✝¹ : Algebra K L
inst✝ : FiniteDimensional K L
hK : (primitiveRoots (finrank K L) K).Nonempty
⊢ [IsGalois K L ∧ IsCyclic (L ≃ₐ[K] L),
      ∃ a, Irreducible (X ^ finrank K L - C a) ∧ IsSplittingField K L (X ^ finrank K L - C a),
      ∃ α, α ^ finrank K L ∈ Set.range ⇑(algebraMap K L) ∧ K⟮α⟯ = ⊤].TFAE
state_after: case tfae_1_to_3
K✝ : Type u
inst✝⁴ : Field K✝
n : ℕ
hζ : (primitiveRoots n K✝).Nonempty
hn : 0 < n
a : K✝
H : Irreducible (X ^ n - C a)
K : Type u_1
L : Type u_2
inst✝³ : Field K
inst✝² : Field L
inst✝¹ : Algebra K L
inst✝ : FiniteDimensional K L
hK : (primitiveRoots (finrank K L) K).Nonempty
⊢ IsGalois K L ∧ IsCyclic (L ≃ₐ[K] L) → ∃ α, α ^ finrank K L ∈ Set.range ⇑(algebraMap K L) ∧ K⟮α⟯ = ⊤

K✝ : Type u
inst✝⁴ : Field K✝
n : ℕ
hζ : (primitiveRoots n K✝).Nonempty
hn : 0 < n
a : K✝
H : Irreducible (X ^ n - C a)
K : Type u_1
L : Type u_2
inst✝³ : Field K
inst✝² : Field L
inst✝¹ : Algebra K L
inst✝ : FiniteDimensional K L
hK : (primitiveRoots (finrank K L) K).Nonempty
tfae_1_to_3 : IsGalois K L ∧ IsCyclic (L ≃ₐ[K] L) → ∃ α, α ^ finrank K L ∈ Set.range ⇑(algebraMap K L) ∧ K⟮α⟯ = ⊤
⊢ [IsGalois K L ∧ IsCyclic (L ≃ₐ[K] L),
      ∃ a, Irreducible (X ^ finrank K L - C a) ∧ IsSplittingField K L (X ^ finrank K L - C a),
      ∃ α, α ^ finrank K L ∈ Set.range ⇑(algebraMap K L) ∧ K⟮α⟯ = ⊤].TFAE

tactic: tfae_have 3 → 2
state_before: K✝ : Type u
inst✝⁴ : Field K✝
n : ℕ
hζ : (primitiveRoots n K✝).Nonempty
hn : 0 < n
a : K✝
H : Irreducible (X ^ n - C a)
K : Type u_1
L : Type u_2
inst✝³ : Field K
inst✝² : Field L
inst✝¹ : Algebra K L
inst✝ : FiniteDimensional K L
hK : (primitiveRoots (finrank K L) K).Nonempty
tfae_1_to_3 : IsGalois K L ∧ IsCyclic (L ≃ₐ[K] L) → ∃ α, α ^ finrank K L ∈ Set.range ⇑(algebraMap K L) ∧ K⟮α⟯ = ⊤
⊢ [IsGalois K L ∧ IsCyclic (L ≃ₐ[K] L),
      ∃ a, Irreducible (X ^ finrank K L - C a) ∧ IsSplittingField K L (X ^ finrank K L - C a),
      ∃ α, α ^ finrank K L ∈ Set.range ⇑(algebraMap K L) ∧ K⟮α⟯ = ⊤].TFAE
state_after: case tfae_3_to_2
K✝ : Type u
inst✝⁴ : Field K✝
n : ℕ
hζ : (primitiveRoots n K✝).Nonempty
hn : 0 < n
a : K✝
H : Irreducible (X ^ n - C a)
K : Type u_1
L : Type u_2
inst✝³ : Field K
inst✝² : Field L
inst✝¹ : Algebra K L
inst✝ : FiniteDimensional K L
hK : (primitiveRoots (finrank K L) K).Nonempty
tfae_1_to_3 : IsGalois K L ∧ IsCyclic (L ≃ₐ[K] L) → ∃ α, α ^ finrank K L ∈ Set.range ⇑(algebraMap K L) ∧ K⟮α⟯ = ⊤
⊢ (∃ α, α ^ finrank K L ∈ Set.range ⇑(algebraMap K L) ∧ K⟮α⟯ = ⊤) →
    ∃ a, Irreducible (X ^ finrank K L - C a) ∧ IsSplittingField K L (X ^ finrank K L - C a)

K✝ : Type u
inst✝⁴ : Field K✝
n : ℕ
hζ : (primitiveRoots n K✝).Nonempty
hn : 0 < n
a : K✝
H : Irreducible (X ^ n - C a)
K : Type u_1
L : Type u_2
inst✝³ : Field K
inst✝² : Field L
inst✝¹ : Algebra K L
inst✝ : FiniteDimensional K L
hK : (primitiveRoots (finrank K L) K).Nonempty
tfae_1_to_3 : IsGalois K L ∧ IsCyclic (L ≃ₐ[K] L) → ∃ α, α ^ finrank K L ∈ Set.range ⇑(algebraMap K L) ∧ K⟮α⟯ = ⊤
tfae_3_to_2 :
  (∃ α, α ^ finrank K L ∈ Set.range ⇑(algebraMap K L) ∧ K⟮α⟯ = ⊤) →
    ∃ a, Irreducible (X ^ finrank K L - C a) ∧ IsSplittingField K L (X ^ finrank K L - C a)
⊢ [IsGalois K L ∧ IsCyclic (L ≃ₐ[K] L),
      ∃ a, Irreducible (X ^ finrank K L - C a) ∧ IsSplittingField K L (X ^ finrank K L - C a),
      ∃ α, α ^ finrank K L ∈ Set.range ⇑(algebraMap K L) ∧ K⟮α⟯ = ⊤].TFAE

tactic: tfae_have 2 → 1
state_before: K✝ : Type u
inst✝⁴ : Field K✝
n : ℕ
hζ : (primitiveRoots n K✝).Nonempty
hn : 0 < n
a : K✝
H : Irreducible (X ^ n - C a)
K : Type u_1
L : Type u_2
inst✝³ : Field K
inst✝² : Field L
inst✝¹ : Algebra K L
inst✝ : FiniteDimensional K L
hK : (primitiveRoots (finrank K L) K).Nonempty
tfae_1_to_3 : IsGalois K L ∧ IsCyclic (L ≃ₐ[K] L) → ∃ α, α ^ finrank K L ∈ Set.range ⇑(algebraMap K L) ∧ K⟮α⟯ = ⊤
tfae_3_to_2 :
  (∃ α, α ^ finrank K L ∈ Set.range ⇑(algebraMap K L) ∧ K⟮α⟯ = ⊤) →
    ∃ a, Irreducible (X ^ finrank K L - C a) ∧ IsSplittingField K L (X ^ finrank K L - C a)
⊢ [IsGalois K L ∧ IsCyclic (L ≃ₐ[K] L),
      ∃ a, Irreducible (X ^ finrank K L - C a) ∧ IsSplittingField K L (X ^ finrank K L - C a),
      ∃ α, α ^ finrank K L ∈ Set.range ⇑(algebraMap K L) ∧ K⟮α⟯ = ⊤].TFAE
state_after: case tfae_2_to_1
K✝ : Type u
inst✝⁴ : Field K✝
n : ℕ
hζ : (primitiveRoots n K✝).Nonempty
hn : 0 < n
a : K✝
H : Irreducible (X ^ n - C a)
K : Type u_1
L : Type u_2
inst✝³ : Field K
inst✝² : Field L
inst✝¹ : Algebra K L
inst✝ : FiniteDimensional K L
hK : (primitiveRoots (finrank K L) K).Nonempty
tfae_1_to_3 : IsGalois K L ∧ IsCyclic (L ≃ₐ[K] L) → ∃ α, α ^ finrank K L ∈ Set.range ⇑(algebraMap K L) ∧ K⟮α⟯ = ⊤
tfae_3_to_2 :
  (∃ α, α ^ finrank K L ∈ Set.range ⇑(algebraMap K L) ∧ K⟮α⟯ = ⊤) →
    ∃ a, Irreducible (X ^ finrank K L - C a) ∧ IsSplittingField K L (X ^ finrank K L - C a)
⊢ (∃ a, Irreducible (X ^ finrank K L - C a) ∧ IsSplittingField K L (X ^ finrank K L - C a)) →
    IsGalois K L ∧ IsCyclic (L ≃ₐ[K] L)

K✝ : Type u
inst✝⁴ : Field K✝
n : ℕ
hζ : (primitiveRoots n K✝).Nonempty
hn : 0 < n
a : K✝
H : Irreducible (X ^ n - C a)
K : Type u_1
L : Type u_2
inst✝³ : Field K
inst✝² : Field L
inst✝¹ : Algebra K L
inst✝ : FiniteDimensional K L
hK : (primitiveRoots (finrank K L) K).Nonempty
tfae_1_to_3 : IsGalois K L ∧ IsCyclic (L ≃ₐ[K] L) → ∃ α, α ^ finrank K L ∈ Set.range ⇑(algebraMap K L) ∧ K⟮α⟯ = ⊤
tfae_3_to_2 :
  (∃ α, α ^ finrank K L ∈ Set.range ⇑(algebraMap K L) ∧ K⟮α⟯ = ⊤) →
    ∃ a, Irreducible (X ^ finrank K L - C a) ∧ IsSplittingField K L (X ^ finrank K L - C a)
tfae_2_to_1 :
  (∃ a, Irreducible (X ^ finrank K L - C a) ∧ IsSplittingField K L (X ^ finrank K L - C a)) →
    IsGalois K L ∧ IsCyclic (L ≃ₐ[K] L)
⊢ [IsGalois K L ∧ IsCyclic (L ≃ₐ[K] L),
      ∃ a, Irreducible (X ^ finrank K L - C a) ∧ IsSplittingField K L (X ^ finrank K L - C a),
      ∃ α, α ^ finrank K L ∈ Set.range ⇑(algebraMap K L) ∧ K⟮α⟯ = ⊤].TFAE

tactic: tfae_finish
state_before: K✝ : Type u
inst✝⁴ : Field K✝
n : ℕ
hζ : (primitiveRoots n K✝).Nonempty
hn : 0 < n
a : K✝
H : Irreducible (X ^ n - C a)
K : Type u_1
L : Type u_2
inst✝³ : Field K
inst✝² : Field L
inst✝¹ : Algebra K L
inst✝ : FiniteDimensional K L
hK : (primitiveRoots (finrank K L) K).Nonempty
tfae_1_to_3 : IsGalois K L ∧ IsCyclic (L ≃ₐ[K] L) → ∃ α, α ^ finrank K L ∈ Set.range ⇑(algebraMap K L) ∧ K⟮α⟯ = ⊤
tfae_3_to_2 :
  (∃ α, α ^ finrank K L ∈ Set.range ⇑(algebraMap K L) ∧ K⟮α⟯ = ⊤) →
    ∃ a, Irreducible (X ^ finrank K L - C a) ∧ IsSplittingField K L (X ^ finrank K L - C a)
tfae_2_to_1 :
  (∃ a, Irreducible (X ^ finrank K L - C a) ∧ IsSplittingField K L (X ^ finrank K L - C a)) →
    IsGalois K L ∧ IsCyclic (L ≃ₐ[K] L)
⊢ [IsGalois K L ∧ IsCyclic (L ≃ₐ[K] L),
      ∃ a, Irreducible (X ^ finrank K L - C a) ∧ IsSplittingField K L (X ^ finrank K L - C a),
      ∃ α, α ^ finrank K L ∈ Set.range ⇑(algebraMap K L) ∧ K⟮α⟯ = ⊤].TFAE
state_after: no goals

tactic: intro ⟨inst₁, inst₂⟩
state_before: case tfae_1_to_3
K✝ : Type u
inst✝⁴ : Field K✝
n : ℕ
hζ : (primitiveRoots n K✝).Nonempty
hn : 0 < n
a : K✝
H : Irreducible (X ^ n - C a)
K : Type u_1
L : Type u_2
inst✝³ : Field K
inst✝² : Field L
inst✝¹ : Algebra K L
inst✝ : FiniteDimensional K L
hK : (primitiveRoots (finrank K L) K).Nonempty
⊢ IsGalois K L ∧ IsCyclic (L ≃ₐ[K] L) → ∃ α, α ^ finrank K L ∈ Set.range ⇑(algebraMap K L) ∧ K⟮α⟯ = ⊤
state_after: case tfae_1_to_3
K✝ : Type u
inst✝⁴ : Field K✝
n : ℕ
hζ : (primitiveRoots n K✝).Nonempty
hn : 0 < n
a : K✝
H : Irreducible (X ^ n - C a)
K : Type u_1
L : Type u_2
inst✝³ : Field K
inst✝² : Field L
inst✝¹ : Algebra K L
inst✝ : FiniteDimensional K L
hK : (primitiveRoots (finrank K L) K).Nonempty
inst₁ : IsGalois K L
inst₂ : IsCyclic (L ≃ₐ[K] L)
⊢ ∃ α, α ^ finrank K L ∈ Set.range ⇑(algebraMap K L) ∧ K⟮α⟯ = ⊤

tactic: exact exists_root_adjoin_eq_top_of_isCyclic K L hK
state_before: case tfae_1_to_3
K✝ : Type u
inst✝⁴ : Field K✝
n : ℕ
hζ : (primitiveRoots n K✝).Nonempty
hn : 0 < n
a : K✝
H : Irreducible (X ^ n - C a)
K : Type u_1
L : Type u_2
inst✝³ : Field K
inst✝² : Field L
inst✝¹ : Algebra K L
inst✝ : FiniteDimensional K L
hK : (primitiveRoots (finrank K L) K).Nonempty
inst₁ : IsGalois K L
inst₂ : IsCyclic (L ≃ₐ[K] L)
⊢ ∃ α, α ^ finrank K L ∈ Set.range ⇑(algebraMap K L) ∧ K⟮α⟯ = ⊤
state_after: no goals

tactic: intro ⟨α, ⟨a, ha⟩, hα⟩
state_before: case tfae_3_to_2
K✝ : Type u
inst✝⁴ : Field K✝
n : ℕ
hζ : (primitiveRoots n K✝).Nonempty
hn : 0 < n
a : K✝
H : Irreducible (X ^ n - C a)
K : Type u_1
L : Type u_2
inst✝³ : Field K
inst✝² : Field L
inst✝¹ : Algebra K L
inst✝ : FiniteDimensional K L
hK : (primitiveRoots (finrank K L) K).Nonempty
tfae_1_to_3 : IsGalois K L ∧ IsCyclic (L ≃ₐ[K] L) → ∃ α, α ^ finrank K L ∈ Set.range ⇑(algebraMap K L) ∧ K⟮α⟯ = ⊤
⊢ (∃ α, α ^ finrank K L ∈ Set.range ⇑(algebraMap K L) ∧ K⟮α⟯ = ⊤) →
    ∃ a, Irreducible (X ^ finrank K L - C a) ∧ IsSplittingField K L (X ^ finrank K L - C a)
state_after: case tfae_3_to_2
K✝ : Type u
inst✝⁴ : Field K✝
n : ℕ
hζ : (primitiveRoots n K✝).Nonempty
hn : 0 < n
a✝ : K✝
H : Irreducible (X ^ n - C a✝)
K : Type u_1
L : Type u_2
inst✝³ : Field K
inst✝² : Field L
inst✝¹ : Algebra K L
inst✝ : FiniteDimensional K L
hK : (primitiveRoots (finrank K L) K).Nonempty
tfae_1_to_3 : IsGalois K L ∧ IsCyclic (L ≃ₐ[K] L) → ∃ α, α ^ finrank K L ∈ Set.range ⇑(algebraMap K L) ∧ K⟮α⟯ = ⊤
α : L
a : K
ha : (algebraMap K L) a = α ^ finrank K L
hα : K⟮α⟯ = ⊤
⊢ ∃ a, Irreducible (X ^ finrank K L - C a) ∧ IsSplittingField K L (X ^ finrank K L - C a)

tactic: exact ⟨a, irreducible_X_pow_sub_C_of_root_adjoin_eq_top ha.symm hα,
  isSplittingField_X_pow_sub_C_of_root_adjoin_eq_top hK ha.symm hα⟩
state_before: case tfae_3_to_2
K✝ : Type u
inst✝⁴ : Field K✝
n : ℕ
hζ : (primitiveRoots n K✝).Nonempty
hn : 0 < n
a✝ : K✝
H : Irreducible (X ^ n - C a✝)
K : Type u_1
L : Type u_2
inst✝³ : Field K
inst✝² : Field L
inst✝¹ : Algebra K L
inst✝ : FiniteDimensional K L
hK : (primitiveRoots (finrank K L) K).Nonempty
tfae_1_to_3 : IsGalois K L ∧ IsCyclic (L ≃ₐ[K] L) → ∃ α, α ^ finrank K L ∈ Set.range ⇑(algebraMap K L) ∧ K⟮α⟯ = ⊤
α : L
a : K
ha : (algebraMap K L) a = α ^ finrank K L
hα : K⟮α⟯ = ⊤
⊢ ∃ a, Irreducible (X ^ finrank K L - C a) ∧ IsSplittingField K L (X ^ finrank K L - C a)
state_after: no goals

tactic: intro ⟨a, H, inst⟩
state_before: case tfae_2_to_1
K✝ : Type u
inst✝⁴ : Field K✝
n : ℕ
hζ : (primitiveRoots n K✝).Nonempty
hn : 0 < n
a : K✝
H : Irreducible (X ^ n - C a)
K : Type u_1
L : Type u_2
inst✝³ : Field K
inst✝² : Field L
inst✝¹ : Algebra K L
inst✝ : FiniteDimensional K L
hK : (primitiveRoots (finrank K L) K).Nonempty
tfae_1_to_3 : IsGalois K L ∧ IsCyclic (L ≃ₐ[K] L) → ∃ α, α ^ finrank K L ∈ Set.range ⇑(algebraMap K L) ∧ K⟮α⟯ = ⊤
tfae_3_to_2 :
  (∃ α, α ^ finrank K L ∈ Set.range ⇑(algebraMap K L) ∧ K⟮α⟯ = ⊤) →
    ∃ a, Irreducible (X ^ finrank K L - C a) ∧ IsSplittingField K L (X ^ finrank K L - C a)
⊢ (∃ a, Irreducible (X ^ finrank K L - C a) ∧ IsSplittingField K L (X ^ finrank K L - C a)) →
    IsGalois K L ∧ IsCyclic (L ≃ₐ[K] L)
state_after: case tfae_2_to_1
K✝ : Type u
inst✝⁴ : Field K✝
n : ℕ
hζ : (primitiveRoots n K✝).Nonempty
hn : 0 < n
a✝ : K✝
H✝ : Irreducible (X ^ n - C a✝)
K : Type u_1
L : Type u_2
inst✝³ : Field K
inst✝² : Field L
inst✝¹ : Algebra K L
inst✝ : FiniteDimensional K L
hK : (primitiveRoots (finrank K L) K).Nonempty
tfae_1_to_3 : IsGalois K L ∧ IsCyclic (L ≃ₐ[K] L) → ∃ α, α ^ finrank K L ∈ Set.range ⇑(algebraMap K L) ∧ K⟮α⟯ = ⊤
tfae_3_to_2 :
  (∃ α, α ^ finrank K L ∈ Set.range ⇑(algebraMap K L) ∧ K⟮α⟯ = ⊤) →
    ∃ a, Irreducible (X ^ finrank K L - C a) ∧ IsSplittingField K L (X ^ finrank K L - C a)
a : K
H : Irreducible (X ^ finrank K L - C a)
inst : IsSplittingField K L (X ^ finrank K L - C a)
⊢ IsGalois K L ∧ IsCyclic (L ≃ₐ[K] L)

tactic: exact ⟨isGalois_of_isSplittingField_X_pow_sub_C hK H L,
  isCyclic_of_isSplittingField_X_pow_sub_C hK H L⟩
state_before: case tfae_2_to_1
K✝ : Type u
inst✝⁴ : Field K✝
n : ℕ
hζ : (primitiveRoots n K✝).Nonempty
hn : 0 < n
a✝ : K✝
H✝ : Irreducible (X ^ n - C a✝)
K : Type u_1
L : Type u_2
inst✝³ : Field K
inst✝² : Field L
inst✝¹ : Algebra K L
inst✝ : FiniteDimensional K L
hK : (primitiveRoots (finrank K L) K).Nonempty
tfae_1_to_3 : IsGalois K L ∧ IsCyclic (L ≃ₐ[K] L) → ∃ α, α ^ finrank K L ∈ Set.range ⇑(algebraMap K L) ∧ K⟮α⟯ = ⊤
tfae_3_to_2 :
  (∃ α, α ^ finrank K L ∈ Set.range ⇑(algebraMap K L) ∧ K⟮α⟯ = ⊤) →
    ∃ a, Irreducible (X ^ finrank K L - C a) ∧ IsSplittingField K L (X ^ finrank K L - C a)
a : K
H : Irreducible (X ^ finrank K L - C a)
inst : IsSplittingField K L (X ^ finrank K L - C a)
⊢ IsGalois K L ∧ IsCyclic (L ≃ₐ[K] L)
state_after: no goals