Theorem: IsPrimitiveRoot.norm_sub_one_of_prime_ne_two'
File: Mathlib/NumberTheory/Cyclotomic/PrimitiveRoots.lean

Proof steps:
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
hpri : Fact (Nat.Prime ↑p)
hcyc : IsCyclotomicExtension {p} K L
hζ : IsPrimitiveRoot ζ ↑p
hirr : Irreducible (cyclotomic (↑p) K)
h : p ≠ 2
⊢ (Algebra.norm K) (ζ - 1) = ↑↑p
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
hpri : Fact (Nat.Prime ↑p)
hcyc : IsCyclotomicExtension {p} K L
hζ : IsPrimitiveRoot ζ ↑p
h : p ≠ 2
hirr : Irreducible (cyclotomic (↑p ^ (0 + 1)) K)
⊢ (Algebra.norm K) (ζ - 1) = ↑↑p
tactic: replace hirr : Irreducible (cyclotomic (p ^ (0 + 1) : ℕ) K) := by simp [hirr]
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
hpri : Fact (Nat.Prime ↑p)
hcyc : IsCyclotomicExtension {p} K L
hζ : IsPrimitiveRoot ζ ↑p
h : p ≠ 2
hirr : Irreducible (cyclotomic (↑p ^ (0 + 1)) K)
⊢ (Algebra.norm K) (ζ - 1) = ↑↑p
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
hpri : Fact (Nat.Prime ↑p)
hcyc : IsCyclotomicExtension {p} K L
h : p ≠ 2
hirr : Irreducible (cyclotomic (↑p ^ (0 + 1)) K)
hζ : IsPrimitiveRoot ζ (↑p ^ (0 + 1))
⊢ (Algebra.norm K) (ζ - 1) = ↑↑p
tactic: replace hζ : IsPrimitiveRoot ζ (p ^ (0 + 1) : ℕ) := by simp [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
hpri : Fact (Nat.Prime ↑p)
hcyc : IsCyclotomicExtension {p} K L
h : p ≠ 2
hirr : Irreducible (cyclotomic (↑p ^ (0 + 1)) K)
hζ : IsPrimitiveRoot ζ (↑p ^ (0 + 1))
⊢ (Algebra.norm K) (ζ - 1) = ↑↑p
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
hpri : Fact (Nat.Prime ↑p)
hcyc : IsCyclotomicExtension {p} K L
h : p ≠ 2
hirr : Irreducible (cyclotomic (↑p ^ (0 + 1)) K)
hζ : IsPrimitiveRoot ζ (↑p ^ (0 + 1))
this : IsCyclotomicExtension {p ^ (0 + 1)} K L
⊢ (Algebra.norm K) (ζ - 1) = ↑↑p
tactic: haveI : IsCyclotomicExtension {p ^ (0 + 1)} K L := by simp [hcyc]
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
hpri : Fact (Nat.Prime ↑p)
hcyc : IsCyclotomicExtension {p} K L
h : p ≠ 2
hirr : Irreducible (cyclotomic (↑p ^ (0 + 1)) K)
hζ : IsPrimitiveRoot ζ (↑p ^ (0 + 1))
this : IsCyclotomicExtension {p ^ (0 + 1)} K L
⊢ (Algebra.norm K) (ζ - 1) = ↑↑p
state_after: no goals
tactic: simpa using norm_sub_one_of_prime_ne_two hζ hirr h