Algebraic Structures¶
This document provides a theoretical overview of the algebraic structures used in algebrax. Understanding
these concepts helps clarify why certain operations are grouped together and how they generalize across different
domains (graphs, logic, probability).
Hierarchy of Structures (Ordered by Complexity)¶
1. Monoid \((M, \cdot)\)¶
A set \(M\) with a single binary operation \(\cdot\) that satisfies:
- Closure: If \(a, b \in M\), then \(a \cdot b \in M\).
- Associativity: \((a \cdot b) \cdot c = a \cdot (b \cdot c)\).
- Identity: There exists \(e \in M\) such that \(a \cdot e = e \cdot a = a\).
Example:
- Natural numbers under addition \((\mathbb{N}, +)\). Identity is 0.
- Strings under concatenation. Identity is
"".
2. Group \((G, \cdot)\)¶
A Monoid where every element has an Inverse.
- Inverse: For every \(a \in G\), there exists \(a^{-1}\) such that \(a \cdot a^{-1} = e\).
Example in Library:
- Permutations (
algebra.group): The set of bijective mappings forms a group under composition.- Operation:
compose(f, g) - Inverse:
invert(f) - Identity:
{k: k}
- Operation:
3. Abelian Group¶
A Group where the operation is also Commutative:
- \(a \cdot b = b \cdot a\).
Example: Integers under addition \((\mathbb{Z}, +)\).
4. Semiring \((S, \oplus, \otimes)\)¶
A set \(S\) with two operations, Addition (\(\oplus\)) and Multiplication (\(\otimes\)), satisfying:
- \((S, \oplus)\) is a Commutative Monoid (Identity \(\mathbf{0}\)).
- \((S, \otimes)\) is a Monoid (Identity \(\mathbf{1}\)).
- Distributivity: Multiplication distributes over Addition.
- Annihilation: \(a \otimes \mathbf{0} = \mathbf{0}\).
Crucially: Semirings do not require additive inverses (subtraction) or multiplicative inverses (division).
Examples in Library (algebra.semiring):
- Standard: \((\mathbb{R}, +, \times)\). Standard Matrix Multiplication.
- Tropical: \((\mathbb{R} \cup \{\infty\}, \min, +)\). Shortest Path algorithms.
- Boolean: \((\{T, F\}, \lor, \land)\). Reachability / Transitive Closure.
- Viterbi: \(([0, 1], \max, \times)\). Most likely path in HMMs.
5. Ring \((R, +, \cdot)\)¶
A Semiring that has additive inverses.
- \((R, +)\) is an Abelian Group (Subtraction is defined).
Example: Integers \(\mathbb{Z}\), Square Matrices \(M_n(\mathbb{R})\).
6. Field \((F, +, \cdot)\)¶
A Ring where multiplication has inverses (for non-zero elements).
- \((F \setminus \{0\}, \cdot)\) is an Abelian Group (Division is defined).
Example: Real Numbers \(\mathbb{R}\), Complex Numbers \(\mathbb{C}\).
7. Algebra (over a Field)¶
A Vector Space equipped with a bilinear product.
- Elements can be added and scaled (Vector Space).
- Elements can be multiplied (Ring-like).
Example: The set of \(N \times N\) matrices forms an Algebra.
8. Ideal¶
A subset \(I\) of a Ring \(R\) that absorbs multiplication.
- If \(x \in I\) and \(r \in R\), then \(r \cdot x \in I\).
- Used to define Quotient Rings (e.g., Modular Arithmetic).
9. Clifford Algebra (Geometric Algebra)¶
An associative algebra equipped with a quadratic form, unifying scalars, vectors, and higher-order blades (bivectors, trivectors).
- Geometric Product: \(ab = a \cdot b + a \wedge b\).
- Generalizes Complex Numbers and Quaternions.
- Used for rotations and physics in any dimension.
Discrete Exterior Calculus (DEC)¶
The algebra.analysis module implements concepts from DEC on graphs.
| Concept | Mathematical Object | Library Type | Example |
|---|---|---|---|
| 0-form | Scalar Field (on nodes) | SparseVector |
Temperature at each city |
| 1-form | Vector Field (on edges) | SparseMatrix |
Traffic flow between cities |
| Gradient (\(d_0\)) | \(d: \Omega^0 \to \Omega^1\) | gradient() |
Difference in temp between cities |
| Divergence (\(d_0^*\)) | \(d^*: \Omega^1 \to \Omega^0\) | divergence() |
Net traffic flow out of a city |
| Laplacian (\(\Delta\)) | \(\Delta = d^* d\) | laplacian() |
Heat diffusion rate |
Note on Curl:
The Curl operator (\(d_1\)) maps 1-forms (edges) to 2-forms (faces). Since algebrax operates on Graphs (nodes and
edges only), there are no 2-forms (triangles/faces), so Curl is undefined (or trivially zero). To support Curl, the
library would need to support Simplicial Complexes.
The Algebraic Trie (Sparse Tensor)¶
The AlgebraicTrie (algebra.trie) is a generalization of the classic Trie (Prefix Tree) data structure.
Mathematically, a Trie is isomorphic to a Sparse Tensor of arbitrary rank.
- Indices: The sequence of keys (e.g., characters in a string) corresponds to the indices of the tensor \((i_1, i_2, \dots, i_k)\).
- Values: The value stored at a node corresponds to the tensor value \(T_{i_1, i_2, \dots, i_k}\).
By equipping the Trie with a Semiring, we can perform algebraic operations:
- Insertion (
add): Corresponds to Tensor Addition (\(T \oplus V\)).- If Semiring is
Standard(+), values accumulate (Count). - If Semiring is
Tropical(min), values update to the minimum (Shortest Path).
- If Semiring is
- Contraction (
contract): Corresponds to Tensor Contraction (Marginalization).- Summing up all values in a subtree is equivalent to summing over the remaining dimensions of the tensor.
This abstraction allows the same AlgebraicTrie class to serve as:
- Word Counter:
StandardSemiring(Sum counts). - Probabilistic Suffix Tree:
ProbabilitySemiring(Sum probabilities). - Fuzzy Search Index:
TropicalSemiring(Minimize edit distance).
Why Semirings?¶
algebrax focuses heavily on Semirings because many discrete structures (graphs, automata, logic) do not
support subtraction or division.
- Shortest Path: You cannot "un-take" a minimum. \(a \oplus b = \min(a, b)\). If \(a=5, b=3\), result is 3. You cannot recover 5 from 3.
- Reachability: \(T \lor F = T\). You cannot subtract \(F\) to get \(T\).
By abstracting matrix multiplication to use Semiring operations, we allow the same matrix.dot and matrix.power
functions to solve:
- Physics: Quantum Mechanics (Standard Algebra).
- Optimization: Shortest Path (Tropical Algebra).
- Logic: Connectivity (Boolean Algebra).
- Inference: Viterbi Decoding (Max-Product Algebra).
- Linguistics: Regular Expressions (String Algebra).
Why Not Clifford Algebra?¶
While Clifford Algebra is powerful for geometry (rotations, physics), it is not implemented in algebrax
because:
- Density: Geometric products often mix all components (e.g., rotating a vector usually makes it dense). This conflicts with the library's sparse-first philosophy.
- Complexity: Implementing a full multivector system requires significant machinery (grade tracking, metric tensors) that is out of scope for a general-purpose mapping library.
- Alternatives: Specialized libraries like
cliffordorsympy.diffgeomhandle this domain better.
Functional Taxonomy¶
The following table categorizes the functions in the algebra module by their Domain (Meaning) and Operation Type
.
Legend¶
- Structural: Transforms the shape or content of the data (returns a
Mapping). - Metric: Reduces the data to a single number (returns
float/int). - Predicate: Checks a property (returns
bool). - Generator: Creates a new structure from scratch.
1. Linear Algebra (Matrix & Vector)¶
Input: Sparse Vectors/Matrices (representing physical systems or geometric transformations)
| Function | Type | Meaning |
|---|---|---|
add |
Structural | Element-wise addition (\(A + B\)). |
dot |
Structural | Matrix Multiplication (\(A \cdot B\)). |
mat_vec, vec_mat |
Structural | Matrix-Vector multiplication (Transformation). |
transpose |
Structural | Flips rows and columns (\(A^T\)). |
inverse |
Structural | Finds \(A^{-1}\) such that \(A \cdot A^{-1} = I\). |
power |
Structural | Matrix exponentiation (\(A^k\)). |
adjoint |
Structural | Transpose of cofactor matrix. |
cofactor |
Structural | Matrix of cofactors. |
inner |
Metric | Dot product of two vectors (Similarity). |
determinant |
Metric | Volume scaling factor of the transformation. |
trace |
Metric | Sum of diagonal elements (Invariant). |
kronecker_delta |
Generator | Creates an Identity Matrix (\(I\)). |
2. Lattice & Set Theory (Fuzzy Logic)¶
Input: Mappings as Sets or Fuzzy Sets (Values represent membership/intensity)
| Function | Type | Meaning |
|---|---|---|
join |
Structural | Union / Max (\(A \cup B\)). |
meet |
Structural | Intersection / Min (\(A \cap B\)). |
difference |
Structural | Set Difference (\(A - B\)). |
symmetric_difference |
Structural | XOR (\(A \Delta B\)). |
combine |
Structural | Generalized element-wise operation. |
mask |
Structural | Keep keys in A that are also in B. |
exclude |
Structural | Keep keys in A that are NOT in B. |
product |
Structural | Element-wise product (Hadamard). |
ratio |
Structural | Element-wise division. |
average, geometric_mean, harmonic_mean |
Structural | Element-wise means. |
3. Probability & Statistics¶
Input: Mappings as Probability Distributions (Values sum to 1)
| Function | Type | Meaning |
|---|---|---|
bayes_update |
Structural | Posterior \(\propto\) Likelihood \(\times\) Prior. |
markov_step |
Structural | Advance state by \(N\) steps (\(v \cdot P^n\)). |
markov_steady_state |
Structural | Find equilibrium distribution (\(\pi = \pi P\)). |
marginalize |
Structural | Sum over rows/cols (Joint \(\to\) Marginal). |
normalize |
Structural | Scale values to sum to 1. |
entropy |
Metric | Uncertainty (\(H(X)\)). |
cross_entropy |
Metric | Difference between distributions (\(H(P, Q)\)). |
kl_divergence |
Metric | Information Gain (\(D_{KL}(P \| Q)\)). |
mutual_information |
Metric | Dependence between variables (\(I(X; Y)\)). |
expected_value |
Metric | Mean of the distribution (\(E[X]\)). |
variance, skewness, kurtosis |
Metric | Higher-order moments. |
mode |
Metric | Most probable outcome. |
4. Graph Analysis (Network Science)¶
Input: Mappings as Adjacency Matrices (Graphs)
| Function | Type | Meaning |
|---|---|---|
laplacian |
Structural | Graph Laplacian (\(D - A\)). Diffusion operator. |
gradient |
Structural | Edge-based difference operator. |
divergence |
Structural | Node-based flow operator. |
eigen_centrality |
Structural | Node importance ranking. |
ollivier_ricci_curvature |
Metric | Local curvature of the graph (Geometry). |
5. Signal Processing¶
Input: Mappings as Time Series or Signals
| Function | Type | Meaning |
|---|---|---|
convolve |
Structural | Signal convolution (\(f * g\)). |
dft / idft |
Structural | Discrete Fourier Transform (Time \(\leftrightarrow\) Freq). |
z_transform |
Structural | Z-Transform (Discrete Laplace). |
hilbert |
Structural | Hilbert Transform (Analytic Signal). |
lorentz_boost |
Structural | Relativistic coordinate transformation. |
box_counting_dimension |
Metric | Fractal dimension of the signal. |
6. Group Theory¶
Input: Mappings as Permutations (Bijective Functions)
| Function | Type | Meaning |
|---|---|---|
compose |
Structural | Function composition (\(f \circ g\)). |
invert |
Structural | Inverse function (\(f^{-1}\)). |
signature |
Metric | Parity of permutation (+1 or -1). |
7. Sparsity & Meta-Analysis¶
Input: Any Mapping
| Function | Type | Meaning |
|---|---|---|
sparsity |
Metric | Fraction of zero elements (\(1 - k/N\)). |
density |
Metric | Fraction of non-zero elements (\(k/N\)). |
deepness |
Metric | Maximum nesting depth. |
wideness |
Metric | Maximum branching factor. |
uniformness |
Metric | Variance of value distribution (0 = uniform). |
is_sparse |
Predicate | Checks if density < threshold. |
8. Automata¶
Input: State Machines (Transition Functions)
| Function | Type | Meaning |
|---|---|---|
dfa_step, nfa_step |
Structural | Single transition. |
simulate_dfa, simulate_nfa |
Structural | Full execution trace. |
9. Algebraic Structures¶
Input: Semirings and Tries
| Function/Class | Type | Meaning |
|---|---|---|
AlgebraicTrie |
Structure | Sparse Tensor / Prefix Tree over a Semiring. |
Semiring |
Protocol | Defines \((+, \times)\) operations for algebraic structures. |