Documentation

Mathlib.Algebra.NoZeroSMulDivisors.Basic

NoZeroSMulDivisors #

This file defines the NoZeroSMulDivisors class, and includes some tests for the vanishing of elements (especially in modules over division rings).

theorem smul_right_injective {R : Type u_1} (M : Type u_2) [Semiring R] [AddCommGroup M] [Module R M] [NoZeroSMulDivisors R M] {c : R} (hc : c ≠ 0) :
Function.Injective fun (x : M) => c • x
theorem smul_right_inj {R : Type u_1} {M : Type u_2} [Semiring R] [AddCommGroup M] [Module R M] [NoZeroSMulDivisors R M] {c : R} (hc : c ≠ 0) {x y : M} :
c • x = c • y ↔ x = y
@[deprecated IsAddTorsionFree.of_noZeroSMulDivisors (since := "2025-10-19")]
theorem smul_left_injective (R : Type u_1) {M : Type u_2} [Ring R] [AddCommGroup M] [Module R M] [NoZeroSMulDivisors R M] {x : M} (hx : x ≠ 0) :
Function.Injective fun (c : R) => c • x
@[deprecated IsAddTorsionFree.of_noZeroSMulDivisors (since := "2025-10-19")]

Only a ring of characteristic zero can have a non-trivial module without additive or scalar torsion.

@[instance 100]

This instance applies to DivisionSemirings, in particular NNReal and NNRat.