Theorem: IsPrimitiveRoot.minpoly_sub_one_eq_cyclotomic_comp
File: Mathlib/NumberTheory/Cyclotomic/PrimitiveRoots.lean

tactic: haveI := IsCyclotomicExtension.neZero' n K A
state_before: p n : ℕ+
A : Type w
B : Type z
K : Type u
L : Type v
C : Type w
inst✝⁹ : CommRing A
inst✝⁸ : CommRing B
inst✝⁷ : Algebra A B
inst✝⁶ : IsCyclotomicExtension {n} A B
inst✝⁵ : Field L
ζ✝ : L
hζ✝ : IsPrimitiveRoot ζ✝ ↑n
inst✝⁴ : Field K
inst✝³ : Algebra K L
inst✝² : Algebra K A
inst✝¹ : IsDomain A
ζ : A
inst✝ : IsCyclotomicExtension {n} K A
hζ : IsPrimitiveRoot ζ ↑n
h : Irreducible (cyclotomic (↑n) K)
⊢ minpoly K (ζ - 1) = (cyclotomic (↑n) K).comp (X + 1)
state_after: p n : ℕ+
A : Type w
B : Type z
K : Type u
L : Type v
C : Type w
inst✝⁹ : CommRing A
inst✝⁸ : CommRing B
inst✝⁷ : Algebra A B
inst✝⁶ : IsCyclotomicExtension {n} A B
inst✝⁵ : Field L
ζ✝ : L
hζ✝ : IsPrimitiveRoot ζ✝ ↑n
inst✝⁴ : Field K
inst✝³ : Algebra K L
inst✝² : Algebra K A
inst✝¹ : IsDomain A
ζ : A
inst✝ : IsCyclotomicExtension {n} K A
hζ : IsPrimitiveRoot ζ ↑n
h : Irreducible (cyclotomic (↑n) K)
this : NeZero ↑↑n
⊢ minpoly K (ζ - 1) = (cyclotomic (↑n) K).comp (X + 1)

tactic: rw [show ζ - 1 = ζ + algebraMap K A (-1) by simp [sub_eq_add_neg],
  minpoly.add_algebraMap ((integral {n} K A).isIntegral ζ),
  hζ.minpoly_eq_cyclotomic_of_irreducible h]
state_before: p n : ℕ+
A : Type w
B : Type z
K : Type u
L : Type v
C : Type w
inst✝⁹ : CommRing A
inst✝⁸ : CommRing B
inst✝⁷ : Algebra A B
inst✝⁶ : IsCyclotomicExtension {n} A B
inst✝⁵ : Field L
ζ✝ : L
hζ✝ : IsPrimitiveRoot ζ✝ ↑n
inst✝⁴ : Field K
inst✝³ : Algebra K L
inst✝² : Algebra K A
inst✝¹ : IsDomain A
ζ : A
inst✝ : IsCyclotomicExtension {n} K A
hζ : IsPrimitiveRoot ζ ↑n
h : Irreducible (cyclotomic (↑n) K)
this : NeZero ↑↑n
⊢ minpoly K (ζ - 1) = (cyclotomic (↑n) K).comp (X + 1)
state_after: p n : ℕ+
A : Type w
B : Type z
K : Type u
L : Type v
C : Type w
inst✝⁹ : CommRing A
inst✝⁸ : CommRing B
inst✝⁷ : Algebra A B
inst✝⁶ : IsCyclotomicExtension {n} A B
inst✝⁵ : Field L
ζ✝ : L
hζ✝ : IsPrimitiveRoot ζ✝ ↑n
inst✝⁴ : Field K
inst✝³ : Algebra K L
inst✝² : Algebra K A
inst✝¹ : IsDomain A
ζ : A
inst✝ : IsCyclotomicExtension {n} K A
hζ : IsPrimitiveRoot ζ ↑n
h : Irreducible (cyclotomic (↑n) K)
this : NeZero ↑↑n
⊢ (minpoly K ζ).comp (X - Polynomial.C (-1)) = (minpoly K ζ).comp (X + 1)

tactic: simp
state_before: p n : ℕ+
A : Type w
B : Type z
K : Type u
L : Type v
C : Type w
inst✝⁹ : CommRing A
inst✝⁸ : CommRing B
inst✝⁷ : Algebra A B
inst✝⁶ : IsCyclotomicExtension {n} A B
inst✝⁵ : Field L
ζ✝ : L
hζ✝ : IsPrimitiveRoot ζ✝ ↑n
inst✝⁴ : Field K
inst✝³ : Algebra K L
inst✝² : Algebra K A
inst✝¹ : IsDomain A
ζ : A
inst✝ : IsCyclotomicExtension {n} K A
hζ : IsPrimitiveRoot ζ ↑n
h : Irreducible (cyclotomic (↑n) K)
this : NeZero ↑↑n
⊢ (minpoly K ζ).comp (X - Polynomial.C (-1)) = (minpoly K ζ).comp (X + 1)
state_after: no goals

tactic: simp [sub_eq_add_neg]
state_before: p n : ℕ+
A : Type w
B : Type z
K : Type u
L : Type v
C : Type w
inst✝⁹ : CommRing A
inst✝⁸ : CommRing B
inst✝⁷ : Algebra A B
inst✝⁶ : IsCyclotomicExtension {n} A B
inst✝⁵ : Field L
ζ✝ : L
hζ✝ : IsPrimitiveRoot ζ✝ ↑n
inst✝⁴ : Field K
inst✝³ : Algebra K L
inst✝² : Algebra K A
inst✝¹ : IsDomain A
ζ : A
inst✝ : IsCyclotomicExtension {n} K A
hζ : IsPrimitiveRoot ζ ↑n
h : Irreducible (cyclotomic (↑n) K)
this : NeZero ↑↑n
⊢ ζ - 1 = ζ + (algebraMap K A) (-1)
state_after: no goals