NoZeroSMulDivisors
#
This file defines the NoZeroSMulDivisors
class, and includes some tests
for the vanishing of elements (especially in modules over division rings).
theorem
Nat.noZeroSMulDivisors
(R : Type u_3)
(M : Type u_4)
[Semiring R]
[CharZero R]
[AddCommMonoid M]
[Module R M]
[NoZeroSMulDivisors R M]
:
theorem
two_nsmul_eq_zero
(R : Type u_3)
(M : Type u_4)
[Semiring R]
[CharZero R]
[AddCommMonoid M]
[Module R M]
[NoZeroSMulDivisors R M]
{v : M}
:
theorem
CharZero.of_module
(R : Type u_1)
[Semiring R]
(M : Type u_3)
[AddCommMonoidWithOne M]
[CharZero M]
[Module R M]
:
CharZero R
If M
is an R
-module with one and M
has characteristic zero, then R
has characteristic
zero as well. Usually M
is an R
-algebra.
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}
:
theorem
self_eq_neg
(R : Type u_3)
(M : Type u_4)
[Semiring R]
[CharZero R]
[AddCommGroup M]
[Module R M]
[NoZeroSMulDivisors R M]
{v : M}
:
theorem
neg_eq_self
(R : Type u_3)
(M : Type u_4)
[Semiring R]
[CharZero R]
[AddCommGroup M]
[Module R M]
[NoZeroSMulDivisors R M]
{v : M}
:
theorem
self_ne_neg
(R : Type u_3)
(M : Type u_4)
[Semiring R]
[CharZero R]
[AddCommGroup M]
[Module R M]
[NoZeroSMulDivisors R M]
{v : M}
:
theorem
neg_ne_self
(R : Type u_3)
(M : Type u_4)
[Semiring R]
[CharZero R]
[AddCommGroup M]
[Module R M]
[NoZeroSMulDivisors R M]
{v : M}
:
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
theorem
NoZeroSMulDivisors.int_of_charZero
(R : Type u_3)
(M : Type u_4)
[Ring R]
[AddCommGroup M]
[Module R M]
[NoZeroSMulDivisors R M]
[CharZero R]
:
theorem
CharZero.of_noZeroSMulDivisors
(R : Type u_1)
(M : Type u_2)
[Ring R]
[AddCommGroup M]
[Module R M]
[Nontrivial M]
[NoZeroSMulDivisors ℤ M]
:
CharZero R
Only a ring of characteristic zero can have a non-trivial module without additive or scalar torsion.
instance
instNoZeroSMulDivisorsNatOfInt_1
(M : Type u_2)
[AddCommGroup M]
[NoZeroSMulDivisors ℤ M]
:
@[instance 100]
instance
GroupWithZero.toNoZeroSMulDivisors
{R : Type u_1}
{M : Type u_2}
[GroupWithZero R]
[AddMonoid M]
[DistribMulAction R M]
:
This instance applies to DivisionSemiring
s, in particular NNReal
and NNRat
.