@@ -1191,26 +1191,6 @@ theorem Ideal.le_mul_of_no_prime_factors {I J K : Ideal R}
1191
1191
(UniqueFactorizationMonoid.dvd_of_dvd_mul_right_of_no_prime_factors (b := K) hJ0 ?_ hJ)
1192
1192
exact fun hPJ hPK => mt Ideal.isPrime_of_prime (coprime _ hPJ hPK)
1193
1193
1194
- theorem Ideal.le_of_pow_le_prime {I P : Ideal R} [hP : P.IsPrime] {n : ℕ} (h : I ^ n ≤ P) :
1195
- I ≤ P := by
1196
- by_cases hP0 : P = ⊥
1197
- · simp only [hP0, le_bot_iff] at h ⊢
1198
- exact pow_eq_zero h
1199
- rw [← Ideal.dvd_iff_le] at h ⊢
1200
- exact ((Ideal.prime_iff_isPrime hP0).mpr hP).dvd_of_dvd_pow h
1201
-
1202
- theorem Ideal.pow_le_prime_iff {I P : Ideal R} [_hP : P.IsPrime] {n : ℕ} (hn : n ≠ 0 ) :
1203
- I ^ n ≤ P ↔ I ≤ P :=
1204
- ⟨Ideal.le_of_pow_le_prime, fun h => _root_.trans (Ideal.pow_le_self hn) h⟩
1205
-
1206
- theorem Ideal.prod_le_prime {ι : Type *} {s : Finset ι} {f : ι → Ideal R} {P : Ideal R}
1207
- [hP : P.IsPrime] : ∏ i ∈ s, f i ≤ P ↔ ∃ i ∈ s, f i ≤ P := by
1208
- by_cases hP0 : P = ⊥
1209
- · simp only [hP0, le_bot_iff]
1210
- rw [← Ideal.zero_eq_bot, Finset.prod_eq_zero_iff]
1211
- simp only [← Ideal.dvd_iff_le]
1212
- exact ((Ideal.prime_iff_isPrime hP0).mpr hP).dvd_finset_prod_iff _
1213
-
1214
1194
/-- The intersection of distinct prime powers in a Dedekind domain is the product of these
1215
1195
prime powers. -/
1216
1196
theorem IsDedekindDomain.inf_prime_pow_eq_prod {ι : Type *} (s : Finset ι) (f : ι → Ideal R)
@@ -1228,15 +1208,13 @@ theorem IsDedekindDomain.inf_prime_pow_eq_prod {ι : Type*} (s : Finset ι) (f :
1228
1208
rw [Finset.inf_insert, Finset.prod_insert ha, ih]
1229
1209
refine le_antisymm (Ideal.le_mul_of_no_prime_factors ?_ inf_le_left inf_le_right) Ideal.mul_le_inf
1230
1210
intro P hPa hPs hPp
1231
- obtain ⟨b, hb, hPb⟩ := Ideal.prod_le_prime .mp hPs
1211
+ obtain ⟨b, hb, hPb⟩ := hPp.prod_le .mp hPs
1232
1212
haveI := Ideal.isPrime_of_prime (prime a (Finset.mem_insert_self a s))
1233
1213
haveI := Ideal.isPrime_of_prime (prime b (Finset.mem_insert_of_mem hb))
1234
1214
refine coprime a (Finset.mem_insert_self a s) b (Finset.mem_insert_of_mem hb) ?_ ?_
1235
1215
· exact (ne_of_mem_of_not_mem hb ha).symm
1236
- · refine ((Ring.DimensionLeOne.prime_le_prime_iff_eq ?_).mp
1237
- (Ideal.le_of_pow_le_prime hPa)).trans
1238
- ((Ring.DimensionLeOne.prime_le_prime_iff_eq ?_).mp
1239
- (Ideal.le_of_pow_le_prime hPb)).symm
1216
+ · refine ((Ring.DimensionLeOne.prime_le_prime_iff_eq ?_).mp (hPp.le_of_pow_le hPa)).trans
1217
+ ((Ring.DimensionLeOne.prime_le_prime_iff_eq ?_).mp (hPp.le_of_pow_le hPb)).symm
1240
1218
· exact (prime a (Finset.mem_insert_self a s)).ne_zero
1241
1219
· exact (prime b (Finset.mem_insert_of_mem hb)).ne_zero
1242
1220
@@ -1251,17 +1229,13 @@ noncomputable def IsDedekindDomain.quotientEquivPiOfProdEq {ι : Type*} [Fintype
1251
1229
simp only [← prod_eq, Finset.inf_eq_iInf, Finset.mem_univ, ciInf_pos,
1252
1230
← IsDedekindDomain.inf_prime_pow_eq_prod _ _ _ (fun i _ => prime i)
1253
1231
(coprime.set_pairwise _)])).trans <|
1254
- Ideal.quotientInfRingEquivPiQuotient _ fun i j hij => Ideal.coprime_of_no_prime_ge ( by
1232
+ Ideal.quotientInfRingEquivPiQuotient _ fun i j hij => Ideal.coprime_of_no_prime_ge <| by
1255
1233
intro P hPi hPj hPp
1256
1234
haveI := Ideal.isPrime_of_prime (prime i)
1257
1235
haveI := Ideal.isPrime_of_prime (prime j)
1258
- refine coprime hij ?_
1259
- refine ((Ring.DimensionLeOne.prime_le_prime_iff_eq ?_).mp
1260
- (Ideal.le_of_pow_le_prime hPi)).trans
1261
- ((Ring.DimensionLeOne.prime_le_prime_iff_eq ?_).mp
1262
- (Ideal.le_of_pow_le_prime hPj)).symm
1263
- · exact (prime i).ne_zero
1264
- · exact (prime j).ne_zero)
1236
+ exact coprime hij <| ((Ring.DimensionLeOne.prime_le_prime_iff_eq (prime i).ne_zero).mp
1237
+ (hPp.le_of_pow_le hPi)).trans <| Eq.symm <|
1238
+ (Ring.DimensionLeOne.prime_le_prime_iff_eq (prime j).ne_zero).mp (hPp.le_of_pow_le hPj)
1265
1239
1266
1240
open scoped Classical
1267
1241
0 commit comments