Zulip Chat Archive

Stream: Is there code for X?

Topic: MonoidHom from LE of Localization


Yakov Pechersky (Jul 22 2025 at 21:15):

Do we the map induced by a submonoid ordering?

import Mathlib

variable {R : Type*} [CommMonoid R] {S T : Submonoid R}

def foo (h : S  T) : Localization S →* Localization T where
  toFun x := Localization.liftOn x (fun r s  .mk r s, (h s.prop)) <| by
    simp only [Localization.r_iff_exists, Subtype.exists, exists_prop, forall_exists_index, and_imp,
      Subtype.forall, Localization.mk_eq_mk_iff]
    intro a b c hc d hd s hs hs'
    exact s, h hs, hs'
  map_one' := by
    have : (1 : Localization S) = .mk 1 1 := OreLocalization.one_def -- API lemma missing
    simp [this, Localization.liftOn_mk]
  map_mul' x y := by
    cases x; cases y
    simp [Localization.liftOn_mk, Localization.mk_mul]

Aaron Liu (Jul 22 2025 at 21:28):

I don't think it's in mathlib

Eric Wieser (Jul 22 2025 at 21:35):

I guess if we had a monoid version of docs#IsLocalization.lift then you could build it from that?

Yakov Pechersky (Jul 22 2025 at 22:08):

I am not sure how to use docs#IsLocalization.lift even if I had CommRings in hand and needed a RingHom.


Last updated: Dec 20 2025 at 21:32 UTC