@@ -138,12 +138,15 @@ le_antisymm (smul_le.2 $ λ r hrij n hn, let ⟨ri, hri, rj, hrj, hrijr⟩ := me
138
138
protected theorem smul_assoc : (I • J) • N = I • (J • N) :=
139
139
le_antisymm (smul_le.2 $ λ rs hrsij t htn,
140
140
smul_induction_on hrsij
141
- (λ r hr s hs, (@smul_eq_mul R _ r s).symm ▸ smul_smul r s t ▸ smul_mem_smul hr (smul_mem_smul hs htn))
141
+ (λ r hr s hs,
142
+ (@smul_eq_mul R _ r s).symm ▸ smul_smul r s t ▸ smul_mem_smul hr (smul_mem_smul hs htn))
142
143
((zero_smul R t).symm ▸ submodule.zero_mem _)
143
144
(λ x y, (add_smul x y t).symm ▸ submodule.add_mem _)
144
145
(λ r s h, (@smul_eq_mul R _ r s).symm ▸ smul_smul r s t ▸ submodule.smul_mem _ _ h))
145
- (smul_le.2 $ λ r hr sn hsn, suffices J • N ≤ submodule.comap (r • linear_map.id) ((I • J) • N), from this hsn,
146
- smul_le.2 $ λ s hs n hn, show r • (s • n) ∈ (I • J) • N, from mul_smul r s n ▸ smul_mem_smul (smul_mem_smul hr hs) hn)
146
+ (smul_le.2 $ λ r hr sn hsn, suffices J • N ≤ submodule.comap (r • linear_map.id) ((I • J) • N),
147
+ from this hsn,
148
+ smul_le.2 $ λ s hs n hn, show r • (s • n) ∈ (I • J) • N,
149
+ from mul_smul r s n ▸ smul_mem_smul (smul_mem_smul hr hs) hn)
147
150
148
151
variables (S : set R) (T : set M)
149
152
@@ -307,7 +310,8 @@ variables {I J K}
307
310
lemma span_mul_span' (S T : set R) : span S * span T = span (S*T) :=
308
311
by { unfold span, rw submodule.span_mul_span,}
309
312
310
- lemma span_singleton_mul_span_singleton (r s : R) : span {r} * span {s} = (span {r * s} : ideal R) :=
313
+ lemma span_singleton_mul_span_singleton (r s : R) :
314
+ span {r} * span {s} = (span {r * s} : ideal R) :=
311
315
by { unfold span, rw [submodule.span_mul_span, set.singleton_mul_singleton],}
312
316
313
317
theorem mul_le_inf : I * J ≤ I ⊓ J :=
325
329
theorem mul_eq_inf_of_coprime (h : I ⊔ J = ⊤) : I * J = I ⊓ J :=
326
330
le_antisymm mul_le_inf $ λ r ⟨hri, hrj⟩,
327
331
let ⟨s, hsi, t, htj, hst⟩ := submodule.mem_sup.1 ((eq_top_iff_one _).1 h) in
328
- mul_one r ▸ hst ▸ (mul_add r s t).symm ▸ ideal.add_mem (I * J) (mul_mem_mul_rev hsi hrj) (mul_mem_mul hri htj)
332
+ mul_one r ▸ hst ▸ (mul_add r s t).symm ▸ ideal.add_mem (I * J) (mul_mem_mul_rev hsi hrj)
333
+ (mul_mem_mul hri htj)
329
334
330
335
variables (I)
331
336
theorem mul_bot : I * ⊥ = ⊥ :=
@@ -387,7 +392,8 @@ def radical (I : ideal R) : ideal R :=
387
392
zero_mem' := ⟨1 , (pow_one (0 :R)).symm ▸ I.zero_mem⟩,
388
393
add_mem' := λ x y ⟨m, hxmi⟩ ⟨n, hyni⟩, ⟨m + n,
389
394
(add_pow x y (m + n)).symm ▸ I.sum_mem $
390
- show ∀ c ∈ finset.range (nat.succ (m + n)), x ^ c * y ^ (m + n - c) * (nat.choose (m + n) c) ∈ I,
395
+ show ∀ c ∈ finset.range (nat.succ (m + n)),
396
+ x ^ c * y ^ (m + n - c) * (nat.choose (m + n) c) ∈ I,
391
397
from λ c hc, or.cases_on (le_total c m)
392
398
(λ hcm, I.mul_mem_right _ $ I.mul_mem_left _ $ nat.add_comm n m ▸
393
399
(nat.add_sub_assoc hcm n).symm ▸
@@ -449,13 +455,20 @@ let ⟨m, (hrm : r ∉ radical m), him, hm⟩ := zorn.zorn_partial_order₀ {K :
449
455
(submodule.mem_Sup_of_directed ⟨y, hyc⟩ hcc.directed_on).1 hrnc in hc hyc ⟨n, hrny⟩,
450
456
λ z, le_Sup⟩) I hri in
451
457
have ∀ x ∉ m, r ∈ radical (m ⊔ span {x}) := λ x hxm, classical.by_contradiction $ λ hrmx, hxm $
452
- hm (m ⊔ span {x}) hrmx le_sup_left ▸ (le_sup_right : _ ≤ m ⊔ span {x}) (subset_span $ set.mem_singleton _),
458
+ hm (m ⊔ span {x}) hrmx le_sup_left ▸ (le_sup_right : _ ≤ m ⊔ span {x})
459
+ (subset_span $ set.mem_singleton _),
453
460
have is_prime m, from ⟨by rintro rfl; rw radical_top at hrm; exact hrm trivial,
454
461
λ x y hxym, or_iff_not_imp_left.2 $ λ hxm, classical.by_contradiction $ λ hym,
455
- let ⟨n, hrn⟩ := this _ hxm, ⟨p, hpm, q, hq, hpqrn⟩ := submodule.mem_sup.1 hrn, ⟨c, hcxq⟩ := mem_span_singleton'.1 hq in
456
- let ⟨k, hrk⟩ := this _ hym, ⟨f, hfm, g, hg, hfgrk⟩ := submodule.mem_sup.1 hrk, ⟨d, hdyg⟩ := mem_span_singleton'.1 hg in
457
- hrm ⟨n + k, by rw [pow_add, ← hpqrn, ← hcxq, ← hfgrk, ← hdyg, add_mul, mul_add (c*x), mul_assoc c x (d*y), mul_left_comm x, ← mul_assoc];
458
- refine m.add_mem (m.mul_mem_right _ hpm) (m.add_mem (m.mul_mem_left _ hfm) (m.mul_mem_left _ hxym))⟩⟩,
462
+ let ⟨n, hrn⟩ := this _ hxm,
463
+ ⟨p, hpm, q, hq, hpqrn⟩ := submodule.mem_sup.1 hrn,
464
+ ⟨c, hcxq⟩ := mem_span_singleton'.1 hq in
465
+ let ⟨k, hrk⟩ := this _ hym,
466
+ ⟨f, hfm, g, hg, hfgrk⟩ := submodule.mem_sup.1 hrk,
467
+ ⟨d, hdyg⟩ := mem_span_singleton'.1 hg in
468
+ hrm ⟨n + k, by rw [pow_add, ← hpqrn, ← hcxq, ← hfgrk, ← hdyg, add_mul, mul_add (c*x),
469
+ mul_assoc c x (d*y), mul_left_comm x, ← mul_assoc];
470
+ refine m.add_mem (m.mul_mem_right _ hpm) (m.add_mem (m.mul_mem_left _ hfm)
471
+ (m.mul_mem_left _ hxym))⟩⟩,
459
472
hrm $ this.radical.symm ▸ (Inf_le ⟨him, this ⟩ : Inf {J : ideal R | I ≤ J ∧ is_prime J} ≤ m) hr
460
473
461
474
@[simp] lemma radical_bot_of_integral_domain {R : Type u} [integral_domain R] :
@@ -537,7 +550,8 @@ theorem subset_union {I J K : ideal R} : (I : set R) ⊆ J ∪ K ↔ I ≤ J ∨
537
550
theorem subset_union_prime' {s : finset ι} {f : ι → ideal R} {a b : ι}
538
551
(hp : ∀ i ∈ s, is_prime (f i)) {I : ideal R} :
539
552
(I : set R) ⊆ f a ∪ f b ∪ (⋃ i ∈ (↑s : set ι), f i) ↔ I ≤ f a ∨ I ≤ f b ∨ ∃ i ∈ s, I ≤ f i :=
540
- suffices (I : set R) ⊆ f a ∪ f b ∪ (⋃ i ∈ (↑s : set ι), f i) → I ≤ f a ∨ I ≤ f b ∨ ∃ i ∈ s, I ≤ f i,
553
+ suffices (I : set R) ⊆ f a ∪ f b ∪ (⋃ i ∈ (↑s : set ι), f i) →
554
+ I ≤ f a ∨ I ≤ f b ∨ ∃ i ∈ s, I ≤ f i,
541
555
from ⟨this , λ h, or.cases_on h (λ h, set.subset.trans h $ set.subset.trans
542
556
(set.subset_union_left _ _) (set.subset_union_left _ _)) $
543
557
λ h, or.cases_on h (λ h, set.subset.trans h $ set.subset.trans
@@ -553,7 +567,8 @@ begin
553
567
rw [finset.coe_empty, set.bUnion_empty, set.union_empty, subset_union] at h,
554
568
simpa only [exists_prop, finset.not_mem_empty, false_and, exists_false, or_false] },
555
569
classical,
556
- replace hn : ∃ (i : ι) (t : finset ι), i ∉ t ∧ insert i t = s ∧ t.card = n := finset.card_eq_succ.1 hn,
570
+ replace hn : ∃ (i : ι) (t : finset ι), i ∉ t ∧ insert i t = s ∧ t.card = n :=
571
+ finset.card_eq_succ.1 hn,
557
572
unfreezingI { rcases hn with ⟨i, t, hit, rfl, hn⟩ },
558
573
replace hp : is_prime (f i) ∧ ∀ x ∈ t, is_prime (f x) := (t.forall_mem_insert _ _).1 hp,
559
574
by_cases Ht : ∃ j ∈ t, f j ≤ f i,
@@ -576,7 +591,8 @@ begin
576
591
exact and.imp (λ hk, finset.insert_subset_insert i (finset.subset_insert j u) hk) id },
577
592
by_cases Ha : f a ≤ f i,
578
593
{ have h' : (I : set R) ⊆ f i ∪ f b ∪ (⋃ j ∈ (↑t : set ι), f j),
579
- { rw [finset.coe_insert, set.bUnion_insert, ← set.union_assoc, set.union_right_comm ↑(f a)] at h,
594
+ { rw [finset.coe_insert, set.bUnion_insert, ← set.union_assoc,
595
+ set.union_right_comm ↑(f a)] at h,
580
596
erw [set.union_eq_self_of_subset_left Ha] at h,
581
597
exact h },
582
598
specialize @ih i b t hp.2 hn h', right,
@@ -873,7 +889,8 @@ lemma map_infi_comap_of_surjective (K : ι → ideal S) : (⨅i, (K i).comap f).
873
889
theorem mem_image_of_mem_map_of_surjective {I : ideal R} {y}
874
890
(H : y ∈ map f I) : y ∈ f '' I :=
875
891
submodule.span_induction H (λ _, id) ⟨0 , I.zero_mem, f.map_zero⟩
876
- (λ y1 y2 ⟨x1, hx1i, hxy1⟩ ⟨x2, hx2i, hxy2⟩, ⟨x1 + x2, I.add_mem hx1i hx2i, hxy1 ▸ hxy2 ▸ f.map_add _ _⟩)
892
+ (λ y1 y2 ⟨x1, hx1i, hxy1⟩ ⟨x2, hx2i, hxy2⟩,
893
+ ⟨x1 + x2, I.add_mem hx1i hx2i, hxy1 ▸ hxy2 ▸ f.map_add _ _⟩)
877
894
(λ c y ⟨x, hxi, hxy⟩, let ⟨d, hdc⟩ := hf c in ⟨d • x, I.smul_mem _ hxi, hdc ▸ hxy ▸ f.map_mul _ _⟩)
878
895
879
896
lemma mem_map_iff_of_surjective {I : ideal R} {y} :
@@ -1004,7 +1021,8 @@ I ≠ ⊤ ∧ ∀ {x y : R}, x * y ∈ I → x ∈ I ∨ y ∈ radical I
1004
1021
theorem is_primary.to_is_prime (I : ideal R) (hi : is_prime I) : is_primary I :=
1005
1022
⟨hi.1 , λ x y hxy, (hi.mem_or_mem hxy).imp id $ λ hyi, le_radical hyi⟩
1006
1023
1007
- theorem mem_radical_of_pow_mem {I : ideal R} {x : R} {m : ℕ} (hx : x ^ m ∈ radical I) : x ∈ radical I :=
1024
+ theorem mem_radical_of_pow_mem {I : ideal R} {x : R} {m : ℕ} (hx : x ^ m ∈ radical I) :
1025
+ x ∈ radical I :=
1008
1026
radical_idem I ▸ ⟨m, hx⟩
1009
1027
1010
1028
theorem is_prime_radical {I : ideal R} (hi : is_primary I) : is_prime (radical I) :=
@@ -1275,11 +1293,12 @@ lemma quotient_ker_alg_equiv_of_right_inverse.apply {f : A →ₐ[R] B} {g : B
1275
1293
@[simp]
1276
1294
lemma quotient_ker_alg_equiv_of_right_inverse_symm.apply {f : A →ₐ[R] B} {g : B → A}
1277
1295
(hf : function.right_inverse g f) (x : B) :
1278
- (quotient_ker_alg_equiv_of_right_inverse hf).symm x = quotient.mkₐ R f.to_ring_hom.ker (g x) := rfl
1296
+ (quotient_ker_alg_equiv_of_right_inverse hf).symm x = quotient.mkₐ R f.to_ring_hom.ker (g x) :=
1297
+ rfl
1279
1298
1280
1299
/-- The first isomorphism theorem for agebras. -/
1281
- noncomputable def quotient_ker_alg_equiv_of_surjective {f : A →ₐ[R] B} (hf : function.surjective f) :
1282
- f.to_ring_hom.ker.quotient ≃ₐ[R] B :=
1300
+ noncomputable def quotient_ker_alg_equiv_of_surjective
1301
+ {f : A →ₐ[R] B} (hf : function.surjective f) : f.to_ring_hom.ker.quotient ≃ₐ[R] B :=
1283
1302
quotient_ker_alg_equiv_of_right_inverse (classical.some_spec hf.has_right_inverse)
1284
1303
1285
1304
/-- The ring hom `R/J →+* S/I` induced by a ring hom `f : R →+* S` with `J ≤ f⁻¹(I)` -/
@@ -1414,8 +1433,8 @@ noncomputable def lift_of_surjective
1414
1433
(f.lift_of_surjective hf g hg) (f a) = g a :=
1415
1434
f.to_add_monoid_hom.lift_of_surjective_comp_apply hf g.to_add_monoid_hom hg a
1416
1435
1417
- @[simp] lemma lift_of_surjective_comp (hf : function.surjective f) (g : A →+* C) (hg : f.ker ≤ g.ker) :
1418
- (f.lift_of_surjective hf g hg).comp f = g :=
1436
+ @[simp] lemma lift_of_surjective_comp (hf : function.surjective f) (g : A →+* C)
1437
+ (hg : f.ker ≤ g.ker) : ( f.lift_of_surjective hf g hg).comp f = g :=
1419
1438
by { ext, simp only [comp_apply, lift_of_surjective_comp_apply] }
1420
1439
1421
1440
lemma eq_lift_of_surjective (hf : function.surjective f) (g : A →+* C) (hg : f.ker ≤ g.ker)
0 commit comments