NewValue must form at least a commutative monoid with respect to
addition/subtraction and to multiplication/division.
The neutral element must return
true
from
data.Value.isAddZero
and
data.Value.isMulOne
, resp. The neutral element
of an algebraic structure
A = (M, +)
is the element
e
from
M
for which for all
a
from
M a + e = e + a = a
.
The zero element with respect to multiplication must return
true
from
data.Value.isMulZero
.
The zero element with respect to multiplication is the value
z
for which for all values
a a * z = z * a = z