pylogic.structures.grouplike package

Submodules

pylogic.structures.grouplike.group module

class pylogic.structures.grouplike.group.AbelianGroup[source]
class pylogic.structures.grouplike.group.AbelianGroup(*args, **kwargs)

Bases: Group

op_is_commutative: ForallInSet[ForallInSet[Equals]]
classmethod property_op_is_commutative(set_: Set, operation: SpecialInfix[Any, Any, Expr, Expr]) ForallInSet[ForallInSet[Equals]][source]
class pylogic.structures.grouplike.group.Group[source]
class pylogic.structures.grouplike.group.Group(*args, **kwargs)

Bases: Monoid

have_inverses: ForallInSet[ExistsUniqueInSet[And[Equals, Equals]]]
latin_square: ForallInSet[ForallInSet[And[ExistsUniqueInSet[Equals], ExistsUniqueInSet[Equals]]]]
classmethod property_have_inverses(set_: Set, operation: SpecialInfix[Any, Any, Expr, Expr], identity: Any) ForallInSet[ExistsUniqueInSet[And[Equals, Equals]]][source]

This is a theorem because it is a consequence of the Latin square property and the identity property.

classmethod property_latin_square(set_: Set, operation: SpecialInfix[Any, Any, Expr, Expr]) ForallInSet[ForallInSet[And[ExistsUniqueInSet[Equals], ExistsUniqueInSet[Equals]]]][source]

The Latin square property states that, for each a and b in Q, there exist unique elements x and y in Q such that both

a * x = b

y * a = b

Then x = a b (left divide) and y = b / a (right divide)

pylogic.structures.grouplike.loop module

class pylogic.structures.grouplike.loop.Loop[source]
class pylogic.structures.grouplike.loop.Loop(*args, **kwargs)

Bases: Quasigroup

containment_function(x: Any) bool[source]
has_identity: And[IsContainedIn, ForallInSet[And[Equals, Equals]]]
classmethod property_has_identity(set_: Set, operation: SpecialInfix[Term, Term, Expr, Expr], identity: Term) And[IsContainedIn, ForallInSet[And[Equals, Equals]]][source]

pylogic.structures.grouplike.magma module

class pylogic.structures.grouplike.magma.AttrNames

Bases: dict

is_closed_under_op: str
op: str
operation: str
operation_name: str
operation_symbol: str
class pylogic.structures.grouplike.magma.CustomAttrNamesKwargs[source]

Bases: TypedDict

attr_names: AttrNames
containment_function: Callable[[...], bool] | None
elements: Iterable | None
name: str
operation: Callable[[Any, Any], Expr] | None
operation_name: str | None
operation_symbol: str | None
class pylogic.structures.grouplike.magma.Magma[source]
class pylogic.structures.grouplike.magma.Magma(*args, **kwargs)

Bases: Set

containment_function(x: Any) bool[source]
is_closed_under_op: ForallInSet[ForallInSet[IsContainedIn]]
classmethod property_is_closed_under_op(set_: Set, operation: SpecialInfix[Any, Any, Expr, Expr]) ForallInSet[ForallInSet[IsContainedIn]][source]

pylogic.structures.grouplike.monoid module

class pylogic.structures.grouplike.monoid.Monoid[source]
class pylogic.structures.grouplike.monoid.Monoid(*args, **kwargs)

Bases: Semigroup

containment_function(x: Any) bool[source]
has_identity: And[IsContainedIn, ForallInSet[And[Equals, Equals]]]
classmethod property_has_identity(set_: Set, operation: SpecialInfix[Any, Any, Expr, Expr], identity: Any) And[IsContainedIn, ForallInSet[And[Equals, Equals]]][source]

pylogic.structures.grouplike.quasigroup module

class pylogic.structures.grouplike.quasigroup.Quasigroup[source]
class pylogic.structures.grouplike.quasigroup.Quasigroup(*args, **kwargs)

Bases: Magma

latin_square: ForallInSet[ForallInSet[And[ExistsUniqueInSet[Equals], ExistsUniqueInSet[Equals]]]]
classmethod property_latin_square(set_: Set, operation: SpecialInfix[Any, Any, Expr, Expr]) ForallInSet[ForallInSet[And[ExistsUniqueInSet[Equals], ExistsUniqueInSet[Equals]]]][source]

The Latin square property states that, for each a and b in Q, there exist unique elements x and y in Q such that both

a * x = b

y * a = b

Then x = a b (left divide) and y = b / a (right divide)

pylogic.structures.grouplike.semigroup module

class pylogic.structures.grouplike.semigroup.Semigroup[source]
class pylogic.structures.grouplike.semigroup.Semigroup(*args, **kwargs)

Bases: Magma

op_is_associative: ForallInSet[ForallInSet[ForallInSet[Equals]]]
classmethod property_op_is_associative(set_: Set, operation: SpecialInfix[Any, Any, Expr, Expr]) ForallInSet[ForallInSet[ForallInSet[Equals]]][source]

Module contents