Zulip Chat Archive

Stream: Is there code for X?

Topic: canonical isomorphism between localizations


Nikolas Kuhn (Jun 30 2022 at 20:11):

What is the slickest way to give the canonical isomorphism between two localizations of a ring at the same sub-monoid? Concretely, I'd like to prove something along these lines

example (R S : Type) [comm_ring R] [comm_ring S] (a: R →+* S) (r : R)  :
  localization.away (a r) ≃+* localization (submonoid.map a.1, a.2, a.3 (submonoid.powers r)) :=
sorry

(I believe that the isomorphism is in fact secretely an equality.)

Ultimately, I want to identify the two maps obtained from localizing R at r along this isomorphism, but it would be helpful to construct it first.

Adam Topaz (Jun 30 2022 at 20:39):

docs#is_localization.alg_equiv gives the isomorphism between two localizations at the same submonoid.

Adam Topaz (Jun 30 2022 at 20:41):

So if you prove that, say, the RHS has a is_localization instance of the right shape, that would give it to you.

Adam Topaz (Jun 30 2022 at 20:43):

This would give an isomorphism of algebras, which you can then covert to a ring isomorphism if absolutely necessary

Adam Topaz (Jun 30 2022 at 20:44):

If the two sides are really defeq, then you should be able to use docs#ring_equiv.refl

Nikolas Kuhn (Jun 30 2022 at 21:34):

Thanks! I could make something work:

import ring_theory.localization.basic

example (R S : Type) [comm_ring R] [comm_ring S] (a: R →+* S) (f: R) :
localization (submonoid.map a.1, a.2, a.3 (submonoid.powers f)) ≃ₐ[S]  localization.away (a f):=
begin
  have h₁ : submonoid.map a (submonoid.powers f) = submonoid.powers (a f) :=
    submonoid.map_powers _ _,
  have h₂: is_localization (submonoid.powers (a f)) (localization.away (a f)), by apply_instance,
  rw  congr_arg is_localization h₁ at h₂,
  exact @localization.alg_equiv _ _
    (submonoid.map a (submonoid.powers f)) (localization.away (a f)) _ _ h₂,
end

Yakov Pechersky (Jun 30 2022 at 23:02):

Your have h2 should be a haveI and that way you won't have to use the @ at the end

Nikolas Kuhn (Jul 01 2022 at 07:36):

Ah, great. I was wondering how to add instances.

Nikolas Kuhn (Jul 01 2022 at 07:47):

Although I seem to still have to introduce h_2 in order to rewrite it...

Eric Wieser (Jul 01 2022 at 08:57):

⟨a.1, a.2, a.3⟩ should be a.to_monoid_hom or maybe just a


Last updated: Dec 20 2023 at 11:08 UTC