Algebra
Algebraic structures
Note: Algebra requires Python 3.6 or higher.
Requirements and Installation
pip install algebra
See also the instructions here.
Algebra
This package provides an algebra where the elements can be manipulated
in a natural way, with basic algebraic simplifications happening automatically.
It also support equality checking, which is conservative:
if x == y
, then x
is equal to y
;
but if x != y
, then either x
is different from y
, or it could not be
proven that x
is equal to y
.
As an example, let's create numbered elements.
from algebra import Element
class Numbered(Element):
total = 0
def __init__(self):
self.num = Numbered.total
Numbered.total += 1
def render(self, formatter):
return f'x{self.num}'
Then instances of Numbered
can be manipulated as follows.
>>> x0 = Numbered()
>>> x1 = Numbered()
>>> x0 == x0
True
>>> x0 == x1
False
>>> x0 + x1
x0 + x1
>>> x0 + x0
2 * x0
>>> x0 + x1 == x1 + x0
True
>>> x0 - x0
0
>>> 2 + x0
2 * 1 + x0
>>> (2 + x0) * x1
(2 * 1 + x0) * x1
>>> (2 + x0) * x1 * 0
0
Create Your Own Algebra
Coming soon.
Function Algebra
Coming soon.
Create Your Own Function Algebra
Coming soon.