Skip to content

Commit 12a6d53

Browse files
bump
1 parent 0d73b91 commit 12a6d53

25 files changed

+95
-90
lines changed

FltRegular.lean

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,5 +30,3 @@ public import FltRegular.SmallNumbers.Seven.Seven
3030
public import FltRegular.SmallNumbers.SmallNumbers
3131
public import FltRegular.SmallNumbers.Thirteen.FLT13
3232
public import FltRegular.SmallNumbers.Thirteen.Thirteen
33-
import Mathlib.Tactic.NormNum.NatFactorial
34-
import Mathlib.Tactic.NormNum.Prime

FltRegular/CaseI/AuxLemmas.lean

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ theorem auxf0k₁ (hp5 : 5 ≤ p) (b : ℤ) : ∃ i : Fin p, f0k₁ b p (i : ℕ
5454
apply hpred
5555
simp [h2]
5656

57+
set_option backward.isDefEq.respectTransparency false in
5758
include hpri in
5859
theorem aux0k₁ {a b c : ℤ} {ζ : R} (hp5 : 5 ≤ p) (hζ : IsPrimitiveRoot ζ p)
5960
(caseI : ¬↑p ∣ a * b * c) {k₁ k₂ : Fin p} (hcong : k₂ ≡ k₁ - 1 [ZMOD p])
@@ -93,6 +94,7 @@ theorem aux_cong0k₂ {k : Fin p} (hcong : k ≡ 1 [ZMOD p]) : k = ⟨1, hpri.on
9394
theorem auxf0k₂ (hp5 : 5 ≤ p) (a b : ℤ) : ∃ i : Fin p, f0k₂ a b (i : ℕ) = 0 :=
9495
⟨⟨2, two_lt hp5⟩, rfl⟩
9596

97+
set_option backward.isDefEq.respectTransparency false in
9698
include hpri in
9799
theorem aux0k₂ {a b : ℤ} {ζ : R} (hp5 : 5 ≤ p) (hζ : IsPrimitiveRoot ζ p) (hab : ¬a ≡ b [ZMOD p])
98100
{k₁ k₂ : Fin p} (hcong : k₂ ≡ k₁ - 1 [ZMOD p])
@@ -167,6 +169,7 @@ include hpri in
167169
theorem auxf1k₂ (a : ℤ) : ∃ i : Fin p, f1k₂ a i = 0 :=
168170
⟨⟨1, hpri.one_lt⟩, rfl⟩
169171

172+
set_option backward.isDefEq.respectTransparency false in
170173
include hpri in
171174
theorem aux1k₂ {a b c : ℤ} {ζ : R} (hp5 : 5 ≤ p) (hζ : IsPrimitiveRoot ζ p)
172175
(caseI : ¬↑p ∣ a * b * c) {k₁ k₂ : Fin p} (hcong : k₂ ≡ k₁ - 1 [ZMOD p])

FltRegular/CaseI/Statement.lean

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,7 @@ theorem is_principal_aux {K' : Type*} [Field K'] [CharZero K'] [IsCyclotomicExte
143143

144144
variable [hpri : Fact p.Prime]
145145

146+
set_option backward.isDefEq.respectTransparency false in
146147
theorem exists_ideal {a b c : ℤ} (h5p : 5 ≤ p) (H : a ^ p + b ^ p = c ^ p)
147148
(hgcd : ({ a, b, c } : Finset ℤ).gcd id = 1)
148149
(caseI : ¬↑p ∣ a * b * c) {ζ : R} (hζ : ζ ∈ nthRootsFinset p 1) :
@@ -160,6 +161,7 @@ theorem exists_ideal {a b c : ℤ} (h5p : 5 ≤ p) (H : a ^ p + b ^ p = c ^ p)
160161
· exact hpri.out
161162
· exact h5p
162163

164+
set_option backward.isDefEq.respectTransparency false in
163165
theorem is_principal {a b c : ℤ} {ζ : R} (hreg : IsRegularPrime p) (hp5 : 5 ≤ p)
164166
(hgcd : ({ a, b, c } : Finset ℤ).gcd id = 1) (caseI : ¬↑p ∣ a * b * c)
165167
(H : a ^ p + b ^ p = c ^ p) (hζ : IsPrimitiveRoot ζ p) :
@@ -168,6 +170,7 @@ theorem is_principal {a b c : ℤ} {ζ : R} (hreg : IsRegularPrime p) (hp5 : 5
168170
obtain ⟨I, hI⟩ := exists_ideal hp5 H hgcd caseI hζ
169171
exact is_principal_aux hreg hI
170172

173+
set_option backward.isDefEq.respectTransparency false in
171174
theorem ex_fin_div {a b c : ℤ} {ζ : R} (hp5 : 5 ≤ p) (hreg : IsRegularPrime p)
172175
(hζ : IsPrimitiveRoot ζ p) (hgcd : ({a, b, c} : Finset ℤ).gcd id = 1) (caseI : ¬↑p ∣ a * b * c)
173176
(H : a ^ p + b ^ p = c ^ p) :
@@ -211,6 +214,7 @@ theorem ex_fin_div {a b c : ℤ} {ζ : R} (hp5 : 5 ≤ p) (hreg : IsRegularPrime
211214
simp only [natAbs_of_nonneg (emod_nonneg _ hpcoe), ← ZMod.intCast_zmod_eq_zero_iff_dvd,
212215
Int.cast_sub, ZMod.intCast_mod, Int.cast_mul, Int.cast_one, sub_self]
213216

217+
set_option backward.isDefEq.respectTransparency false in
214218
/-- Case I with additional assumptions. -/
215219
theorem caseI_easier {a b c : ℤ} (hreg : IsRegularPrime p) (hp5 : 5 ≤ p)
216220
(hgcd : ({a, b, c} : Finset ℤ).gcd id = 1) (hab : ¬a ≡ b [ZMOD p]) (caseI : ¬↑p ∣ a * b * c) :

FltRegular/CaseII/AuxLemmas.lean

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ lemma WfDvdMonoid.multiplicity_finite_iff [WfDvdMonoid M] {x y : M} :
1313
FiniteMultiplicity x y ↔ ¬IsUnit x ∧ y ≠ 0 :=
1414
fun h => ⟨h.not_unit, h.ne_zero⟩, and_imp.mpr FiniteMultiplicity.of_not_isUnit⟩
1515

16+
set_option backward.isDefEq.respectTransparency false in
1617
lemma dvd_iff_emultiplicity_le [UniqueFactorizationMonoid M] {a b : M} (ha : a ≠ 0) :
1718
a ∣ b ↔ ∀ p : M, Prime p → emultiplicity p a ≤ emultiplicity p b := by
1819
constructor
@@ -43,6 +44,7 @@ lemma dvd_iff_emultiplicity_le [UniqueFactorizationMonoid M] {a b : M} (ha : a
4344
(FiniteMultiplicity.of_not_isUnit hq.not_unit hq.ne_zero).emultiplicity_self,
4445
add_comm, add_le_add_iff_right_of_ne_top (ENat.coe_ne_top _), Nat.one_le_cast] at this
4546

47+
set_option backward.isDefEq.respectTransparency false in
4648
lemma pow_dvd_pow_iff_dvd [UniqueFactorizationMonoid M] {a b : M} {x : ℕ} (h' : x ≠ 0) :
4749
a ^ x ∣ b ^ x ↔ a ∣ b := by
4850
classical

FltRegular/CaseII/InductionStep.lean

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,7 @@ lemma x_plus_y_mul_ne_zero : x + y * η ≠ 0 := by
9191

9292
variable [IsCyclotomicExtension {p} ℚ K]
9393

94+
set_option backward.isDefEq.respectTransparency false in
9495
include e hp in
9596
/- Let π = ζ -1, then π divides x+yη with η a primivite root of unity. -/
9697
lemma one_sub_zeta_dvd_zeta_pow_sub : π ∣ x + y * η := by
@@ -140,6 +141,7 @@ lemma div_zeta_sub_one_sub (η₁ η₂) (hη : η₁ ≠ η₂) :
140141
rw [Ne, ← Subtype.ext_iff.not]
141142
exact hη
142143

144+
set_option backward.isDefEq.respectTransparency false in
143145
include hy in
144146
/- sending η to (x+yη)/(ζ-1) mod (π) = 𝔭 is injective. -/
145147
lemma div_zeta_sub_one_Injective :
@@ -159,6 +161,7 @@ instance : Finite (𝓞 K ⧸ 𝔭) := by
159161
rw [← Ideal.absNorm_ne_zero_iff, Ne, Ideal.absNorm_eq_zero_iff, Ideal.span_singleton_eq_bot]
160162
exact hζ.unit'_coe.sub_one_ne_zero hpri.out.one_lt
161163

164+
set_option backward.isDefEq.respectTransparency false in
162165
include hy in
163166
/- sending η to (x+yη)/(ζ-1) mod (π) = 𝔭 is bijective. -/
164167
lemma div_zeta_sub_one_Bijective :
@@ -331,8 +334,8 @@ lemma p_dvd_a_iff : 𝔭 ∣ 𝔞 η ↔ η = η₀ := by
331334
lemma p_pow_dvd_c_eta_zero : 𝔭 ^ (m * p) ∣ 𝔠 η₀ := by
332335
classical
333336
rw [← one_mul (𝔠 η₀), ← p_pow_dvd_c_eta_zero_aux hp hζ e hy, dvd_gcd_mul_iff_dvd_mul,
334-
mul_comm _ (𝔠 η₀), ← Finset.prod_eq_mul_prod_diff_singleton (Finset.mem_attach _ η₀) 𝔠,
335-
prod_c, mul_pow]
337+
mul_comm _ (𝔠 η₀)]
338+
rw [← Finset.prod_eq_mul_prod_diff_singleton_of_mem (Finset.mem_attach _ η₀) 𝔠,prod_c, mul_pow]
336339
apply dvd_mul_of_dvd_right
337340
rw [pow_mul]
338341

@@ -560,6 +563,7 @@ lemma exists_solution :
560563
(a_div_a_zero_denom_spec hp hζ e hy hz η₁ hreg hη₁)
561564
(a_div_a_zero_denom_spec hp hζ e hy hz η₂ hreg hη₂)
562565

566+
set_option backward.isDefEq.respectTransparency false in
563567
include hp hreg e hy hz in
564568
lemma exists_solution' :
565569
∃ (x' y' z' : 𝓞 K) (ε₃ : (𝓞 K)ˣ),

FltRegular/CaseII/Statement.lean

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ lemma not_exists_solution {m : ℕ} (hm : 1 ≤ m) :
3333
rintro ⟨x, y, z, ε₃, hy, hz, e⟩
3434
exact IH (exists_solution' hp hζ e hy hz hreg)
3535

36+
set_option backward.isDefEq.respectTransparency false in
3637
include hp hreg in
3738
lemma not_exists_solution' :
3839
¬∃ (x y z : 𝓞 K), ¬(hζ.unit' : 𝓞 K) - 1 ∣ y ∧ (hζ.unit' : 𝓞 K) - 1 ∣ z ∧ z ≠ 0
@@ -58,6 +59,7 @@ lemma not_exists_solution' :
5859
refine not_exists_solution hp hreg hζ hm ⟨x, y, z, 1, hy, hz'', ?_⟩
5960
rwa [Units.val_one, one_mul]
6061

62+
set_option backward.isDefEq.respectTransparency false in
6163
lemma not_exists_Int_solution {p : ℕ} [hpri : Fact (Nat.Prime p)] (hreg : IsRegularPrime p)
6264
(hodd : p ≠ 2) : ¬∃ (x y z : ℤ), ¬↑p ∣ y ∧ ↑p ∣ z ∧ z ≠ 0 ∧ x ^ p + y ^ p = z ^ p := by
6365
haveI := CyclotomicField.isCyclotomicExtension p ℚ

FltRegular/MayAssume/Lemmas.lean

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,6 @@ theorem a_not_cong_b {p : ℕ} {a b c : ℤ} (hpri : p.Prime) (hp5 : 5 ≤ p) (h
9999
ring
100100
· convert hprod using 1
101101
ring
102-
· ring_nf at caseI ⊢
103-
exact caseI
102+
· grind
104103

105104
end FltRegular

FltRegular/NumberTheory/Cyclotomic/CyclRat.lean

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,17 +108,21 @@ section NeZero
108108

109109
variable [NeZero p]
110110

111+
set_option backward.isDefEq.respectTransparency false in
111112
instance : IsGalois ℚ (CyclotomicField p ℚ) :=
112113
IsCyclotomicExtension.isGalois {p} _ _
113114

115+
set_option backward.isDefEq.respectTransparency false in
114116
instance : FiniteDimensional ℚ (CyclotomicField p ℚ) :=
115117
IsCyclotomicExtension.finiteDimensional {p} _ _
116118

119+
set_option backward.isDefEq.respectTransparency false in
117120
instance : NumberField (CyclotomicField p ℚ) :=
118121
IsCyclotomicExtension.numberField {p} ℚ _
119122

120123
end NeZero
121124

125+
set_option backward.isDefEq.respectTransparency false in
122126
theorem zeta_sub_one_dvb_p [Fact p.Prime] {η : R} (hη : η ∈ nthRootsFinset p 1)
123127
(hne1 : η ≠ 1) : 1 - η ∣ (p : R) := by
124128
have hη : IsPrimitiveRoot (η : CyclotomicField p ℚ) (p ^ 1) := by
@@ -130,6 +134,7 @@ theorem zeta_sub_one_dvb_p [Fact p.Prime] {η : R} (hη : η ∈ nthRootsFinset
130134
ext
131135
simp
132136

137+
set_option backward.isDefEq.respectTransparency false in
133138
theorem one_sub_zeta_prime [Fact p.Prime] {η : R} (hη : η ∈ nthRootsFinset p 1)
134139
(hne1 : η ≠ 1) : Prime (1 - η) := by
135140
have h := prim_coe η (isPrimitiveRoot_of_mem_nthRootsFinset Fact.out hη hne1)
@@ -282,6 +287,7 @@ theorem fltIdeals_coprime (hpri : p.Prime) (p5 : 5 ≤ p) {x y z : ℤ}
282287

283288
variable {L}
284289

290+
set_option backward.isDefEq.respectTransparency false in
285291
theorem dvd_last_coeff_cycl_integer [hp : Fact p.Prime] {ζ : 𝓞 L}
286292
(hζ : IsPrimitiveRoot ζ p) {f : Fin p → ℤ}
287293
(hf : ∃ i, f i = 0) {m : ℤ} (hdiv : ↑m ∣ ∑ j, f j • ζ ^ (j : ℕ)) :
@@ -329,6 +335,7 @@ theorem dvd_last_coeff_cycl_integer [hp : Fact p.Prime] {ζ : 𝓞 L}
329335
rw [hy]
330336
simp [dvd_neg]
331337

338+
set_option backward.isDefEq.respectTransparency false in
332339
theorem dvd_coeff_cycl_integer (hp : p.Prime) {ζ : 𝓞 L} (hζ : IsPrimitiveRoot ζ p)
333340
{f : Fin p → ℤ} (hf : ∃ i, f i = 0) {m : ℤ} (hdiv : ↑m ∣ ∑ j, f j • ζ ^ (j : ℕ)) :
334341
∀ j, m ∣ f j := by

FltRegular/NumberTheory/Cyclotomic/MoreLemmas.lean

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ lemma isCoprime_of_not_zeta_sub_one_dvd {x : 𝓞 K} (hx : ¬ (hζ.unit' : 𝓞
5151
Ideal.mem_span_singleton]
5252
· simpa only [ge_iff_le, tsub_pos_iff_lt] using hpri.out.one_lt
5353

54+
set_option backward.isDefEq.respectTransparency false in
5455
lemma exists_zeta_sub_one_dvd_sub_Int (a : 𝓞 K) : ∃ b : ℤ, (hζ.unit' - 1 : 𝓞 K) ∣ a - b := by
5556
letI : Fact (Nat.Prime p) := hpri
5657
simp_rw [← Ideal.Quotient.eq_zero_iff_dvd, ← Ideal.Quotient.mk_eq_mk, Submodule.Quotient.mk_sub,
@@ -109,6 +110,7 @@ lemma IsPrimitiveRoot.sub_one_dvd_sub {A : Type*} [CommRing A] [IsDomain A]
109110
· rw [h, sub_self]; exact dvd_zero _
110111
· exact (hζ.ntRootsFinset_pairwise_associated_sub_one_sub_of_prime hp hη₁ hη₂ h).dvd
111112

113+
set_option backward.isDefEq.respectTransparency false in
112114
lemma quotient_zero_sub_one_comp_aut (σ : 𝓞 K →+* 𝓞 K) :
113115
(Ideal.Quotient.mk (Ideal.span {(hζ.unit' : 𝓞 K) - 1})).comp σ = Ideal.Quotient.mk _ := by
114116
have : Fact (Nat.Prime p) := hpri
@@ -128,8 +130,7 @@ lemma quotient_zero_sub_one_comp_aut (σ : 𝓞 K →+* 𝓞 K) :
128130
· rw [mem_nthRootsFinset (NeZero.pos p), ← map_pow, hζ.unit'_coe.pow_eq_one, map_one]
129131
· rw [mem_nthRootsFinset (NeZero.pos p), hζ.unit'_coe.pow_eq_one]
130132

131-
set_option synthInstance.maxHeartbeats 80000 in
132-
-- Needed for `AddMonoidHomClass (𝓞 K →+* 𝓞 K ⧸ Ideal.span {↑hζ.unit' - 1}) ? ?`
133+
set_option backward.isDefEq.respectTransparency false in
133134
open NumberField.RingOfIntegers in
134135
lemma zeta_sub_one_dvd_trace_sub_smul (x : 𝓞 K) :
135136
(hζ.unit' - 1 : 𝓞 K) ∣ Algebra.trace ℤ _ x - (p - 1) • x := by
@@ -149,6 +150,7 @@ lemma zeta_sub_one_dvd_trace_sub_smul (x : 𝓞 K) :
149150
IsCyclotomicExtension.finrank K (cyclotomic.irreducible_rat (NeZero.pos p)),
150151
Nat.totient_prime hpri.out]
151152

153+
set_option backward.isDefEq.respectTransparency false in
152154
lemma zeta_sub_one_pow_dvd_norm_sub_pow (x : 𝓞 K) :
153155
(hζ.unit' - 1 : 𝓞 K) ^ p ∣ (Algebra.norm ℤ (1 + p • x) : 𝓞 K) - 1 + p • x := by
154156
letI := IsCyclotomicExtension.numberField {p} ℚ K
@@ -171,6 +173,7 @@ lemma zeta_sub_one_pow_dvd_norm_sub_pow (x : 𝓞 K) :
171173
zify [(Nat.Prime.one_lt hpri.out).le]
172174
linarith only [Nat.Prime.two_le hpri.out]
173175

176+
set_option backward.isDefEq.respectTransparency false in
174177
lemma norm_add_one_smul_of_isUnit {K} [Field K] [NumberField K] {p : ℕ} (hpri : p.Prime)
175178
(hp : p ≠ 2) (x : 𝓞 K)
176179
(hx : IsUnit (1 + p • x)) : Algebra.norm ℤ (1 + p • x) = 1 := by

FltRegular/NumberTheory/Cyclotomic/UnitLemmas.lean

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ theorem IsPrimitiveRoot.unit'_coe : IsPrimitiveRoot hζ.unit'.1 p := by
4848
rw [← this] at z1
4949
exact z1.of_map_of_injective (IsFractionRing.injective _ _)
5050

51+
set_option backward.isDefEq.respectTransparency false in
5152
theorem eq_one_mod_one_sub {A : Type*} [CommRing A] {t : A} :
5253
algebraMap A (A ⧸ Ideal.span ({t - 1} : Set A)) t = 1 :=
5354
by
@@ -56,13 +57,15 @@ theorem eq_one_mod_one_sub {A : Type*} [CommRing A] {t : A} :
5657
apply Ideal.subset_span
5758
exact Set.mem_singleton _
5859

60+
set_option backward.isDefEq.respectTransparency false in
5961
theorem IsPrimitiveRoot.eq_one_mod_sub_of_pow {A : Type*} [CommRing A] [IsDomain A] {ζ : A}
6062
(hζ : IsPrimitiveRoot ζ p) {μ : A} (hμ : μ ^ p = 1) :
6163
(@DFunLike.coe _ A (fun _ => A ⧸ Ideal.span {ζ - 1}) _
6264
(algebraMap A (A ⧸ Ideal.span {ζ - 1})) μ) = 1 := by
6365
obtain ⟨k, -, rfl⟩ := hζ.eq_pow_of_pow_eq_one hμ
6466
rw [map_pow, eq_one_mod_one_sub, one_pow]
6567

68+
set_option backward.isDefEq.respectTransparency false in
6669
theorem aux {t} {l : 𝓞 K} {f : Fin t → ℤ} {μ : K} (hμ : IsPrimitiveRoot μ p)
6770
(h : ∑ x : Fin t, f x • (⟨μ, hμ.isIntegral (NeZero.pos p)⟩ : 𝓞 K) ^ (x : ℕ) = l) :
6871
algebraMap (𝓞 K) (𝓞 K ⧸ I) l = ∑ x : Fin t, (f x : 𝓞 K ⧸ I) := by
@@ -92,6 +95,7 @@ theorem IsPrimitiveRoot.p_mem_one_sub_zeta [hp : Fact p.Prime] : (p : 𝓞 K)
9295

9396
variable [IsCyclotomicExtension {p} ℚ K]
9497

98+
set_option backward.isDefEq.respectTransparency false in
9599
theorem roots_of_unity_in_cyclo_aux {x : K} {l : ℕ} (hl : l ≠ 0) (hx : IsIntegral ℤ x)
96100
(hhl : (cyclotomic l (𝓞 K)).IsRoot ⟨x, hx⟩) {ζ : K} (hζ : IsPrimitiveRoot ζ p) : l ∣ 2 * p := by
97101
by_contra h
@@ -136,7 +140,7 @@ theorem roots_of_unity_in_cyclo_aux {x : K} {l : ℕ} (hl : l ≠ 0) (hx : IsInt
136140
simp_rw [pdivlcm_h] at this
137141
apply absurd this h
138142

139-
--do more generally
143+
set_option backward.isDefEq.respectTransparency false in
140144
theorem roots_of_unity_in_cyclo (hpo : Odd p) (x : K)
141145
(h : ∃ (n : ℕ) (_ : 0 < n), x ^ n = 1) :
142146
∃ (m k : ℕ), x = (-1) ^ k * (hζ.unit'.1 : K) ^ m := by
@@ -228,6 +232,7 @@ theorem IsCyclotomicExtension.IsCMField (hp : 2 < p) :
228232
haveI := nrRealPlaces_eq_zero_iff.1 (Rat.nrRealPlaces_eq_zero K hp)
229233
⟨⟩
230234

235+
set_option backward.isDefEq.respectTransparency false in
231236
lemma unit_inv_conj_not_neg_zeta_runity_aux (u : (𝓞 K)ˣ) [Fact (p.Prime)] (hp : 2 < p) :
232237
haveI := IsCyclotomicExtension.IsCMField K hp
233238
algebraMap (𝓞 K) (𝓞 K ⧸ I) (unitsMulComplexConjInv K u).1 = 1 := by
@@ -272,6 +277,7 @@ lemma unit_inv_conj_not_neg_zeta_runity_aux (u : (𝓞 K)ˣ) [Fact (p.Prime)] (h
272277
rw [this a]
273278
exact (aux hζ hζ hu).trans (aux hζ hζ.inv hu').symm
274279

280+
set_option backward.isDefEq.respectTransparency false in
275281
theorem unit_inv_conj_not_neg_zeta_runity (u : (𝓞 K)ˣ) (n : ℕ) [Fact (p.Prime)] (hp : 2 < p) :
276282
haveI := IsCyclotomicExtension.IsCMField K hp
277283
u * (unitsComplexConj K u)⁻¹ ≠ -hζ.unit' ^ n := by
@@ -316,6 +322,7 @@ theorem unit_inv_conj_is_root_of_unity (u : (𝓞 K)ˣ) [H : Fact (p.Prime)] (hp
316322
· exact NumberField.RingOfIntegers.isIntegral_coe _
317323
· simp
318324

325+
set_option backward.isDefEq.respectTransparency false in
319326
lemma IsPrimitiveRoot.eq_one_mod_one_sub' {A : Type*} [CommRing A] [IsDomain A]
320327
{n : ℕ} [NeZero n] {ζ : A} (hζ : IsPrimitiveRoot ζ n) {η : A} (hη : η ∈ nthRootsFinset n 1) :
321328
Ideal.Quotient.mk (Ideal.span ({ζ - 1} : Set A)) η = 1 := by

0 commit comments

Comments
 (0)