@@ -40,8 +40,6 @@ lemma zeta_sub_one_dvd : π ∣ x ^ (p : ℕ) + y ^ (p : ℕ) := by
40
40
apply dvd_pow_self
41
41
simp
42
42
43
- set_option synthInstance.maxHeartbeats 160000 in
44
- set_option maxHeartbeats 400000 in
45
43
lemma one_sub_zeta_dvd_zeta_pow_sub : π ∣ x + y * η := by
46
44
letI : Fact (Nat.Prime p) := hpri
47
45
letI := IsCyclotomicExtension.numberField {p} ℚ K
@@ -55,15 +53,15 @@ lemma one_sub_zeta_dvd_zeta_pow_sub : π ∣ x + y * η := by
55
53
rw [Finset.prod_const, ← map_pow, Ideal.Quotient.eq_zero_iff_dvd] at h
56
54
exact hζ.zeta_sub_one_prime'.dvd_of_dvd_pow h
57
55
58
- lemma div_one_sub_zeta_mem : ( x + y * η : 𝓞 K) / (ζ - 1 ) ∈ 𝓞 K := by
56
+ lemma div_one_sub_zeta_mem : IsIntegral ℤ (( x + y * η : 𝓞 K) / (ζ - 1 )) := by
59
57
obtain ⟨⟨a, ha⟩, e⟩ := one_sub_zeta_dvd_zeta_pow_sub hp hζ e η
60
58
rw [e, mul_comm]
61
- simp only [Submonoid.coe_mul, Subsemiring.coe_toSubmonoid, Subalgebra.coe_toSubsemiring ,
62
- AddSubgroupClass.coe_sub, IsPrimitiveRoot.val_unit'_coe, OneMemClass.coe_one, ne_eq ]
59
+ simp only [map_mul, NumberField.RingOfIntegers.map_mk, map_sub, IsPrimitiveRoot.coe_unit'_coe ,
60
+ map_one ]
63
61
rwa [mul_div_cancel_right₀ _ (hζ.sub_one_ne_zero hpri.out.one_lt)]
64
62
65
63
def div_zeta_sub_one : nthRootsFinset p (𝓞 K) → 𝓞 K :=
66
- fun η ↦ ⟨(x + y * η) / (ζ - 1 ), div_one_sub_zeta_mem hp hζ e η⟩
64
+ fun η ↦ ⟨(x + y * η. 1 ) / (ζ - 1 ), div_one_sub_zeta_mem hp hζ e η⟩
67
65
68
66
lemma div_zeta_sub_one_mul_zeta_sub_one (η) :
69
67
div_zeta_sub_one hp hζ e η * (π) = x + y * η := by
@@ -83,7 +81,6 @@ lemma div_zeta_sub_one_sub (η₁ η₂) (hη : η₁ ≠ η₂) :
83
81
rw [Ne, ← Subtype.ext_iff.not]
84
82
exact hη
85
83
86
- set_option synthInstance.maxHeartbeats 40000 in
87
84
lemma div_zeta_sub_one_Injective :
88
85
Function.Injective (fun η ↦ Ideal.Quotient.mk 𝔭 (div_zeta_sub_one hp hζ e η)) := by
89
86
letI : AddGroup (𝓞 K ⧸ 𝔭) := inferInstance
@@ -153,13 +150,11 @@ lemma m_mul_c_mul_p : 𝔪 * 𝔠 η * 𝔭 = 𝔦 η := by
153
150
rw [div_zeta_sub_one_dvd_gcd_spec, Ideal.span_singleton_mul_span_singleton,
154
151
div_zeta_sub_one_mul_zeta_sub_one]
155
152
156
- set_option synthInstance.maxHeartbeats 40000 in
157
153
lemma m_ne_zero : 𝔪 ≠ 0 := by
158
154
simp_rw [Ne, gcd_eq_zero_iff, Ideal.zero_eq_bot, Ideal.span_singleton_eq_bot]
159
155
rintro ⟨rfl, rfl⟩
160
156
exact hy (dvd_zero _)
161
157
162
- set_option synthInstance.maxHeartbeats 40000 in
163
158
lemma p_ne_zero : 𝔭 ≠ 0 := by
164
159
letI := IsCyclotomicExtension.numberField {p} ℚ K
165
160
rw [Ne, Ideal.zero_eq_bot, Ideal.span_singleton_eq_bot]
@@ -286,7 +281,7 @@ lemma p_dvd_c_iff : 𝔭 ∣ (𝔠 η) ↔ η = η₀ := by
286
281
← Ideal.dvd_span_singleton, ← div_zeta_sub_one_dvd_gcd_spec (hy := hy),
287
282
← dvd_gcd_mul_iff_dvd_mul, gcd_comm, gcd_zeta_sub_one_eq_one hζ hy, one_mul]
288
283
289
- lemma p_pow_dvd_c_eta_zero_aux [DecidableEq K ] :
284
+ lemma p_pow_dvd_c_eta_zero_aux [DecidableEq (𝓞 K) ] :
290
285
gcd (𝔭 ^ (m * p)) (∏ η in Finset.attach (nthRootsFinset p (𝓞 K)) \ {η₀}, 𝔠 η) = 1 := by
291
286
rw [← Ideal.isCoprime_iff_gcd]
292
287
apply IsCoprime.pow_left
@@ -395,7 +390,6 @@ lemma a_mul_denom_eq_a_zero_mul_num (hη : η ≠ η₀) :
395
390
simp only [FractionalIdeal.coeIdeal_mul, FractionalIdeal.coeIdeal_span_singleton]
396
391
rw [mul_comm (𝔞₀ : FractionalIdeal (𝓞 K)⁰ K), ← div_eq_div_iff,
397
392
← a_div_a_zero_eq hp hreg hζ e hy hz η hη, FractionalIdeal.spanSingleton_div_spanSingleton]
398
- · rfl
399
393
· intro ha
400
394
rw [FractionalIdeal.coeIdeal_eq_zero] at ha
401
395
apply not_p_div_a_zero hp hζ e hy hz
@@ -425,7 +419,6 @@ def associated_eta_zero_unit (hη : η ≠ η₀) : (𝓞 K)ˣ :=
425
419
426
420
local notation "ε" => associated_eta_zero_unit hp hreg hζ e hy hz
427
421
428
- set_option synthInstance.maxHeartbeats 40000 in
429
422
lemma associated_eta_zero_unit_spec (η) (hη : η ≠ η₀) :
430
423
ε η hη * (x + y * η₀) * α η hη ^ (p : ℕ) = (x + y * η) * π ^ (m * p) * β η hη ^ (p : ℕ) := by
431
424
rw [mul_assoc, mul_comm (ε η hη : 𝓞 K)]
@@ -457,7 +450,6 @@ lemma stuff (η₁) (hη₁ : η₁ ≠ η₀) (η₂) (hη₂ : η₂ ≠ η₀
457
450
congr 1
458
451
ring
459
452
460
- set_option maxHeartbeats 400000 in
461
453
lemma exists_solution :
462
454
∃ (x' y' z' : 𝓞 K) (ε₁ ε₂ ε₃ : (𝓞 K)ˣ), ¬ π ∣ x' ∧ ¬ π ∣ y' ∧ ¬ π ∣ z' ∧
463
455
↑ε₁ * x' ^ (p : ℕ) + ε₂ * y' ^ (p : ℕ) = ε₃ * (π ^ m * z') ^ (p : ℕ) := by
@@ -524,8 +516,6 @@ lemma exists_solution'_aux {ε₁ ε₂ : (𝓞 K)ˣ} (hx : ¬ π ∣ x)
524
516
rw [neg_mul, (Nat.Prime.odd_of_ne_two hpri.out (PNat.coe_injective.ne hp)).neg_pow,
525
517
sub_neg_eq_add, mul_sub, mul_one, mul_comm x b, add_sub_sub_cancel, add_comm]
526
518
527
- set_option synthInstance.maxHeartbeats 160000 in
528
- set_option maxHeartbeats 400000 in
529
519
lemma exists_solution' :
530
520
∃ (x' y' z' : 𝓞 K) (ε₃ : (𝓞 K)ˣ),
531
521
¬ π ∣ y' ∧ ¬ π ∣ z' ∧ x' ^ (p : ℕ) + y' ^ (p : ℕ) = ε₃ * (π ^ m * z') ^ (p : ℕ) := by
0 commit comments