Theorem: IsPrimitiveRoot.prime_span_sub_one (FltRegular/NumberTheory/Cyclotomic/MoreLemmas.lean)

State before:
K : Type u_1
p : ℕ+
hpri : Fact p.Prime
inst✝² : Field K
inst✝¹ : CharZero K
inst✝ : IsCyclotomicExtension {p} ℚ K
ζ : K
hζ : IsPrimitiveRoot ζ ↑p
hp : p ≠ 2
⊢ Prime (Ideal.span {↑hζ.unit' - 1})
Tactic:
haveI : Fact (Nat.Prime p) := hpri
State after:
K : Type u_1
p : ℕ+
hpri : Fact p.Prime
inst✝² : Field K
inst✝¹ : CharZero K
inst✝ : IsCyclotomicExtension {p} ℚ K
ζ : K
hζ : IsPrimitiveRoot ζ ↑p
hp : p ≠ 2
this : Fact (↑p).Prime
⊢ Prime (Ideal.span {↑hζ.unit' - 1})

State before:
K : Type u_1
p : ℕ+
hpri : Fact p.Prime
inst✝² : Field K
inst✝¹ : CharZero K
inst✝ : IsCyclotomicExtension {p} ℚ K
ζ : K
hζ : IsPrimitiveRoot ζ ↑p
hp : p ≠ 2
this : Fact (↑p).Prime
⊢ Prime (Ideal.span {↑hζ.unit' - 1})
Tactic:
letI := IsCyclotomicExtension.numberField {p} ℚ K
State after:
K : Type u_1
p : ℕ+
hpri : Fact p.Prime
inst✝² : Field K
inst✝¹ : CharZero K
inst✝ : IsCyclotomicExtension {p} ℚ K
ζ : K
hζ : IsPrimitiveRoot ζ ↑p
hp : p ≠ 2
this✝ : Fact (↑p).Prime
this : NumberField K := IsCyclotomicExtension.numberField {p} ℚ K
⊢ Prime (Ideal.span {↑hζ.unit' - 1})

State before:
K : Type u_1
p : ℕ+
hpri : Fact p.Prime
inst✝² : Field K
inst✝¹ : CharZero K
inst✝ : IsCyclotomicExtension {p} ℚ K
ζ : K
hζ : IsPrimitiveRoot ζ ↑p
hp : p ≠ 2
this✝ : Fact (↑p).Prime
this : NumberField K := IsCyclotomicExtension.numberField {p} ℚ K
⊢ Prime (Ideal.span {↑hζ.unit' - 1})
Tactic:
rw [Ideal.prime_iff_isPrime,
  Ideal.span_singleton_prime (hζ.unit'_coe.sub_one_ne_zero hpri.out.one_lt)]
State after:
K : Type u_1
p : ℕ+
hpri : Fact p.Prime
inst✝² : Field K
inst✝¹ : CharZero K
inst✝ : IsCyclotomicExtension {p} ℚ K
ζ : K
hζ : IsPrimitiveRoot ζ ↑p
hp : p ≠ 2
this✝ : Fact (↑p).Prime
this : NumberField K := IsCyclotomicExtension.numberField {p} ℚ K
⊢ Prime (↑hζ.unit' - 1)

K : Type u_1
p : ℕ+
hpri : Fact p.Prime
inst✝² : Field K
inst✝¹ : CharZero K
inst✝ : IsCyclotomicExtension {p} ℚ K
ζ : K
hζ : IsPrimitiveRoot ζ ↑p
hp : p ≠ 2
this✝ : Fact (↑p).Prime
this : NumberField K := IsCyclotomicExtension.numberField {p} ℚ K
⊢ Ideal.span {↑hζ.unit' - 1} ≠ ⊥

State before:
K : Type u_1
p : ℕ+
hpri : Fact p.Prime
inst✝² : Field K
inst✝¹ : CharZero K
inst✝ : IsCyclotomicExtension {p} ℚ K
ζ : K
hζ : IsPrimitiveRoot ζ ↑p
hp : p ≠ 2
this✝ : Fact (↑p).Prime
this : NumberField K := IsCyclotomicExtension.numberField {p} ℚ K
⊢ Prime (↑hζ.unit' - 1)

K : Type u_1
p : ℕ+
hpri : Fact p.Prime
inst✝² : Field K
inst✝¹ : CharZero K
inst✝ : IsCyclotomicExtension {p} ℚ K
ζ : K
hζ : IsPrimitiveRoot ζ ↑p
hp : p ≠ 2
this✝ : Fact (↑p).Prime
this : NumberField K := IsCyclotomicExtension.numberField {p} ℚ K
⊢ Ideal.span {↑hζ.unit' - 1} ≠ ⊥
Tactic:
exact hζ.zeta_sub_one_prime'
State after:
K : Type u_1
p : ℕ+
hpri : Fact p.Prime
inst✝² : Field K
inst✝¹ : CharZero K
inst✝ : IsCyclotomicExtension {p} ℚ K
ζ : K
hζ : IsPrimitiveRoot ζ ↑p
hp : p ≠ 2
this✝ : Fact (↑p).Prime
this : NumberField K := IsCyclotomicExtension.numberField {p} ℚ K
⊢ Ideal.span {↑hζ.unit' - 1} ≠ ⊥

State before:
K : Type u_1
p : ℕ+
hpri : Fact p.Prime
inst✝² : Field K
inst✝¹ : CharZero K
inst✝ : IsCyclotomicExtension {p} ℚ K
ζ : K
hζ : IsPrimitiveRoot ζ ↑p
hp : p ≠ 2
this✝ : Fact (↑p).Prime
this : NumberField K := IsCyclotomicExtension.numberField {p} ℚ K
⊢ Ideal.span {↑hζ.unit' - 1} ≠ ⊥
Tactic:
rw [Ne, Ideal.span_singleton_eq_bot]
State after:
K : Type u_1
p : ℕ+
hpri : Fact p.Prime
inst✝² : Field K
inst✝¹ : CharZero K
inst✝ : IsCyclotomicExtension {p} ℚ K
ζ : K
hζ : IsPrimitiveRoot ζ ↑p
hp : p ≠ 2
this✝ : Fact (↑p).Prime
this : NumberField K := IsCyclotomicExtension.numberField {p} ℚ K
⊢ ¬↑hζ.unit' - 1 = 0

State before:
K : Type u_1
p : ℕ+
hpri : Fact p.Prime
inst✝² : Field K
inst✝¹ : CharZero K
inst✝ : IsCyclotomicExtension {p} ℚ K
ζ : K
hζ : IsPrimitiveRoot ζ ↑p
hp : p ≠ 2
this✝ : Fact (↑p).Prime
this : NumberField K := IsCyclotomicExtension.numberField {p} ℚ K
⊢ ¬↑hζ.unit' - 1 = 0
Tactic:
exact hζ.unit'_coe.sub_one_ne_zero hpri.out.one_lt
State after:
no goals