Zulip Chat Archive
Stream: Is there code for X?
Topic: quotient of a ring by the zero ideal
Junyan Xu (Feb 19 2024 at 16:41):
I'm surprised we don't have this; just want to make sure there isn't an easier way to construct it:
import Mathlib
def quotientBotEquiv {R} [CommRing R] : R ⧸ (⊥ : Ideal R) ≃+* R :=
.trans (Ideal.quotEquivOfEq (RingHom.ker_coe_equiv <| .refl R).symm) <|
RingHom.quotientKerEquivOfRightInverse (f := .id R) (g := id) fun _ ↦ rfl
Eric Wieser (Feb 19 2024 at 16:46):
Can we prove it more generally for [Semiring R]
and ⊥ : RingCon R
?
Junyan Xu (Feb 19 2024 at 17:01):
Presumably you can, but docs#Ideal.instHasQuotientIdealToSemiringToCommSemiring is defined in terms of Submodule.hasQuotient, so R ⧸ (⊥ : Ideal R)
is not defeq to (⊥ : RingCon R).Quotient
, but it is defeq to (Ideal.Quotient.ringCon ⊥ : RingCon R).Quotient
.
Antoine Chambert-Loir (Feb 20 2024 at 01:23):
Junyan Xu said:
I'm surprised we don't have this; just want to make sure there isn't an easier way to construct it:
import Mathlib def quotientBotEquiv {R} [CommRing R] : R ⧸ (⊥ : Ideal R) ≃+* R := .trans (Ideal.quotEquivOfEq (RingHom.ker_coe_equiv <| .refl R).symm) <| RingHom.quotientKerEquivOfRightInverse (f := .id R) (g := id) fun _ ↦ rfl
It should be a bit easier in the other direction (that of Quotient.mk).
Last updated: May 02 2025 at 03:31 UTC