Group Structures
Let \(X\) be a set. This section outlines the traits Algebraeon provides for defining group-like structures on \(X\).
Composition
Composition : Setfor a set with a binary operation called composition denoted by \(\circ\). \[\circ : X \times X \to X : (a, b) \mapsto a \circ b\].compose(a: X, b: X) -> Xis used to compute \(a \circ b\).AssociativeComposition : Compositionwhen \(\circ\) is associative \[a \circ (b \circ c) = (a \circ b) \circ c \quad \forall a, b, c \in X\]CommutativeComposition : Compositionwhen \(\circ\) is commutative \[a \circ b = b \circ a \quad \forall a, b \in X\]LeftCancellativeComposition : Compositionwhen \[a \circ x = a \circ y \implies x = y \quad \forall a, x, y \in X\] In that case the solution (or lack thereof) to \(a = b \circ x\) for \(x\) given \(a\) and \(b\) is unique whenever it exists and is computed using.try_left_difference(a: X, b: X) -> Option<X>.RightCancellativeComposition : Compositionwhen \[x \circ a = y \circ a \implies x = y \quad \forall a, x, y \in X\] In that case the solution (or lack thereof) to \(a = x \circ b\) for \(x\) given \(a\) and \(b\) is unique whenever it exists and is computed using.try_right_difference(a: X, b: X) -> Option<X>.CancellativeComposition : Composition..try_difference(a: X, b: X) -> Option<X>.
Identity
Identity : Setfor a set with a special element called the identity element which we’ll denote bye.TryLeftInverse : Identity + Compositionwhen the solution to \[x \circ a = e\] for \(x\) given \(a\) is unique whenever it exists. The solution (or lack thereof) is computed using.try_left_inverse(a: X) -> Option<X>.TryRightInverse : Identity + Compositionwhen the solution to \[a \circ x = e\] for \(x\) given \(a\) is unique whenever it exists. The solution (or lack thereof) is computed using.try_right_inverse(a: X) -> Option<X>.TryInverse: Identity + Compositionwhen the solution to \[x \circ a = a \circ x = e\] for \(x\) given \(a\) is unique whenever it exists. The solution (or lack thereof) is computed using.try_inverse(a: X) -> Option<X>.Monoid : Identity + AssociativeCompositionwhen \[a \circ e = e \circ a = a \quad \forall a \in X\]Group : TryInverse + TryLeftInverse + TryRightInverse + LeftCancellativeComposition + RightCancellativeCompositionwhen every element has an inverse. Left-, right-, and two-sided-inverses all coencide in this case and are computed using.inverse(a: X) -> X.AbelianGroup := Group + CommutativeComposition + CancellativeComposition.