Skip to content

Commit 413249c

Browse files
committed
feat(RingTheory/Artinian): IsUnit a iff a ∈ R⁰ for an artinian ring R (#21084)
1 parent 3f5ccd4 commit 413249c

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed

Mathlib/RingTheory/Artinian/Ring.lean

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,26 @@ theorem isField_of_isReduced_of_isLocalRing [IsReduced R] [IsLocalRing R] : IsFi
9191
(IsArtinianRing.equivPi R).trans (RingEquiv.piUnique _) |>.toMulEquiv.isField
9292
_ (Ideal.Quotient.field _).toIsField
9393

94+
section IsUnit
95+
96+
open nonZeroDivisors
97+
98+
/-- If an element of an artinian ring is not a zero divisor then it is a unit. -/
99+
theorem isUnit_of_mem_nonZeroDivisors {a : R} (ha : a ∈ R⁰) : IsUnit a :=
100+
IsUnit.isUnit_iff_mulLeft_bijective.mpr <|
101+
IsArtinian.bijective_of_injective_endomorphism (LinearMap.mulLeft R a)
102+
fun _ _ ↦ (mul_cancel_left_mem_nonZeroDivisors ha).mp
103+
104+
/-- In an artinian ring, an element is a unit iff it is a non-zero-divisor.
105+
See also `isUnit_iff_mem_nonZeroDivisors_of_finite`.-/
106+
theorem isUnit_iff_mem_nonZeroDivisors {a : R} : IsUnit a ↔ a ∈ R⁰ :=
107+
⟨IsUnit.mem_nonZeroDivisors, isUnit_of_mem_nonZeroDivisors⟩
108+
109+
theorem isUnit_submonoid_eq : IsUnit.submonoid R = R⁰ := by
110+
ext; simp [IsUnit.mem_submonoid_iff, isUnit_iff_mem_nonZeroDivisors]
111+
112+
end IsUnit
113+
94114
section Localization
95115

96116
variable (S : Submonoid R) (L : Type*) [CommSemiring L] [Algebra R L] [IsLocalization S L]

0 commit comments

Comments
 (0)