# algebraixlib.algebras package¶

This package contains modules that represent algebras and their operations.

The algebra modules contain a class `Algebra`

that contains the operations that are formally part
of the given algebra (that is, they are closed within that algebra). For convenience, these
functions are also exposed at the module level. (We collect them in the `Algebra`

class mainly
for documentation purposes.)

Besides the mathematical operations of a given algebra (in `Algebra`

), we also provide the
following types of functions that are related to the algebra, but are not members of it:

- Functions that return metadata. For example, all our algebras contain an
`is_member`

function that returns`True`

if the argument is a member of the given algebra’s ground set. This function is not mathematically an operation of the algebra. - Other functions that are mathematically related, but have arguments or return results that are
not members of the ground set. For example, the
`get_lefts()`

function of the algebra of relations returns a result that is not an element of the algebra’s ground set.

The algebras that are provided are:

`sets`

: The algebra of sets.`couplets`

: The algebra of couplets.`relations`

: The algebra of relations. (A relation is a set of couplets).`clans`

: The algebra of clans. (A clan is a set of relations; that is, a set of sets of couplets).`multisets`

: The algebra of multisets.`multiclans`

: The algebra of multiclans. (A multiclan is a multiset of relations; that is, a multiset of sets of couplets).

Additional modules:

`properties`

: Functions that return the value of a property for a given`MathObject`

. They redirect to the appropriate algebra.