-
Notifications
You must be signed in to change notification settings - Fork 347
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: generalize Ideal.spanNorm
to allow non free extensions
#19244
base: master
Are you sure you want to change the base?
Changes from all commits
17b0b66
ae297c2
a682bdc
40d5530
c79e7b4
365c79a
d824e4d
ab90005
85d9dd1
49b72e8
d8b84b7
bfa197c
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -6,6 +6,7 @@ Authors: Kenny Lau, Mario Carneiro, Johan Commelin, Amelia Livingston, Anne Baan | |
import Mathlib.GroupTheory.MonoidLocalization.Away | ||
import Mathlib.RingTheory.Ideal.Quotient.Operations | ||
import Mathlib.RingTheory.Localization.Defs | ||
import Mathlib.Algebra.Algebra.Tower | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This new import is needed because of the very recent modification #19376. It seems harmless to import |
||
|
||
/-! | ||
# Ideals in localizations of commutative rings | ||
|
@@ -242,6 +243,32 @@ theorem ideal_eq_iInf_comap_map_away {S : Finset R} (hS : Ideal.span (α := R) S | |
rw [pow_add, mul_assoc, ← mul_comm x, e] | ||
exact I.mul_mem_left _ y.2 | ||
|
||
variable (R) in | ||
lemma _root_.NoZeroSMulDivisors_of_isLocalization (Rₚ Sₚ : Type*) [CommRing Rₚ] [CommRing Sₚ] | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I might misunderstand the situation, but I would say that this lemma holds without assuming that There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Do you mean I don't need addition? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. No, what I meant is that I do not think that you need I agree this can look a bit strange, but since the conclusion only pertains to the There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I get the idea, but in practice I don't see a precise statement. If |
||
[Algebra R Rₚ] [Algebra R Sₚ] [Algebra S Sₚ] [Algebra Rₚ Sₚ] [IsScalarTower R S Sₚ] | ||
[IsScalarTower R Rₚ Sₚ] {M : Submonoid R} (hM : M ≤ R⁰) [IsLocalization M Rₚ] | ||
[IsLocalization (Algebra.algebraMapSubmonoid S M) Sₚ] [NoZeroSMulDivisors R S] [IsDomain S] : | ||
NoZeroSMulDivisors Rₚ Sₚ := by | ||
have e : Algebra.algebraMapSubmonoid S M ≤ S⁰ := | ||
Submonoid.map_le_of_le_comap _ <| hM.trans | ||
(nonZeroDivisors_le_comap_nonZeroDivisors_of_injective _ | ||
(NoZeroSMulDivisors.algebraMap_injective _ _)) | ||
have : IsDomain Sₚ := IsLocalization.isDomain_of_le_nonZeroDivisors S e | ||
have : algebraMap Rₚ Sₚ = IsLocalization.map (T := Algebra.algebraMapSubmonoid S M) Sₚ | ||
riccardobrasca marked this conversation as resolved.
Show resolved
Hide resolved
|
||
(algebraMap R S) (Submonoid.le_comap_map M) := by | ||
apply IsLocalization.ringHom_ext M | ||
simp only [IsLocalization.map_comp, ← IsScalarTower.algebraMap_eq] | ||
rw [NoZeroSMulDivisors.iff_algebraMap_injective, RingHom.injective_iff_ker_eq_bot, | ||
RingHom.ker_eq_bot_iff_eq_zero] | ||
intro x hx | ||
obtain ⟨x, s, rfl⟩ := IsLocalization.mk'_surjective M x | ||
simp only [RingHom.algebraMap_toAlgebra, IsLocalization.map_mk', IsLocalization.mk'_eq_zero_iff, | ||
Subtype.exists, exists_prop, this] at hx ⊢ | ||
obtain ⟨_, ⟨a, ha, rfl⟩, H⟩ := hx | ||
simp only [← _root_.map_mul, | ||
(injective_iff_map_eq_zero' _).mp (NoZeroSMulDivisors.algebraMap_injective R S)] at H | ||
exact ⟨a, ha, H⟩ | ||
|
||
end CommRing | ||
|
||
end IsLocalization |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This sequence of
have
is not very nice. I am open to any suggestion.