@@ -6,10 +6,8 @@ variable {K : Type*} {p : ℕ} [Field K] [CharZero K] {ζ : K}
66open scoped nonZeroDivisors
77open Polynomial
88
9- --TODO: fix the following proofs using new multiplicity API
10-
11- lemma WfDvdMonoid.multiplicity_finite_iff {M : Type *} [CancelCommMonoidWithZero M] [WfDvdMonoid M]
12- {x y : M} :
9+ lemma WfDvdMonoid.multiplicity_finite_iff {M : Type *} [CommMonoidWithZero M] [IsCancelMulZero M]
10+ [WfDvdMonoid M] {x y : M} :
1311 FiniteMultiplicity x y ↔ ¬IsUnit x ∧ y ≠ 0 := by
1412 constructor
1513 · rw [Ne, ← not_or, imp_not_comm]
@@ -20,7 +18,7 @@ lemma WfDvdMonoid.multiplicity_finite_iff {M : Type*} [CancelCommMonoidWithZero
2018 exact FiniteMultiplicity.of_not_isUnit hx hy
2119
2220lemma dvd_iff_emultiplicity_le {M : Type *}
23- [CancelCommMonoidWithZero M] [UniqueFactorizationMonoid M]
21+ [CommMonoidWithZero M] [IsCancelMulZero M] [UniqueFactorizationMonoid M]
2422 {a b : M} (ha : a ≠ 0 ) : a ∣ b ↔ ∀ p : M, Prime p → emultiplicity p a ≤ emultiplicity p b := by
2523 constructor
2624 · intro hab p _
@@ -52,8 +50,8 @@ lemma dvd_iff_emultiplicity_le {M : Type*}
5250 Nat.cast_le, add_comm, add_le_add_iff_left] at this
5351 exact le_emultiplicity_of_le_multiplicity this
5452
55- lemma pow_dvd_pow_iff_dvd {M : Type *} [CancelCommMonoidWithZero M] [UniqueFactorizationMonoid M]
56- {a b : M} {x : ℕ} (h' : x ≠ 0 ) : a ^ x ∣ b ^ x ↔ a ∣ b := by
53+ lemma pow_dvd_pow_iff_dvd {M : Type *} [CommMonoidWithZero M] [IsCancelMulZero M]
54+ [UniqueFactorizationMonoid M] {a b : M} {x : ℕ} (h' : x ≠ 0 ) : a ^ x ∣ b ^ x ↔ a ∣ b := by
5755 classical
5856 by_cases ha : a = 0
5957 · simp [ha, h']
@@ -164,9 +162,6 @@ lemma exists_not_dvd_spanSingleton_eq {R : Type*} [CommRing R] [IsDomain R] [IsD
164162 obtain ⟨n, hn⟩ := FiniteMultiplicity.of_not_isUnit hx.not_unit h
165163 obtain ⟨m, hm⟩ := FiniteMultiplicity.of_not_isUnit hx.not_unit (nonZeroDivisors.ne_zero t.prop)
166164 rw [IsFractionRing.mk'_eq_div] at ha
167- refine this (n + m + 1 ) (Nat.le_add_left 1 (n + m)) ⟨s, t, ?_, ?_, ha.symm⟩
168- · intro hs
169- refine hn (dvd_trans (pow_dvd_pow _ ?_) hs)
170- linarith
171- · intro ht
172- refine hm (dvd_trans (pow_dvd_pow _ (Nat.le_add_left _ _)) ht)
165+ refine this (n + m + 1 ) (Nat.le_add_left 1 (n + m)) ⟨s, t, (fun hs ↦ ?_), (fun ht ↦ ?_), ha.symm⟩
166+ · exact hn (dvd_trans (pow_dvd_pow _ (by linarith)) hs)
167+ · exact hm (dvd_trans (pow_dvd_pow _ (Nat.le_add_left _ _)) ht)
0 commit comments