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

tactic: have := Fact.mk H
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[n√a] ≃ₐ[K] K[n√a]
⊢ ↑((autAdjoinRootXPowSubCEquiv hζ hn H).symm σ) • root (X ^ n - C a) = σ (root (X ^ n - C a))
state_after: K : Type u
inst✝ : Field K
n : ℕ
hζ : (primitiveRoots n K).Nonempty
hn : 0 < n
a : K
H : Irreducible (X ^ n - C a)
σ : K[n√a] ≃ₐ[K] K[n√a]
this : Fact (Irreducible (X ^ n - C a))
⊢ ↑((autAdjoinRootXPowSubCEquiv hζ hn H).symm σ) • root (X ^ n - C a) = σ (root (X ^ n - C a))

tactic: simp only [autAdjoinRootXPowSubCEquiv, OneHom.toFun_eq_coe, MonoidHom.toOneHom_coe,
  MulEquiv.symm_mk, MulEquiv.coe_mk, Equiv.coe_fn_symm_mk, AdjoinRootXPowSubCEquivToRootsOfUnity,
  AdjoinRoot.algebraMap_eq, Units.smul_def, Algebra.smul_def,
  rootsOfUnityEquivOfPrimitiveRoots_symm_apply, rootsOfUnity.mkOfPowEq, PNat.mk_coe,
  Units.val_ofPowEqOne, ite_mul, one_mul, ne_eq]
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[n√a] ≃ₐ[K] K[n√a]
this : Fact (Irreducible (X ^ n - C a))
⊢ ↑((autAdjoinRootXPowSubCEquiv hζ hn H).symm σ) • root (X ^ n - C a) = σ (root (X ^ n - C a))
state_after: K : Type u
inst✝ : Field K
n : ℕ
hζ : (primitiveRoots n K).Nonempty
hn : 0 < n
a : K
H : Irreducible (X ^ n - C a)
σ : K[n√a] ≃ₐ[K] K[n√a]
this : Fact (Irreducible (X ^ n - C a))
⊢ (if a = 0 then 1 else σ (root (X ^ n - C a)) / root (X ^ n - C a)) * root (X ^ n - C a) = σ (root (X ^ n - C a))

tactic: simp_rw [← root_X_pow_sub_C_eq_zero_iff H]
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[n√a] ≃ₐ[K] K[n√a]
this : Fact (Irreducible (X ^ n - C a))
⊢ (if a = 0 then 1 else σ (root (X ^ n - C a)) / root (X ^ n - C a)) * root (X ^ n - C a) = σ (root (X ^ n - C a))
state_after: K : Type u
inst✝ : Field K
n : ℕ
hζ : (primitiveRoots n K).Nonempty
hn : 0 < n
a : K
H : Irreducible (X ^ n - C a)
σ : K[n√a] ≃ₐ[K] K[n√a]
this : Fact (Irreducible (X ^ n - C a))
⊢ (if root (X ^ n - C a) = 0 then 1 else σ (root (X ^ n - C a)) / root (X ^ n - C a)) * root (X ^ n - C a) =
    σ (root (X ^ n - C a))

tactic: split_ifs with h
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[n√a] ≃ₐ[K] K[n√a]
this : Fact (Irreducible (X ^ n - C a))
⊢ (if root (X ^ n - C a) = 0 then 1 else σ (root (X ^ n - C a)) / root (X ^ n - C a)) * root (X ^ n - C a) =
    σ (root (X ^ n - C a))
state_after: case pos
K : Type u
inst✝ : Field K
n : ℕ
hζ : (primitiveRoots n K).Nonempty
hn : 0 < n
a : K
H : Irreducible (X ^ n - C a)
σ : K[n√a] ≃ₐ[K] K[n√a]
this : Fact (Irreducible (X ^ n - C a))
h : root (X ^ n - C a) = 0
⊢ 1 * root (X ^ n - C a) = σ (root (X ^ n - C a))

case neg
K : Type u
inst✝ : Field K
n : ℕ
hζ : (primitiveRoots n K).Nonempty
hn : 0 < n
a : K
H : Irreducible (X ^ n - C a)
σ : K[n√a] ≃ₐ[K] K[n√a]
this : Fact (Irreducible (X ^ n - C a))
h : ¬root (X ^ n - C a) = 0
⊢ σ (root (X ^ n - C a)) / root (X ^ n - C a) * root (X ^ n - C a) = σ (root (X ^ n - C a))

tactic: rw [h, mul_zero, map_zero]
state_before: case pos
K : Type u
inst✝ : Field K
n : ℕ
hζ : (primitiveRoots n K).Nonempty
hn : 0 < n
a : K
H : Irreducible (X ^ n - C a)
σ : K[n√a] ≃ₐ[K] K[n√a]
this : Fact (Irreducible (X ^ n - C a))
h : root (X ^ n - C a) = 0
⊢ 1 * root (X ^ n - C a) = σ (root (X ^ n - C a))
state_after: no goals

tactic: rw [div_mul_cancel₀ _ h]
state_before: case neg
K : Type u
inst✝ : Field K
n : ℕ
hζ : (primitiveRoots n K).Nonempty
hn : 0 < n
a : K
H : Irreducible (X ^ n - C a)
σ : K[n√a] ≃ₐ[K] K[n√a]
this : Fact (Irreducible (X ^ n - C a))
h : ¬root (X ^ n - C a) = 0
⊢ σ (root (X ^ n - C a)) / root (X ^ n - C a) * root (X ^ n - C a) = σ (root (X ^ n - C a))
state_after: no goals