Zulip Chat Archive

Stream: Is there code for X?

Topic: non-units in artinian ring


Edison Xie (Aug 24 2025 at 12:42):

Do we have that every non-unit in an artinian ring is a zero-divisor?

Junyan Xu (Aug 24 2025 at 13:56):

For commutative artinian rings, use MaximalSpectrum.toPiLocalizationEquiv and isArtinianRing_iff_isNilpotent_maximalIdeal.

Junyan Xu (Aug 24 2025 at 14:29):

Oh it's probably quicker to use IsArtinian.surjective_of_injective_endomorphism.

Edison Xie (Aug 24 2025 at 14:30):

Junyan Xu said:

For commutative artinian rings, use MaximalSpectrum.toPiLocalizationEquiv and isArtinianRing_iff_isNilpotent_maximalIdeal.

Ah thanks but sadly my ring is not commutative :-(

Junyan Xu (Aug 24 2025 at 14:38):

The latter argument applies more generally: if r is not a left zero-divisor, then left multiplication by r is injective, and since it's an endomorphism of R as a right R-module, we conclude that it's bijective if R is right Artinian, so r has a right inverse is a unit. Similarly if r is not a right zero-divisor and R is left Artinian, then r has a left inverse is a unit. Combining both, if r is either a left or right non-zero-divisor and R is (two-sided) Artinian (e.g. if it's semisimple), then r is a unit. Alternatively, if r ∈ nonZeroDivisors R and R is left or right Artinian, then r is a unit.
(This can be generalized to Artinian semirings if nonZeroDivisors is replaced by IsRegular.)

Junyan Xu (Aug 24 2025 at 14:48):

Wait, we actually have IsUnit.isUnit_iff_mulLeft_bijective. I've corrected the above post.
Forgot to say, Grok Expert mode told me this proof after thinking 3m27s (it's answers are generally a lot shorter than Gemini 2.5 Pro).
I can submit a PR later today.

Junyan Xu (Aug 25 2025 at 01:15):

Not sure if I included a form that you want but I opened #28887

Junyan Xu (Aug 26 2025 at 19:04):

I found IsArtinianRing.isUnit_of_mem_nonZeroDivisors and nearby lemmas which should probably be generalized ...


Last updated: Dec 20 2025 at 21:32 UTC