abelian group¶
Abelian Group¶
Abelian Group
Mathematically an Abelian Group is a Commutative Monoid G all of
whose elements have additive inverses.
Note
Addition is used for the group operation.
Important
Contract: AbelianGroup initializer parameters must have
add closed, associative and commutative on reps
zero additive identity on reps,
rep.add(zero) == rep == zero.add(rep)negate must me idempotent:
neg(neg(rep)) == rep
- class boring_math.abstract_algebra.algebras.abelian_group.AbelianGroup¶
Bases:
CommutativeMonoid,Generic- Parameters:
add – Closed, commutative and associative function on reps.
zero – Representation for additive identity.
negate – Function mapping element representation to the representation of corresponding negated element.
narrow – Narrow the rep type, many-to-one function. Like choosing an element from a particular group coset.
- __init__(add: Callable[[H, H], H], zero: H, negate: Callable[[H], H], narrow: Callable[[H], H] | None = None)¶
- Parameters:
add – Closed, commutative and associative function on reps.
zero – Representation for additive identity.
negate – Function mapping element representation to the representation of corresponding negated element.
narrow – Narrow the rep type, many-to-one function. Like choosing an element from a particular group coset.
- class boring_math.abstract_algebra.algebras.abelian_group.AbelianGroupElement¶
Bases:
CommutativeMonoidElement,Generic- __init__(rep: H, algebra: AbelianGroup[H]) None¶
- __str__() str¶
- Returns:
str(self) = AbelianGroupElement<rep>
- __mul__(n: object) Self¶
Repeatedly add an element to itself
n >= 0times.- Parameters:
n – Object, usually an
intor action.- Returns:
If
n: intthen self, or its negative, added n times else NotImplemented.- Raises:
ValueError – When
n <= 0.ValueError – If
selfandotherare same type but different concrete algebras.TypeError – If an add method was not defined on the algebra.
TypeError – If algebra does not have an additive identity.
TypeError – Element multiplication attempted but algebra is not multiplicative.
- __rmul__(n: int) Self¶
Repeatedly add an element to itself
n > 0times.
- __neg__() Self¶
Negate the element.
- Returns:
The unique additive inverse element to
self.- Raises:
ValueError – If algebra fails to have additive inverses.
- __add__(right: Self) Self¶
Add two elements of the same concrete algebra together.
- Parameters:
other – Another element within the same algebra.
- Returns:
The sum
self + other.- Raises:
ValueError – If
selfandotherare same type but different concrete algebras.TypeError – If Addition not defined on the algebra of the elements.
TypeError – If
selfandrightare different types.
- __radd__(left: Self) Self¶
When left side of addition does not know how to add right side.
- Parameters:
other – Left side of the addition.
- Returns:
Never returns, otherwise
left.__add__(right)would have worked.- Raises:
TypeError – When right side does not know how to add the left side to itself.