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
, orUndef()
ifmulticlan
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
withmulticlan2
.Returns: The binary multi-extension of composition from the algebra of relations to the algebra of multiclans, applied to multiclan1
andmulticlan2
, orUndef()
ifmulticlan1
ormulticlan2
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
andmclan2
.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
andmclan2
, orUndef()
ifmclan1
ormclan2
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
andmclan2
.Returns: The binary multi-extension of the functional union from the algebra of relations to the algebra of multiclans, applied to mclan1
andmclan2
, orUndef()
ifmclan1
ormclan2
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
andmulticlan2
.Returns: The binary multi-extension of the right-functional union from the algebra of relations to the algebra of multiclans, applied to multiclan1
andmulticlan2
, orUndef()
ifmulticlan1
ormulticlan2
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
andmulticlan2
.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
andmulticlan2
, orUndef()
ifmulticlan1
ormulticlan2
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
andmulticlan2
.The substriction of two multiclans is a multiclan that contains all relations from
multiclan1
that are a submultiset of a relation frommulticlan2
.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
andmulticlan2
, orUndef()
ifmulticlan1
ormulticlan2
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
andmulticlan2
.The superstriction of two multiclans is a multiclan that contains all relations from
multiclan1
that are a supermultiset of a relation frommulticlan2
.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
andmulticlan2
, orUndef()
ifmulticlan1
ormulticlan2
are not multiclans.
-
static
-
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
ifobj
is a multiclan,False
if not.Note
This function may call
get_ground_set()
onobj
. 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
ifobj
is an absolute clan,False
if not.Note
This function may call
get_ground_set()
onobj
. 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
orUndef()
ifmclan
is not a multiclan.
-
algebraixlib.algebras.multiclans.
is_functional
(mclan, _checked=True) → bool[source]¶ Return whether
mclan
is functional.Returns: True
if every relation inmclan
is functional (is a function),False
if not, orUndef()
ifmclan
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 inmclan
is right-functional,False
if not, orUndef()
ifmclan
is not a multiclan.
-
algebraixlib.algebras.multiclans.
is_regular
(mclan, _checked=True) → bool[source]¶ Return whether
mclan
is (left-)regular.Returns: True
ifmclan
is regular,False
if not, orUndef()
ifmclan
is not a multiclan.
-
algebraixlib.algebras.multiclans.
is_right_regular
(mclan, _checked=True) → bool[source]¶ Return whether
mclan
is right-regular.Returns: True
ifmclan
is right-regular,False
if not, orUndef()
ifmclan
is not a multiclan.
-
algebraixlib.algebras.multiclans.
is_reflexive
(mclan, _checked=True) → bool[source]¶ Return whether
mclan
is reflexive.Returns: True
ifmclan
is reflexive,False
if it is not, orUndef()
ifmclan
is not a multiclan.
-
algebraixlib.algebras.multiclans.
is_symmetric
(mclan, _checked=True) → bool[source]¶ Return whether
mclan
is symmetric.Returns: True
ifmclan
is symmetric,False
if it is not, orUndef()
ifmclan
is not a multiclan.
-
algebraixlib.algebras.multiclans.
is_transitive
(mclan, _checked=True) → bool[source]¶ Return whether
mclan
is transitive.Returns: True
ifmclan
is transitive,False
if it is not, orUndef()
ifmclan
is not a multiclan.