# NonAssociativeRngΒΆ

NonAssociativeRng is a basic ring-type structure, not necessarily commutative or associative, and not necessarily with unit. Axioms x*(y+z) = x*y + x*z (x+y)*z = x*z + y*z Common Additional Axioms noZeroDivisors ab = 0 => a=0 or b=0

0: %

from AbelianMonoid

*: (%, %) -> %

from Magma

*: (Integer, %) -> %

from AbelianGroup

*: (NonNegativeInteger, %) -> %

from AbelianMonoid

*: (PositiveInteger, %) -> %

from AbelianSemiGroup

+: (%, %) -> %

from AbelianSemiGroup

-: % -> %

from AbelianGroup

-: (%, %) -> %

from AbelianGroup

=: (%, %) -> Boolean

from BasicType

^: (%, PositiveInteger) -> %

from Magma

~=: (%, %) -> Boolean

from BasicType

antiCommutator: (%, %) -> %
associator: (%, %, %) -> %

associator(a, b, c) returns (a*b)*c-a*(b*c).

coerce: % -> OutputForm
commutator: (%, %) -> %

commutator(a, b) returns a*b-b*a.

hash: % -> SingleInteger

from SetCategory

hashUpdate!: (HashState, %) -> HashState

from SetCategory

latex: % -> String

from SetCategory

leftPower: (%, PositiveInteger) -> %

from Magma

opposite?: (%, %) -> Boolean

from AbelianMonoid

rightPower: (%, PositiveInteger) -> %

from Magma

sample: %

from AbelianMonoid

subtractIfCan: (%, %) -> Union(%, failed)
zero?: % -> Boolean

from AbelianMonoid

AbelianGroup

AbelianMonoid

AbelianSemiGroup

BasicType

CancellationAbelianMonoid

Magma

NonAssociativeSemiRng

SetCategory