Theorem: IsCyclotomicExtension.CyclotomicUnit.IsPrimitiveRoot.sum_pow_unit (FltRegular/NumberTheory/Cyclotomic/CyclotomicUnits.lean)

State before:
n✝ : ℕ+
K : Type u
L : Type v
A : Type w
B : Type z
inst✝⁹ : CommRing A
inst✝⁸ : CommRing B
inst✝⁷ : Algebra A B
inst✝⁶ : Field K
inst✝⁵ : Field L
inst✝⁴ : Algebra K L
inst✝³ : IsCyclotomicExtension {n✝} A B
inst✝² : IsDomain A
inst✝¹ : Algebra A K
inst✝ : IsFractionRing A K
n k : ℕ
ζ : A
hn : 2 ≤ n
hk : k.Coprime n
hζ : IsPrimitiveRoot ζ n
⊢ IsUnit (∑ i ∈ range k, ζ ^ i)
Tactic:
have h1 : (1 : ℕ).Coprime n := Nat.coprime_one_left n
State after:
n✝ : ℕ+
K : Type u
L : Type v
A : Type w
B : Type z
inst✝⁹ : CommRing A
inst✝⁸ : CommRing B
inst✝⁷ : Algebra A B
inst✝⁶ : Field K
inst✝⁵ : Field L
inst✝⁴ : Algebra K L
inst✝³ : IsCyclotomicExtension {n✝} A B
inst✝² : IsDomain A
inst✝¹ : Algebra A K
inst✝ : IsFractionRing A K
n k : ℕ
ζ : A
hn : 2 ≤ n
hk : k.Coprime n
hζ : IsPrimitiveRoot ζ n
h1 : Nat.Coprime 1 n
⊢ IsUnit (∑ i ∈ range k, ζ ^ i)

State before:
n✝ : ℕ+
K : Type u
L : Type v
A : Type w
B : Type z
inst✝⁹ : CommRing A
inst✝⁸ : CommRing B
inst✝⁷ : Algebra A B
inst✝⁶ : Field K
inst✝⁵ : Field L
inst✝⁴ : Algebra K L
inst✝³ : IsCyclotomicExtension {n✝} A B
inst✝² : IsDomain A
inst✝¹ : Algebra A K
inst✝ : IsFractionRing A K
n k : ℕ
ζ : A
hn : 2 ≤ n
hk : k.Coprime n
hζ : IsPrimitiveRoot ζ n
h1 : Nat.Coprime 1 n
⊢ IsUnit (∑ i ∈ range k, ζ ^ i)
Tactic:
have := associated_one_sub_pow_primitive_root_of_coprime _ hζ hk h1
State after:
n✝ : ℕ+
K : Type u
L : Type v
A : Type w
B : Type z
inst✝⁹ : CommRing A
inst✝⁸ : CommRing B
inst✝⁷ : Algebra A B
inst✝⁶ : Field K
inst✝⁵ : Field L
inst✝⁴ : Algebra K L
inst✝³ : IsCyclotomicExtension {n✝} A B
inst✝² : IsDomain A
inst✝¹ : Algebra A K
inst✝ : IsFractionRing A K
n k : ℕ
ζ : A
hn : 2 ≤ n
hk : k.Coprime n
hζ : IsPrimitiveRoot ζ n
h1 : Nat.Coprime 1 n
this : Associated (1 - ζ ^ 1) (1 - ζ ^ k)
⊢ IsUnit (∑ i ∈ range k, ζ ^ i)

State before:
n✝ : ℕ+
K : Type u
L : Type v
A : Type w
B : Type z
inst✝⁹ : CommRing A
inst✝⁸ : CommRing B
inst✝⁷ : Algebra A B
inst✝⁶ : Field K
inst✝⁵ : Field L
inst✝⁴ : Algebra K L
inst✝³ : IsCyclotomicExtension {n✝} A B
inst✝² : IsDomain A
inst✝¹ : Algebra A K
inst✝ : IsFractionRing A K
n k : ℕ
ζ : A
hn : 2 ≤ n
hk : k.Coprime n
hζ : IsPrimitiveRoot ζ n
h1 : Nat.Coprime 1 n
this : Associated (1 - ζ ^ 1) (1 - ζ ^ k)
⊢ IsUnit (∑ i ∈ range k, ζ ^ i)
Tactic:
simp at this
State after:
n✝ : ℕ+
K : Type u
L : Type v
A : Type w
B : Type z
inst✝⁹ : CommRing A
inst✝⁸ : CommRing B
inst✝⁷ : Algebra A B
inst✝⁶ : Field K
inst✝⁵ : Field L
inst✝⁴ : Algebra K L
inst✝³ : IsCyclotomicExtension {n✝} A B
inst✝² : IsDomain A
inst✝¹ : Algebra A K
inst✝ : IsFractionRing A K
n k : ℕ
ζ : A
hn : 2 ≤ n
hk : k.Coprime n
hζ : IsPrimitiveRoot ζ n
h1 : Nat.Coprime 1 n
this : Associated (1 - ζ) (1 - ζ ^ k)
⊢ IsUnit (∑ i ∈ range k, ζ ^ i)

State before:
n✝ : ℕ+
K : Type u
L : Type v
A : Type w
B : Type z
inst✝⁹ : CommRing A
inst✝⁸ : CommRing B
inst✝⁷ : Algebra A B
inst✝⁶ : Field K
inst✝⁵ : Field L
inst✝⁴ : Algebra K L
inst✝³ : IsCyclotomicExtension {n✝} A B
inst✝² : IsDomain A
inst✝¹ : Algebra A K
inst✝ : IsFractionRing A K
n k : ℕ
ζ : A
hn : 2 ≤ n
hk : k.Coprime n
hζ : IsPrimitiveRoot ζ n
h1 : Nat.Coprime 1 n
this : Associated (1 - ζ) (1 - ζ ^ k)
⊢ IsUnit (∑ i ∈ range k, ζ ^ i)
Tactic:
rw [Associated] at this
State after:
n✝ : ℕ+
K : Type u
L : Type v
A : Type w
B : Type z
inst✝⁹ : CommRing A
inst✝⁸ : CommRing B
inst✝⁷ : Algebra A B
inst✝⁶ : Field K
inst✝⁵ : Field L
inst✝⁴ : Algebra K L
inst✝³ : IsCyclotomicExtension {n✝} A B
inst✝² : IsDomain A
inst✝¹ : Algebra A K
inst✝ : IsFractionRing A K
n k : ℕ
ζ : A
hn : 2 ≤ n
hk : k.Coprime n
hζ : IsPrimitiveRoot ζ n
h1 : Nat.Coprime 1 n
this : ∃ u, (1 - ζ) * ↑u = 1 - ζ ^ k
⊢ IsUnit (∑ i ∈ range k, ζ ^ i)

State before:
n✝ : ℕ+
K : Type u
L : Type v
A : Type w
B : Type z
inst✝⁹ : CommRing A
inst✝⁸ : CommRing B
inst✝⁷ : Algebra A B
inst✝⁶ : Field K
inst✝⁵ : Field L
inst✝⁴ : Algebra K L
inst✝³ : IsCyclotomicExtension {n✝} A B
inst✝² : IsDomain A
inst✝¹ : Algebra A K
inst✝ : IsFractionRing A K
n k : ℕ
ζ : A
hn : 2 ≤ n
hk : k.Coprime n
hζ : IsPrimitiveRoot ζ n
h1 : Nat.Coprime 1 n
this : ∃ u, (1 - ζ) * ↑u = 1 - ζ ^ k
⊢ IsUnit (∑ i ∈ range k, ζ ^ i)
Tactic:
have h2 := mul_neg_geom_sum ζ k
State after:
n✝ : ℕ+
K : Type u
L : Type v
A : Type w
B : Type z
inst✝⁹ : CommRing A
inst✝⁸ : CommRing B
inst✝⁷ : Algebra A B
inst✝⁶ : Field K
inst✝⁵ : Field L
inst✝⁴ : Algebra K L
inst✝³ : IsCyclotomicExtension {n✝} A B
inst✝² : IsDomain A
inst✝¹ : Algebra A K
inst✝ : IsFractionRing A K
n k : ℕ
ζ : A
hn : 2 ≤ n
hk : k.Coprime n
hζ : IsPrimitiveRoot ζ n
h1 : Nat.Coprime 1 n
this : ∃ u, (1 - ζ) * ↑u = 1 - ζ ^ k
h2 : (1 - ζ) * ∑ i ∈ range k, ζ ^ i = 1 - ζ ^ k
⊢ IsUnit (∑ i ∈ range k, ζ ^ i)

State before:
n✝ : ℕ+
K : Type u
L : Type v
A : Type w
B : Type z
inst✝⁹ : CommRing A
inst✝⁸ : CommRing B
inst✝⁷ : Algebra A B
inst✝⁶ : Field K
inst✝⁵ : Field L
inst✝⁴ : Algebra K L
inst✝³ : IsCyclotomicExtension {n✝} A B
inst✝² : IsDomain A
inst✝¹ : Algebra A K
inst✝ : IsFractionRing A K
n k : ℕ
ζ : A
hn : 2 ≤ n
hk : k.Coprime n
hζ : IsPrimitiveRoot ζ n
h1 : Nat.Coprime 1 n
this : ∃ u, (1 - ζ) * ↑u = 1 - ζ ^ k
h2 : (1 - ζ) * ∑ i ∈ range k, ζ ^ i = 1 - ζ ^ k
⊢ IsUnit (∑ i ∈ range k, ζ ^ i)
Tactic:
obtain ⟨u, hu⟩ := this
State after:
case intro
n✝ : ℕ+
K : Type u
L : Type v
A : Type w
B : Type z
inst✝⁹ : CommRing A
inst✝⁸ : CommRing B
inst✝⁷ : Algebra A B
inst✝⁶ : Field K
inst✝⁵ : Field L
inst✝⁴ : Algebra K L
inst✝³ : IsCyclotomicExtension {n✝} A B
inst✝² : IsDomain A
inst✝¹ : Algebra A K
inst✝ : IsFractionRing A K
n k : ℕ
ζ : A
hn : 2 ≤ n
hk : k.Coprime n
hζ : IsPrimitiveRoot ζ n
h1 : Nat.Coprime 1 n
h2 : (1 - ζ) * ∑ i ∈ range k, ζ ^ i = 1 - ζ ^ k
u : Aˣ
hu : (1 - ζ) * ↑u = 1 - ζ ^ k
⊢ IsUnit (∑ i ∈ range k, ζ ^ i)

State before:
case intro
n✝ : ℕ+
K : Type u
L : Type v
A : Type w
B : Type z
inst✝⁹ : CommRing A
inst✝⁸ : CommRing B
inst✝⁷ : Algebra A B
inst✝⁶ : Field K
inst✝⁵ : Field L
inst✝⁴ : Algebra K L
inst✝³ : IsCyclotomicExtension {n✝} A B
inst✝² : IsDomain A
inst✝¹ : Algebra A K
inst✝ : IsFractionRing A K
n k : ℕ
ζ : A
hn : 2 ≤ n
hk : k.Coprime n
hζ : IsPrimitiveRoot ζ n
h1 : Nat.Coprime 1 n
h2 : (1 - ζ) * ∑ i ∈ range k, ζ ^ i = 1 - ζ ^ k
u : Aˣ
hu : (1 - ζ) * ↑u = 1 - ζ ^ k
⊢ IsUnit (∑ i ∈ range k, ζ ^ i)
Tactic:
have := u.isUnit
State after:
case intro
n✝ : ℕ+
K : Type u
L : Type v
A : Type w
B : Type z
inst✝⁹ : CommRing A
inst✝⁸ : CommRing B
inst✝⁷ : Algebra A B
inst✝⁶ : Field K
inst✝⁵ : Field L
inst✝⁴ : Algebra K L
inst✝³ : IsCyclotomicExtension {n✝} A B
inst✝² : IsDomain A
inst✝¹ : Algebra A K
inst✝ : IsFractionRing A K
n k : ℕ
ζ : A
hn : 2 ≤ n
hk : k.Coprime n
hζ : IsPrimitiveRoot ζ n
h1 : Nat.Coprime 1 n
h2 : (1 - ζ) * ∑ i ∈ range k, ζ ^ i = 1 - ζ ^ k
u : Aˣ
hu : (1 - ζ) * ↑u = 1 - ζ ^ k
this : IsUnit ↑u
⊢ IsUnit (∑ i ∈ range k, ζ ^ i)

State before:
case intro
n✝ : ℕ+
K : Type u
L : Type v
A : Type w
B : Type z
inst✝⁹ : CommRing A
inst✝⁸ : CommRing B
inst✝⁷ : Algebra A B
inst✝⁶ : Field K
inst✝⁵ : Field L
inst✝⁴ : Algebra K L
inst✝³ : IsCyclotomicExtension {n✝} A B
inst✝² : IsDomain A
inst✝¹ : Algebra A K
inst✝ : IsFractionRing A K
n k : ℕ
ζ : A
hn : 2 ≤ n
hk : k.Coprime n
hζ : IsPrimitiveRoot ζ n
h1 : Nat.Coprime 1 n
h2 : (1 - ζ) * ∑ i ∈ range k, ζ ^ i = 1 - ζ ^ k
u : Aˣ
hu : (1 - ζ) * ↑u = 1 - ζ ^ k
this : IsUnit ↑u
⊢ IsUnit (∑ i ∈ range k, ζ ^ i)
Tactic:
convert this
State after:
case h.e'_3
n✝ : ℕ+
K : Type u
L : Type v
A : Type w
B : Type z
inst✝⁹ : CommRing A
inst✝⁸ : CommRing B
inst✝⁷ : Algebra A B
inst✝⁶ : Field K
inst✝⁵ : Field L
inst✝⁴ : Algebra K L
inst✝³ : IsCyclotomicExtension {n✝} A B
inst✝² : IsDomain A
inst✝¹ : Algebra A K
inst✝ : IsFractionRing A K
n k : ℕ
ζ : A
hn : 2 ≤ n
hk : k.Coprime n
hζ : IsPrimitiveRoot ζ n
h1 : Nat.Coprime 1 n
h2 : (1 - ζ) * ∑ i ∈ range k, ζ ^ i = 1 - ζ ^ k
u : Aˣ
hu : (1 - ζ) * ↑u = 1 - ζ ^ k
this : IsUnit ↑u
⊢ ∑ i ∈ range k, ζ ^ i = ↑u

State before:
case h.e'_3
n✝ : ℕ+
K : Type u
L : Type v
A : Type w
B : Type z
inst✝⁹ : CommRing A
inst✝⁸ : CommRing B
inst✝⁷ : Algebra A B
inst✝⁶ : Field K
inst✝⁵ : Field L
inst✝⁴ : Algebra K L
inst✝³ : IsCyclotomicExtension {n✝} A B
inst✝² : IsDomain A
inst✝¹ : Algebra A K
inst✝ : IsFractionRing A K
n k : ℕ
ζ : A
hn : 2 ≤ n
hk : k.Coprime n
hζ : IsPrimitiveRoot ζ n
h1 : Nat.Coprime 1 n
h2 : (1 - ζ) * ∑ i ∈ range k, ζ ^ i = 1 - ζ ^ k
u : Aˣ
hu : (1 - ζ) * ↑u = 1 - ζ ^ k
this : IsUnit ↑u
⊢ ∑ i ∈ range k, ζ ^ i = ↑u
Tactic:
rw [← hu] at h2
State after:
case h.e'_3
n✝ : ℕ+
K : Type u
L : Type v
A : Type w
B : Type z
inst✝⁹ : CommRing A
inst✝⁸ : CommRing B
inst✝⁷ : Algebra A B
inst✝⁶ : Field K
inst✝⁵ : Field L
inst✝⁴ : Algebra K L
inst✝³ : IsCyclotomicExtension {n✝} A B
inst✝² : IsDomain A
inst✝¹ : Algebra A K
inst✝ : IsFractionRing A K
n k : ℕ
ζ : A
hn : 2 ≤ n
hk : k.Coprime n
hζ : IsPrimitiveRoot ζ n
h1 : Nat.Coprime 1 n
u : Aˣ
h2 : (1 - ζ) * ∑ i ∈ range k, ζ ^ i = (1 - ζ) * ↑u
hu : (1 - ζ) * ↑u = 1 - ζ ^ k
this : IsUnit ↑u
⊢ ∑ i ∈ range k, ζ ^ i = ↑u

State before:
case h.e'_3
n✝ : ℕ+
K : Type u
L : Type v
A : Type w
B : Type z
inst✝⁹ : CommRing A
inst✝⁸ : CommRing B
inst✝⁷ : Algebra A B
inst✝⁶ : Field K
inst✝⁵ : Field L
inst✝⁴ : Algebra K L
inst✝³ : IsCyclotomicExtension {n✝} A B
inst✝² : IsDomain A
inst✝¹ : Algebra A K
inst✝ : IsFractionRing A K
n k : ℕ
ζ : A
hn : 2 ≤ n
hk : k.Coprime n
hζ : IsPrimitiveRoot ζ n
h1 : Nat.Coprime 1 n
u : Aˣ
h2 : (1 - ζ) * ∑ i ∈ range k, ζ ^ i = (1 - ζ) * ↑u
hu : (1 - ζ) * ↑u = 1 - ζ ^ k
this : IsUnit ↑u
⊢ ∑ i ∈ range k, ζ ^ i = ↑u
Tactic:
simp at h2
State after:
case h.e'_3
n✝ : ℕ+
K : Type u
L : Type v
A : Type w
B : Type z
inst✝⁹ : CommRing A
inst✝⁸ : CommRing B
inst✝⁷ : Algebra A B
inst✝⁶ : Field K
inst✝⁵ : Field L
inst✝⁴ : Algebra K L
inst✝³ : IsCyclotomicExtension {n✝} A B
inst✝² : IsDomain A
inst✝¹ : Algebra A K
inst✝ : IsFractionRing A K
n k : ℕ
ζ : A
hn : 2 ≤ n
hk : k.Coprime n
hζ : IsPrimitiveRoot ζ n
h1 : Nat.Coprime 1 n
u : Aˣ
hu : (1 - ζ) * ↑u = 1 - ζ ^ k
this : IsUnit ↑u
h2 : ∑ i ∈ range k, ζ ^ i = ↑u ∨ 1 - ζ = 0
⊢ ∑ i ∈ range k, ζ ^ i = ↑u

State before:
case h.e'_3
n✝ : ℕ+
K : Type u
L : Type v
A : Type w
B : Type z
inst✝⁹ : CommRing A
inst✝⁸ : CommRing B
inst✝⁷ : Algebra A B
inst✝⁶ : Field K
inst✝⁵ : Field L
inst✝⁴ : Algebra K L
inst✝³ : IsCyclotomicExtension {n✝} A B
inst✝² : IsDomain A
inst✝¹ : Algebra A K
inst✝ : IsFractionRing A K
n k : ℕ
ζ : A
hn : 2 ≤ n
hk : k.Coprime n
hζ : IsPrimitiveRoot ζ n
h1 : Nat.Coprime 1 n
u : Aˣ
hu : (1 - ζ) * ↑u = 1 - ζ ^ k
this : IsUnit ↑u
h2 : ∑ i ∈ range k, ζ ^ i = ↑u ∨ 1 - ζ = 0
⊢ ∑ i ∈ range k, ζ ^ i = ↑u
Tactic:
cases' h2 with h2 h2
State after:
case h.e'_3.inl
n✝ : ℕ+
K : Type u
L : Type v
A : Type w
B : Type z
inst✝⁹ : CommRing A
inst✝⁸ : CommRing B
inst✝⁷ : Algebra A B
inst✝⁶ : Field K
inst✝⁵ : Field L
inst✝⁴ : Algebra K L
inst✝³ : IsCyclotomicExtension {n✝} A B
inst✝² : IsDomain A
inst✝¹ : Algebra A K
inst✝ : IsFractionRing A K
n k : ℕ
ζ : A
hn : 2 ≤ n
hk : k.Coprime n
hζ : IsPrimitiveRoot ζ n
h1 : Nat.Coprime 1 n
u : Aˣ
hu : (1 - ζ) * ↑u = 1 - ζ ^ k
this : IsUnit ↑u
h2 : ∑ i ∈ range k, ζ ^ i = ↑u
⊢ ∑ i ∈ range k, ζ ^ i = ↑u

case h.e'_3.inr
n✝ : ℕ+
K : Type u
L : Type v
A : Type w
B : Type z
inst✝⁹ : CommRing A
inst✝⁸ : CommRing B
inst✝⁷ : Algebra A B
inst✝⁶ : Field K
inst✝⁵ : Field L
inst✝⁴ : Algebra K L
inst✝³ : IsCyclotomicExtension {n✝} A B
inst✝² : IsDomain A
inst✝¹ : Algebra A K
inst✝ : IsFractionRing A K
n k : ℕ
ζ : A
hn : 2 ≤ n
hk : k.Coprime n
hζ : IsPrimitiveRoot ζ n
h1 : Nat.Coprime 1 n
u : Aˣ
hu : (1 - ζ) * ↑u = 1 - ζ ^ k
this : IsUnit ↑u
h2 : 1 - ζ = 0
⊢ ∑ i ∈ range k, ζ ^ i = ↑u

State before:
case h.e'_3.inl
n✝ : ℕ+
K : Type u
L : Type v
A : Type w
B : Type z
inst✝⁹ : CommRing A
inst✝⁸ : CommRing B
inst✝⁷ : Algebra A B
inst✝⁶ : Field K
inst✝⁵ : Field L
inst✝⁴ : Algebra K L
inst✝³ : IsCyclotomicExtension {n✝} A B
inst✝² : IsDomain A
inst✝¹ : Algebra A K
inst✝ : IsFractionRing A K
n k : ℕ
ζ : A
hn : 2 ≤ n
hk : k.Coprime n
hζ : IsPrimitiveRoot ζ n
h1 : Nat.Coprime 1 n
u : Aˣ
hu : (1 - ζ) * ↑u = 1 - ζ ^ k
this : IsUnit ↑u
h2 : ∑ i ∈ range k, ζ ^ i = ↑u
⊢ ∑ i ∈ range k, ζ ^ i = ↑u

case h.e'_3.inr
n✝ : ℕ+
K : Type u
L : Type v
A : Type w
B : Type z
inst✝⁹ : CommRing A
inst✝⁸ : CommRing B
inst✝⁷ : Algebra A B
inst✝⁶ : Field K
inst✝⁵ : Field L
inst✝⁴ : Algebra K L
inst✝³ : IsCyclotomicExtension {n✝} A B
inst✝² : IsDomain A
inst✝¹ : Algebra A K
inst✝ : IsFractionRing A K
n k : ℕ
ζ : A
hn : 2 ≤ n
hk : k.Coprime n
hζ : IsPrimitiveRoot ζ n
h1 : Nat.Coprime 1 n
u : Aˣ
hu : (1 - ζ) * ↑u = 1 - ζ ^ k
this : IsUnit ↑u
h2 : 1 - ζ = 0
⊢ ∑ i ∈ range k, ζ ^ i = ↑u
Tactic:
exact h2
State after:
case h.e'_3.inr
n✝ : ℕ+
K : Type u
L : Type v
A : Type w
B : Type z
inst✝⁹ : CommRing A
inst✝⁸ : CommRing B
inst✝⁷ : Algebra A B
inst✝⁶ : Field K
inst✝⁵ : Field L
inst✝⁴ : Algebra K L
inst✝³ : IsCyclotomicExtension {n✝} A B
inst✝² : IsDomain A
inst✝¹ : Algebra A K
inst✝ : IsFractionRing A K
n k : ℕ
ζ : A
hn : 2 ≤ n
hk : k.Coprime n
hζ : IsPrimitiveRoot ζ n
h1 : Nat.Coprime 1 n
u : Aˣ
hu : (1 - ζ) * ↑u = 1 - ζ ^ k
this : IsUnit ↑u
h2 : 1 - ζ = 0
⊢ ∑ i ∈ range k, ζ ^ i = ↑u

State before:
case h.e'_3.inr
n✝ : ℕ+
K : Type u
L : Type v
A : Type w
B : Type z
inst✝⁹ : CommRing A
inst✝⁸ : CommRing B
inst✝⁷ : Algebra A B
inst✝⁶ : Field K
inst✝⁵ : Field L
inst✝⁴ : Algebra K L
inst✝³ : IsCyclotomicExtension {n✝} A B
inst✝² : IsDomain A
inst✝¹ : Algebra A K
inst✝ : IsFractionRing A K
n k : ℕ
ζ : A
hn : 2 ≤ n
hk : k.Coprime n
hζ : IsPrimitiveRoot ζ n
h1 : Nat.Coprime 1 n
u : Aˣ
hu : (1 - ζ) * ↑u = 1 - ζ ^ k
this : IsUnit ↑u
h2 : 1 - ζ = 0
⊢ ∑ i ∈ range k, ζ ^ i = ↑u
Tactic:
exfalso
State after:
case h.e'_3.inr
n✝ : ℕ+
K : Type u
L : Type v
A : Type w
B : Type z
inst✝⁹ : CommRing A
inst✝⁸ : CommRing B
inst✝⁷ : Algebra A B
inst✝⁶ : Field K
inst✝⁵ : Field L
inst✝⁴ : Algebra K L
inst✝³ : IsCyclotomicExtension {n✝} A B
inst✝² : IsDomain A
inst✝¹ : Algebra A K
inst✝ : IsFractionRing A K
n k : ℕ
ζ : A
hn : 2 ≤ n
hk : k.Coprime n
hζ : IsPrimitiveRoot ζ n
h1 : Nat.Coprime 1 n
u : Aˣ
hu : (1 - ζ) * ↑u = 1 - ζ ^ k
this : IsUnit ↑u
h2 : 1 - ζ = 0
⊢ False

State before:
case h.e'_3.inr
n✝ : ℕ+
K : Type u
L : Type v
A : Type w
B : Type z
inst✝⁹ : CommRing A
inst✝⁸ : CommRing B
inst✝⁷ : Algebra A B
inst✝⁶ : Field K
inst✝⁵ : Field L
inst✝⁴ : Algebra K L
inst✝³ : IsCyclotomicExtension {n✝} A B
inst✝² : IsDomain A
inst✝¹ : Algebra A K
inst✝ : IsFractionRing A K
n k : ℕ
ζ : A
hn : 2 ≤ n
hk : k.Coprime n
hζ : IsPrimitiveRoot ζ n
h1 : Nat.Coprime 1 n
u : Aˣ
hu : (1 - ζ) * ↑u = 1 - ζ ^ k
this : IsUnit ↑u
h2 : 1 - ζ = 0
⊢ False
Tactic:
have hn1 : 1 < n := by linarith
State after:
case h.e'_3.inr
n✝ : ℕ+
K : Type u
L : Type v
A : Type w
B : Type z
inst✝⁹ : CommRing A
inst✝⁸ : CommRing B
inst✝⁷ : Algebra A B
inst✝⁶ : Field K
inst✝⁵ : Field L
inst✝⁴ : Algebra K L
inst✝³ : IsCyclotomicExtension {n✝} A B
inst✝² : IsDomain A
inst✝¹ : Algebra A K
inst✝ : IsFractionRing A K
n k : ℕ
ζ : A
hn : 2 ≤ n
hk : k.Coprime n
hζ : IsPrimitiveRoot ζ n
h1 : Nat.Coprime 1 n
u : Aˣ
hu : (1 - ζ) * ↑u = 1 - ζ ^ k
this : IsUnit ↑u
h2 : 1 - ζ = 0
hn1 : 1 < n
⊢ False

State before:
case h.e'_3.inr
n✝ : ℕ+
K : Type u
L : Type v
A : Type w
B : Type z
inst✝⁹ : CommRing A
inst✝⁸ : CommRing B
inst✝⁷ : Algebra A B
inst✝⁶ : Field K
inst✝⁵ : Field L
inst✝⁴ : Algebra K L
inst✝³ : IsCyclotomicExtension {n✝} A B
inst✝² : IsDomain A
inst✝¹ : Algebra A K
inst✝ : IsFractionRing A K
n k : ℕ
ζ : A
hn : 2 ≤ n
hk : k.Coprime n
hζ : IsPrimitiveRoot ζ n
h1 : Nat.Coprime 1 n
u : Aˣ
hu : (1 - ζ) * ↑u = 1 - ζ ^ k
this : IsUnit ↑u
h2 : 1 - ζ = 0
hn1 : 1 < n
⊢ False
Tactic:
have hp := IsPrimitiveRoot.pow_ne_one_of_pos_of_lt hζ one_pos hn1
State after:
case h.e'_3.inr
n✝ : ℕ+
K : Type u
L : Type v
A : Type w
B : Type z
inst✝⁹ : CommRing A
inst✝⁸ : CommRing B
inst✝⁷ : Algebra A B
inst✝⁶ : Field K
inst✝⁵ : Field L
inst✝⁴ : Algebra K L
inst✝³ : IsCyclotomicExtension {n✝} A B
inst✝² : IsDomain A
inst✝¹ : Algebra A K
inst✝ : IsFractionRing A K
n k : ℕ
ζ : A
hn : 2 ≤ n
hk : k.Coprime n
hζ : IsPrimitiveRoot ζ n
h1 : Nat.Coprime 1 n
u : Aˣ
hu : (1 - ζ) * ↑u = 1 - ζ ^ k
this : IsUnit ↑u
h2 : 1 - ζ = 0
hn1 : 1 < n
hp : ζ ^ 1 ≠ 1
⊢ False

State before:
case h.e'_3.inr
n✝ : ℕ+
K : Type u
L : Type v
A : Type w
B : Type z
inst✝⁹ : CommRing A
inst✝⁸ : CommRing B
inst✝⁷ : Algebra A B
inst✝⁶ : Field K
inst✝⁵ : Field L
inst✝⁴ : Algebra K L
inst✝³ : IsCyclotomicExtension {n✝} A B
inst✝² : IsDomain A
inst✝¹ : Algebra A K
inst✝ : IsFractionRing A K
n k : ℕ
ζ : A
hn : 2 ≤ n
hk : k.Coprime n
hζ : IsPrimitiveRoot ζ n
h1 : Nat.Coprime 1 n
u : Aˣ
hu : (1 - ζ) * ↑u = 1 - ζ ^ k
this : IsUnit ↑u
h2 : 1 - ζ = 0
hn1 : 1 < n
hp : ζ ^ 1 ≠ 1
⊢ False
Tactic:
simp at *
State after:
case h.e'_3.inr
n✝ : ℕ+
K : Type u
L : Type v
A : Type w
B : Type z
inst✝⁹ : CommRing A
inst✝⁸ : CommRing B
inst✝⁷ : Algebra A B
inst✝⁶ : Field K
inst✝⁵ : Field L
inst✝⁴ : Algebra K L
inst✝³ : IsCyclotomicExtension {n✝} A B
inst✝² : IsDomain A
inst✝¹ : Algebra A K
inst✝ : IsFractionRing A K
n k : ℕ
ζ : A
hn : 2 ≤ n
hk : k.Coprime n
hζ : IsPrimitiveRoot ζ n
u : Aˣ
hu : (1 - ζ) * ↑u = 1 - ζ ^ k
h2 : 1 - ζ = 0
hn1 : 1 < n
h1 this : True
hp : ¬ζ = 1
⊢ False

State before:
case h.e'_3.inr
n✝ : ℕ+
K : Type u
L : Type v
A : Type w
B : Type z
inst✝⁹ : CommRing A
inst✝⁸ : CommRing B
inst✝⁷ : Algebra A B
inst✝⁶ : Field K
inst✝⁵ : Field L
inst✝⁴ : Algebra K L
inst✝³ : IsCyclotomicExtension {n✝} A B
inst✝² : IsDomain A
inst✝¹ : Algebra A K
inst✝ : IsFractionRing A K
n k : ℕ
ζ : A
hn : 2 ≤ n
hk : k.Coprime n
hζ : IsPrimitiveRoot ζ n
u : Aˣ
hu : (1 - ζ) * ↑u = 1 - ζ ^ k
h2 : 1 - ζ = 0
hn1 : 1 < n
h1 this : True
hp : ¬ζ = 1
⊢ False
Tactic:
rw [sub_eq_zero] at h2
State after:
case h.e'_3.inr
n✝ : ℕ+
K : Type u
L : Type v
A : Type w
B : Type z
inst✝⁹ : CommRing A
inst✝⁸ : CommRing B
inst✝⁷ : Algebra A B
inst✝⁶ : Field K
inst✝⁵ : Field L
inst✝⁴ : Algebra K L
inst✝³ : IsCyclotomicExtension {n✝} A B
inst✝² : IsDomain A
inst✝¹ : Algebra A K
inst✝ : IsFractionRing A K
n k : ℕ
ζ : A
hn : 2 ≤ n
hk : k.Coprime n
hζ : IsPrimitiveRoot ζ n
u : Aˣ
hu : (1 - ζ) * ↑u = 1 - ζ ^ k
h2 : 1 = ζ
hn1 : 1 < n
h1 this : True
hp : ¬ζ = 1
⊢ False

State before:
case h.e'_3.inr
n✝ : ℕ+
K : Type u
L : Type v
A : Type w
B : Type z
inst✝⁹ : CommRing A
inst✝⁸ : CommRing B
inst✝⁷ : Algebra A B
inst✝⁶ : Field K
inst✝⁵ : Field L
inst✝⁴ : Algebra K L
inst✝³ : IsCyclotomicExtension {n✝} A B
inst✝² : IsDomain A
inst✝¹ : Algebra A K
inst✝ : IsFractionRing A K
n k : ℕ
ζ : A
hn : 2 ≤ n
hk : k.Coprime n
hζ : IsPrimitiveRoot ζ n
u : Aˣ
hu : (1 - ζ) * ↑u = 1 - ζ ^ k
h2 : 1 = ζ
hn1 : 1 < n
h1 this : True
hp : ¬ζ = 1
⊢ False
Tactic:
rw [← h2] at hp
State after:
case h.e'_3.inr
n✝ : ℕ+
K : Type u
L : Type v
A : Type w
B : Type z
inst✝⁹ : CommRing A
inst✝⁸ : CommRing B
inst✝⁷ : Algebra A B
inst✝⁶ : Field K
inst✝⁵ : Field L
inst✝⁴ : Algebra K L
inst✝³ : IsCyclotomicExtension {n✝} A B
inst✝² : IsDomain A
inst✝¹ : Algebra A K
inst✝ : IsFractionRing A K
n k : ℕ
ζ : A
hn : 2 ≤ n
hk : k.Coprime n
hζ : IsPrimitiveRoot ζ n
u : Aˣ
hu : (1 - ζ) * ↑u = 1 - ζ ^ k
h2 : 1 = ζ
hn1 : 1 < n
h1 this : True
hp : ¬1 = 1
⊢ False

State before:
case h.e'_3.inr
n✝ : ℕ+
K : Type u
L : Type v
A : Type w
B : Type z
inst✝⁹ : CommRing A
inst✝⁸ : CommRing B
inst✝⁷ : Algebra A B
inst✝⁶ : Field K
inst✝⁵ : Field L
inst✝⁴ : Algebra K L
inst✝³ : IsCyclotomicExtension {n✝} A B
inst✝² : IsDomain A
inst✝¹ : Algebra A K
inst✝ : IsFractionRing A K
n k : ℕ
ζ : A
hn : 2 ≤ n
hk : k.Coprime n
hζ : IsPrimitiveRoot ζ n
u : Aˣ
hu : (1 - ζ) * ↑u = 1 - ζ ^ k
h2 : 1 = ζ
hn1 : 1 < n
h1 this : True
hp : ¬1 = 1
⊢ False
Tactic:
simp only [eq_self_iff_true, not_true] at hp
State after:
no goals

State before:
n✝ : ℕ+
K : Type u
L : Type v
A : Type w
B : Type z
inst✝⁹ : CommRing A
inst✝⁸ : CommRing B
inst✝⁷ : Algebra A B
inst✝⁶ : Field K
inst✝⁵ : Field L
inst✝⁴ : Algebra K L
inst✝³ : IsCyclotomicExtension {n✝} A B
inst✝² : IsDomain A
inst✝¹ : Algebra A K
inst✝ : IsFractionRing A K
n k : ℕ
ζ : A
hn : 2 ≤ n
hk : k.Coprime n
hζ : IsPrimitiveRoot ζ n
h1 : Nat.Coprime 1 n
u : Aˣ
hu : (1 - ζ) * ↑u = 1 - ζ ^ k
this : IsUnit ↑u
h2 : 1 - ζ = 0
⊢ 1 < n
Tactic:
linarith
State after:
no goals