algebraixlib.algebras.multiclans module

This module contains the algebra of multiclans and related functionality.

A multiclan is also a multiset (of relations), and inherits all operations of the algebra of multisets. These are provided in multisets.

class algebraixlib.algebras.multiclans.Algebra[source]

Bases: object

Provide the operations and relations that are members of the algebra of multiclans.

This class contains only static member functions. Its main purpose is to provide a namespace for and highlight the operations and relations that belong to the algebra of multiclans. All member functions are also available at the enclosing module scope.

static transpose(multiclan: 'P(P(M x M) x N)', _checked=True) → 'P(P(M x M) x N)'[source]

Return a multiclan where all relations have their left and right components swapped.

Returns:The unary multi-extension of transposition from the algebra of relations to the algebra of multiclans, applied to multiclan, or Undef() if multiclan is not a multiclan.
static compose(multiclan1: 'P(P(M x M) x N)', multiclan2: 'P(P(M x M) x N)', _checked=True) → 'P(P(M x M) x N)'[source]

Return the composition of multiclan1 with multiclan2.

Returns:The binary multi-extension of composition from the algebra of relations to the algebra of multiclans, applied to multiclan1 and multiclan2, or Undef() if multiclan1 or multiclan2 are not multiclans.
static cross_union(mclan1: 'P(P(M x M) x N)', mclan2: 'P(P(M x M) x N)', _checked=True) → 'P(P(M x M) x N)'[source]

Return the cross-union of mclan1 and mclan2.

Returns:The binary multi-extension of union from the algebra of relations (which inherits it from the algebra of sets) to the algebra of multiclans applied to mclan1 and mclan2, or Undef() if mclan1 or mclan2 are not multiclans.
static cross_functional_union(mclan1: 'P(P(M x M) x N)', mclan2: 'P(P(M x M) x N)', _checked=True) → 'P(P(M x M) x N)'[source]

Return the cross-functional union of mclan1 and mclan2.

Returns:The binary multi-extension of the functional union from the algebra of relations to the algebra of multiclans, applied to mclan1 and mclan2, or Undef() if mclan1 or mclan2 are not multiclans.
static cross_right_functional_union(multiclan1: 'P(P(M x M) x N)', multiclan2: 'P(P(M x M) x N)', _checked=True) → 'P(P(M x M) x N)'[source]

Return the cross-right-functional union of multiclan1 and multiclan2.

Returns:The binary multi-extension of the right-functional union from the algebra of relations to the algebra of multiclans, applied to multiclan1 and multiclan2, or Undef() if multiclan1 or multiclan2 are not multiclans.
static cross_intersect(multiclan1: 'P(P(M x M) x N)', multiclan2: 'PP(M x M)', _checked=True) → 'PP(M x M)'[source]

Return the cross-intersection of multiclan1 and multiclan2.

Returns:The binary multi-extension of intersection from the algebra of relations (which inherits it from the algebra of sets) to the algebra of multiclans applied to multiclan1 and multiclan2, or Undef() if multiclan1 or multiclan2 are not multiclans.
static substrict(multiclan1: 'P(P(M x M) x N)', multiclan2: 'P(P(M x M) x N)', _checked=True) → 'P(P(M x M) x N)'[source]

Return the substriction of multiclan1 and multiclan2.

The substriction of two multiclans is a multiclan that contains all relations from multiclan1 that are a submultiset of a relation from multiclan2.

Returns:The binary multi-extension of substriction from the algebra of relations (which inherits it from the algebra of sets) to the algebra of multiclans applied to multiclan1 and multiclan2, or Undef() if multiclan1 or multiclan2 are not multiclans.
static superstrict(multiclan1: 'P(P(M x M) x N)', multiclan2: 'P(P(M x M) x N)', _checked=True) → 'P(P(M x M) x N)'[source]

Return the superstriction of multiclan1 and multiclan2.

The superstriction of two multiclans is a multiclan that contains all relations from multiclan1 that are a supermultiset of a relation from multiclan2.

Returns:The binary multi-extension of superstriction from the algebra of relations (which inherits it from the algebra of sets) to the algebra of multiclans applied to multiclan1 and multiclan2, or Undef() if multiclan1 or multiclan2 are not multiclans.
algebraixlib.algebras.multiclans.transpose(multiclan: 'P(P(M x M) x N)', _checked=True) → 'P(P(M x M) x N)'

Convenience redirection to Algebra.transpose.

algebraixlib.algebras.multiclans.compose(multiclan1: 'P(P(M x M) x N)', multiclan2: 'P(P(M x M) x N)', _checked=True) → 'P(P(M x M) x N)'

Convenience redirection to Algebra.compose.

algebraixlib.algebras.multiclans.cross_union(mclan1: 'P(P(M x M) x N)', mclan2: 'P(P(M x M) x N)', _checked=True) → 'P(P(M x M) x N)'

Convenience redirection to Algebra.cross_union.

algebraixlib.algebras.multiclans.cross_functional_union(mclan1: 'P(P(M x M) x N)', mclan2: 'P(P(M x M) x N)', _checked=True) → 'P(P(M x M) x N)'

Convenience redirection to Algebra.cross_functional_union.

algebraixlib.algebras.multiclans.cross_right_functional_union(multiclan1: 'P(P(M x M) x N)', multiclan2: 'P(P(M x M) x N)', _checked=True) → 'P(P(M x M) x N)'

Convenience redirection to Algebra.cross_right_functional_union.

algebraixlib.algebras.multiclans.cross_intersect(multiclan1: 'P(P(M x M) x N)', multiclan2: 'PP(M x M)', _checked=True) → 'PP(M x M)'

Convenience redirection to Algebra.cross_intersect.

algebraixlib.algebras.multiclans.substrict(multiclan1: 'P(P(M x M) x N)', multiclan2: 'P(P(M x M) x N)', _checked=True) → 'P(P(M x M) x N)'

Convenience redirection to Algebra.substrict.

algebraixlib.algebras.multiclans.superstrict(multiclan1: 'P(P(M x M) x N)', multiclan2: 'P(P(M x M) x N)', _checked=True) → 'P(P(M x M) x N)'

Convenience redirection to Algebra.superstrict.

algebraixlib.algebras.multiclans.get_name() → str[source]

Return the name and ground set of this algebra in string form.

algebraixlib.algebras.multiclans.get_ground_set() → algebraixlib.structure.Structure[source]

Return the ground set of this algebra.

algebraixlib.algebras.multiclans.get_absolute_ground_set() → algebraixlib.structure.Structure[source]

Return the absolute ground set of this algebra.

algebraixlib.algebras.multiclans.is_member(obj: algebraixlib.mathobjects.mathobject.MathObject) → bool[source]

Return whether obj is a member of the ground set of this algebra.

return:True if obj is a multiclan, False if not.

Note

This function may call get_ground_set() on obj. The result of this operation is cached.

algebraixlib.algebras.multiclans.is_absolute_member(obj: algebraixlib.mathobjects.mathobject.MathObject) → bool[source]

Return whether obj is a member of the absolute ground set of this algebra.

return:True if obj is an absolute clan, False if not.

Note

This function may call get_ground_set() on obj. The result of this operation is cached.

algebraixlib.algebras.multiclans.get_lefts(mclan: 'PP(M x M)', _checked=True) → 'P( M )'[source]

Return the set of the left components of all couplets in all relations in mclan.

Returns:The union of the left sets of all relations in mclan or Undef() if mclan is not a multiclan.
algebraixlib.algebras.multiclans.is_functional(mclan, _checked=True) → bool[source]

Return whether mclan is functional.

Returns:True if every relation in mclan is functional (is a function), False if not, or Undef() if mclan is not a multiclan.
algebraixlib.algebras.multiclans.is_right_functional(mclan, _checked=True) → bool[source]

Return whether mclan is right-functional.

Returns:True if every relation in mclan is right-functional, False if not, or Undef() if mclan is not a multiclan.
algebraixlib.algebras.multiclans.is_regular(mclan, _checked=True) → bool[source]

Return whether mclan is (left-)regular.

Returns:True if mclan is regular, False if not, or Undef() if mclan is not a multiclan.
algebraixlib.algebras.multiclans.is_right_regular(mclan, _checked=True) → bool[source]

Return whether mclan is right-regular.

Returns:True if mclan is right-regular, False if not, or Undef() if mclan is not a multiclan.
algebraixlib.algebras.multiclans.is_reflexive(mclan, _checked=True) → bool[source]

Return whether mclan is reflexive.

Returns:True if mclan is reflexive, False if it is not, or Undef() if mclan is not a multiclan.
algebraixlib.algebras.multiclans.is_symmetric(mclan, _checked=True) → bool[source]

Return whether mclan is symmetric.

Returns:True if mclan is symmetric, False if it is not, or Undef() if mclan is not a multiclan.
algebraixlib.algebras.multiclans.is_transitive(mclan, _checked=True) → bool[source]

Return whether mclan is transitive.

Returns:True if mclan is transitive, False if it is not, or Undef() if mclan is not a multiclan.