Commit 2026-01-13 19:40 290f644e

View on Github →

chore(Algebra): replace NoZeroSMulDivisors with Module.IsTorsionFree wlog (#30563) NoZeroSMulDivisors R M is mathematically wrong when R isn't a domain, so we replace it with the better definition Module.IsTorsionFree R M whenever they are equivalent. In fact, if M is non-trivial, NoZeroSMulDivisors R M implies NoZeroDivisors R: Take m : M is non-zero. Assume r s : R are such that r * s = 0. Then r • s • m = (r * s) • m = 0, so by NoZeroSMulDivisors we get r = 0 ∨ s = 0 ∨ m = 0. But m ≠ 0, so r = 0 ∨ s = 0, as wanted. This justifies replacing [Ring R] [Nontrivial M] [NoZeroSMulDivisors R M] with [Ring R] [IsDomain R] [Nontrivial M] [IsTorsionFree R M]. Doing so, some lemmas become vacuous and some instances redundant. We remove them.

Estimated changes

modified theorem Sbtw.not_rotate
modified theorem Sbtw.not_swap_left
modified theorem Sbtw.not_swap_right
modified theorem Sbtw.trans_left
modified theorem Sbtw.trans_right
modified theorem Sbtw.trans_wbtw_left_ne
modified theorem Sbtw.trans_wbtw_right_ne
modified theorem Wbtw.rotate_iff
modified theorem Wbtw.swap_left_iff
modified theorem Wbtw.swap_right_iff
modified theorem Wbtw.trans_left_ne
modified theorem Wbtw.trans_right_ne
modified theorem Wbtw.trans_sbtw_left
modified theorem Wbtw.trans_sbtw_right
modified theorem sbtw_lineMap_iff
modified theorem sbtw_mul_sub_add_iff
modified theorem wbtw_lineMap_iff
modified theorem wbtw_mul_sub_add_iff
modified theorem wbtw_rotate_iff
modified theorem wbtw_swap_left_iff
modified theorem wbtw_swap_right_iff