algebra

Algebraic structures


License
MIT
Install
pip install algebra==0.3.0

Documentation

Algebra

CI Coverage Status Latest Docs Code style: black

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.