Semiring Architecture & Mathematical Taxonomy¶
In AlgebraX, semirings \((S, \oplus, \otimes, \mathbf{0}, \mathbf{1})\) serve as the unifying polymorphic foundation for sparse linear algebra, graph algorithms, formal language parsing, optimization, information theory, and geometric physics.
To provide total conceptual clarity, this guide presents two complementary architectural diagrams:
- Software & Implementation Architecture: Shows Python class hierarchies, module namespaces, protocol conformance, and recipe carrier polymorphism.
- Mathematical Morphisms & Structural Correspondences: Shows pure algebraic homomorphisms, quotient ring reductions, Maslov tropical dequantization limits, logarithmic isomorphisms, and continuous logic embeddings.
1. Software & Implementation Architecture¶
This diagram illustrates the software organization of algebrax.semiring, showing how classes inherit, specialize, and
compose across modules and user recipes:
flowchart LR
%% Styling Classes
classDef base fill:#0f172a,stroke:#38bdf8,stroke-width:2px,color:#f8fafc;
classDef arith fill:#1e3a8a,stroke:#60a5fa,stroke-width:1.5px,color:#f8fafc;
classDef opt fill:#14532d,stroke:#4ade80,stroke-width:1.5px,color:#f8fafc;
classDef logic fill:#581c87,stroke:#c084fc,stroke-width:1.5px,color:#f8fafc;
classDef stat fill:#701a75,stroke:#f472b6,stroke-width:1.5px,color:#f8fafc;
classDef alg fill:#7c2d12,stroke:#fb923c,stroke-width:1.5px,color:#f8fafc;
classDef quote fill:#831843,stroke:#f43f5e,stroke-width:2px,color:#f8fafc;
classDef recipe fill:#312e81,stroke:#a5b4fc,stroke-width:1.5px,stroke-dasharray: 5 5,color:#f8fafc;
%% Base Protocol
Root["<b>Semiring[V] Protocol</b><br/><i>algebrax.semiring._base</i><br/>add, mul, zero, one, power, star, nsum"]:::base
%% Module: arithmetic.py
subgraph ModArith["algebrax.semiring.arithmetic"]
Standard["<b>StandardSemiring[T]</b><br/>Python + and *"]:::arith
Modular["<b>ModularSemiring</b><br/>Integer modulo n"]:::arith
end
%% Module: optimization.py
subgraph ModOpt["algebrax.semiring.optimization"]
Tropical["<b>TropicalSemiring</b>"]:::opt
Arctic["<b>ArcticSemiring</b>"]:::opt
Viterbi["<b>ViterbiSemiring</b>"]:::opt
Reliability["<b>ReliabilitySemiring</b>"]:::opt
Bottleneck["<b>BottleneckSemiring</b>"]:::opt
MinTimes["<b>MinTimesSemiring</b>"]:::opt
end
%% Module: logic.py & structures.py
subgraph ModLogic["algebrax.semiring.logic & structures"]
Boolean["<b>BooleanSemiring</b>"]:::logic
Digital["<b>DigitalSemiring</b>"]:::logic
Lukasiewicz["<b>LukasiewiczSemiring</b>"]:::logic
String["<b>StringSemiring</b>"]:::logic
KCollapsed["<b>KCollapsedSemiring</b>"]:::logic
end
%% Module: statistical.py
subgraph ModStat["algebrax.semiring.statistical"]
Log["<b>LogSemiring</b><br/>LogSumExp algebra"]:::stat
Expectation["<b>ExpectationSemiring</b><br/>1st Moment (p, v)"]:::stat
Variance["<b>VarianceSemiring</b><br/>2nd Moment (p, m1, m2)"]:::stat
Skewness["<b>SkewnessSemiring</b><br/>3rd Moment (p, m1, m2, m3)"]:::stat
Kurtosis["<b>KurtosisSemiring</b><br/>4th Moment (p, m1,..., m4)"]:::stat
StatisticalMoment["<b>StatisticalMomentSemiring[K]</b><br/>Universal 1D Decoders"]:::stat
BivarVariance["<b>BivariateVarianceSemiring</b><br/>Bivariate 4-tuple (p, r, s, t)"]:::stat
MultiMoment["<b>MultivariateMomentSemiring[d, K]</b><br/>Covariance Matrix & Hessian"]:::stat
end
%% Module: algebraic.py
subgraph ModAlg["algebrax.semiring.algebraic"]
DualNum["<b>DualNumberSemiring</b><br/>tuple[float, float]"]:::alg
BinomialConv["<b>BinomialConvolutionSemiring[K]</b><br/>Divided Power Ring R[ε]/(ε^{K+1})"]:::alg
MultiBinomialConv["<b>MultivariateBinomialConvolutionSemiring[d, K]</b><br/>Multi-Index Total Degree Quotient Ring"]:::alg
MonoidAlg["<b>MonoidAlgebraSemiring[K, T]</b><br/>Sparse dict[K, T] convolution"]:::alg
Polynomial["<b>PolynomialSemiring[T]</b><br/>Subclass of MonoidAlgebra"]:::alg
Provenance["<b>ProvenanceSemiring</b><br/>Subclass of MonoidAlgebra"]:::alg
Knot["<b>KnotSemiring</b><br/>Subclass of MonoidAlgebra"]:::alg
QuotientAlg["<b>QuotientMonoidAlgebraSemiring</b><br/>Subclass with quotient_fn reduction"]:::quote
Clifford["<b>CliffordSemiring</b><br/>Quotient factory: Cl(p, q, r)"]:::quote
GCA["<b>GeneralizedCliffordSemiring</b><br/>Quotient factory: C_n^(m)"]:::quote
QuantumClifford["<b>QuantumCliffordSemiring</b><br/>Quotient factory: Cl_q(m)"]:::quote
GaloisField["<b>GaloisFieldSemiring</b><br/>Quotient factory: GF(p^m)"]:::quote
end
%% Recipes Extensibility Subgraph
subgraph ModRecipe["Applied Recipes (Carrier & Class Extensions)"]
Interval["<b>IntervalSemiring</b><br/>Custom Semiring[tuple[float, float]]"]:::recipe
Grammar["<b>GrammarSemiring</b><br/>Custom Semiring[set[str]]"]:::recipe
DualClass["<b>DualNumber Class</b><br/>Used via StandardSemiring(dtype=DualNumber)"]:::recipe
GradDualClass["<b>GradientDualNumber Class</b><br/>Used via StandardSemiring(dtype=GradDual)"]:::recipe
end
%% Implementation Connections
Root -->|Implements| Standard
Root -->|Implements| Modular
Root -->|Implements| Tropical
Root -->|Implements| Arctic
Root -->|Implements| Viterbi
Root -->|Implements| Reliability
Root -->|Implements| Bottleneck
Root -->|Implements| MinTimes
Root -->|Implements| Boolean
Root -->|Implements| Digital
Root -->|Implements| Lukasiewicz
Root -->|Implements| String
Root -->|Implements| KCollapsed
Root -->|Implements| Log
Root -->|Implements| BivarVariance
Root -->|Implements| DualNum
Root -->|Implements| BinomialConv
Root -->|Implements| MultiBinomialConv
Root -->|Implements| MonoidAlg
%% Class Specializations & Subclassing
DualNum -->|Subclasses| Expectation
BinomialConv -->|Subclasses| StatisticalMoment
StatisticalMoment -->|Specializes| Variance
StatisticalMoment -->|Specializes| Skewness
StatisticalMoment -->|Specializes| Kurtosis
MultiBinomialConv -->|Subclasses| MultiMoment
MonoidAlg -->|Subclasses| Polynomial
MonoidAlg -->|Subclasses| Provenance
MonoidAlg -->|Subclasses| Knot
MonoidAlg -->|Subclasses| QuotientAlg
QuotientAlg -->|Configures| Clifford
QuotientAlg -->|Configures| GCA
QuotientAlg -->|Configures| QuantumClifford
QuotientAlg -->|Configures| GaloisField
%% Recipe Connections
Root -.->|User Implementation| Interval
Root -.->|User Implementation| Grammar
Standard -.->|Carrier Type Dtype| DualClass
Standard -.->|Carrier Type Dtype| GradDualClass
%% Click Navigation Links
click Standard "arithmetic.md" "StandardSemiring Tutorial"
click Modular "arithmetic.md" "ModularSemiring Tutorial"
click Tropical "optimization.md" "TropicalSemiring Tutorial"
click Arctic "optimization.md" "ArcticSemiring Tutorial"
click Viterbi "optimization.md" "ViterbiSemiring Tutorial"
click Reliability "optimization.md" "ReliabilitySemiring Tutorial"
click Bottleneck "optimization.md" "BottleneckSemiring Tutorial"
click MinTimes "optimization.md" "MinTimesSemiring Tutorial"
click Boolean "logic.md" "BooleanSemiring Tutorial"
click Digital "logic.md" "DigitalSemiring Tutorial"
click Lukasiewicz "logic.md" "LukasiewiczSemiring Tutorial"
click String "logic.md" "StringSemiring Tutorial"
click KCollapsed "logic.md" "KCollapsedSemiring Tutorial"
click Log "statistical.md" "LogSemiring Tutorial"
click DualNum "algebraic.md" "DualNumberSemiring Tutorial"
click Expectation "statistical.md" "ExpectationSemiring Tutorial"
click Variance "statistical.md" "VarianceSemiring Tutorial"
click BivarVariance "statistical.md" "BivariateVarianceSemiring Tutorial"
click Skewness "statistical.md" "SkewnessSemiring Tutorial"
click Kurtosis "statistical.md" "KurtosisSemiring Tutorial"
click StatisticalMoment "statistical.md" "StatisticalMomentSemiring Tutorial"
click BinomialConv "algebraic.md" "BinomialConvolutionSemiring Tutorial"
click MultiBinomialConv "algebraic.md" "MultivariateBinomialConvolutionSemiring Tutorial"
click MultiMoment "statistical.md" "MultivariateMomentSemiring Tutorial"
click MonoidAlg "algebraic.md" "MonoidAlgebraSemiring Tutorial"
click Polynomial "algebraic.md" "PolynomialSemiring Tutorial"
click Provenance "algebraic.md" "ProvenanceSemiring Tutorial"
click Knot "algebraic.md" "KnotSemiring Tutorial"
click QuotientAlg "algebraic.md" "QuotientMonoidAlgebraSemiring Tutorial"
click Clifford "algebraic.md" "CliffordSemiring Tutorial"
click GCA "algebraic.md#generalized-clifford-algebras-gcas-clock-and-shift" "GeneralizedCliffordSemiring Tutorial"
click QuantumClifford "algebraic.md#q-deformed-quantum-clifford-algebras" "QuantumCliffordSemiring Tutorial"
click GaloisField "algebraic.md" "GaloisFieldSemiring Tutorial"
click Interval "../../recipes.md" "IntervalSemiring in Recipes"
click Grammar "../../recipes.md" "GrammarSemiring in Recipes"
click DualClass "../../recipes.md" "DualNumber in Recipes"
click GradDualClass "../../recipes.md" "GradientDualNumber in Recipes"
2. Mathematical Morphisms & Structural Correspondences¶
This diagram illustrates pure algebraic structure, showing how semirings relate via quotient projections, Maslov dequantization limits, logarithmic isomorphisms, and domain embeddings:
flowchart LR
%% Styling Classes
classDef mathroot fill:#0f172a,stroke:#38bdf8,stroke-width:2px,color:#f8fafc;
classDef mathnode fill:#1e3a8a,stroke:#60a5fa,stroke-width:1.5px,color:#f8fafc;
classDef mathquote fill:#831843,stroke:#f43f5e,stroke-width:2px,color:#f8fafc;
classDef mathtrop fill:#14532d,stroke:#4ade80,stroke-width:1.5px,color:#f8fafc;
classDef mathlogic fill:#581c87,stroke:#c084fc,stroke-width:1.5px,color:#f8fafc;
%% Mathematical Root Structures
RField["<b>Reals & Complex Field</b><br/>(R, +, *)"]:::mathroot
FreeMonoid["<b>Free Monoid Algebra</b><br/>R[M] with Convolution"]:::mathroot
LogSumExp["<b>Statistical Log-Sum-Exp</b><br/>(R ∪ {-∞}, ⊕_log, +)"]:::mathroot
BoolLattice["<b>Boolean Lattice</b><br/>({0, 1}, ∨, ∧)"]:::mathroot
%% Quotients of R and Free Algebras
subgraph Quotients["Quotient Rings & Ideal Reductions R[M] / I"]
ZModN["<b>Ring of Integers mod n</b><br/>Z_n = Z / nZ"]:::mathquote
DualRing["<b>Dual Number Ring</b><br/>R[ε] / (ε^2) (Tangent Bundle TR)"]:::mathquote
PolyRing["<b>Polynomial Ring</b><br/>R[x] ≅ R[N_0, +]"]:::mathquote
ProvSemi["<b>Provenance Semiring</b><br/>N[X] Free Multivariate"]:::mathquote
KnotRing["<b>Laurent Bracket Ring</b><br/>Z[A, A^-1]"]:::mathquote
CliffordAlg["<b>Clifford Algebra Cl(p,q,r)</b><br/>e_i e_j + e_j e_i = 2 g_ij 1"]:::mathquote
GCAAlg["<b>Generalized Clifford C_n^(m)</b><br/>e_j e_k = ω e_k e_j, e_j^n = 1"]:::mathquote
QuantumCliffordAlg["<b>Quantum Clifford Cl_q(m)</b><br/>e_j e_k = -q e_k e_j"]:::mathquote
GaloisFieldAlg["<b>Galois Finite Field GF(p^m)</b><br/>Z_p[x] / P(x)"]:::mathquote
end
%% Tropical & Optimization Family
subgraph TropicalGeometry["Tropical Geometry & Dequantization Limits"]
MaxPlus["<b>Arctic (Max-Plus)</b><br/>(R ∪ {-∞}, max, +)"]:::mathtrop
MinPlus["<b>Tropical (Min-Plus)</b><br/>(R ∪ {∞}, min, +)"]:::mathtrop
ViterbiProb["<b>Viterbi (Probabilistic Max-Times)</b><br/>([0, 1], max, *)"]:::mathtrop
MinTimesProb["<b>Min-Times Semiring</b><br/>(R_≥0 ∪ {∞}, min, *)"]:::mathtrop
BottleneckLatt["<b>Bottleneck Semiring</b><br/>(max, min) Capacity Flow"]:::mathtrop
end
%% Logic Embeddings
subgraph LogicEmbeddings["Logic & Language Embeddings"]
Fuzzy["<b>Łukasiewicz Fuzzy Logic</b><br/>Unit interval [0, 1] with t-norm"]:::mathlogic
FormalLang["<b>Formal Languages</b><br/>P(Σ*) with union & concat"]:::mathlogic
DigitalRing["<b>Digit Arithmetic</b><br/>(N_0 ∪ {∞}, min, +)"]:::mathlogic
BoundedCount["<b>Bounded Counter</b><br/>{0, ..., k} with saturated +"]:::mathlogic
end
%% Statistical Moment Extensions
subgraph StatisticalMoments["Statistical Moment Expansions"]
FirstMoment["<b>First Moments (Expectation)</b><br/>(p, v) in R[ε] / (ε^2)"]:::mathnode
SecondMoment["<b>Second Moments (Variance)</b><br/>(p, m1, m2) in R[ε] / (ε^3)"]:::mathnode
BivarCovariance["<b>Bivariate Covariance</b><br/>(p, r, s, t) in R[ε1, ε2] / (ε1^2, ε2^2)"]:::mathnode
MultiMoments["<b>Universal Tensor Moments</b><br/>R[ε1..εd] / <|β|=K+1>"]:::mathnode
end
%% Morphisms & Mathematical Transitions
RField -->|Canonical Projection pi| ZModN
RField -->|Infinitesimal Jet Lift R_eps / eps^2| DualRing
FreeMonoid -->|Exponents M = N_0| PolyRing
FreeMonoid -->|Multivariate M = N^X| ProvSemi
FreeMonoid -->|Laurent Monoid Z| KnotRing
FreeMonoid -->|Ideal Reduction R M / I| CliffordAlg
FreeMonoid -->|Clock-Shift Reduction| GCAAlg
FreeMonoid -->|Braided Commutation| QuantumCliffordAlg
FreeMonoid -->|Irreducible Poly mod P x| GaloisFieldAlg
LogSumExp -->|Maslov Dequantization ħ→0| MaxPlus
MaxPlus <-->|Sign Inversion x to -x| MinPlus
MinPlus <-->|Isomorphism phi x = exp -x| ViterbiProb
MinPlus <-->|Isomorphism psi x = ln x| MinTimesProb
MaxPlus -->|Lattice Distributive Limit| BottleneckLatt
BoolLattice -->|Continuous Embedding 0 to 1| Fuzzy
BoolLattice -->|Language Monoid Embedding| FormalLang
BoolLattice -->|Positional Digit Embedding| DigitalRing
BoolLattice -->|Saturation Threshold k| BoundedCount
DualRing -->|Probabilistic Interpretation| FirstMoment
FirstMoment -->|2nd-Order Taylor Jet Lift| SecondMoment
FirstMoment -->|Bivariate Cross Extension| BivarCovariance
SecondMoment -->|Multivariate Multi-Index Lift| MultiMoments
3. Mathematical Semantics & Morphism Legend¶
| Transformation Category | Mathematical Formulation | Description | Examples |
|---|---|---|---|
| Quotient Ring Projections | \(R[M] \twoheadrightarrow R[M] / \mathcal{I}\) | Imposing defining polynomial or commutation relations on a free algebra. | \(e_i e_j = -e_j e_i\) (Clifford), \(e_j e_k = \omega e_k e_j\) (GCA), \(\epsilon^2 = 0\) (Dual Numbers). |
| Maslov Tropical Dequantization | \(\lim_{\hbar \to 0} \hbar \ln\left(e^{a/\hbar} + e^{b/\hbar}\right) = \max(a, b)\) | The semi-classical limit translating statistical mechanics (partition functions) into idempotent tropical geometry (optimal paths). | LogSemiring \(\to\) ArcticSemiring (Max-Plus). |
| Logarithmic Isomorphisms | \(\phi(x) = e^{-x}: (\mathbb{R} \cup \{\infty\}, \min, +) \xrightarrow{\cong} ([0, 1], \max, \cdot)\) | Exact bijective homomorphic maps between additive shortest paths and multiplicative probabilities. | TropicalSemiring \(\leftrightarrow\) ViterbiSemiring. |
| Continuous & Language Embeddings | \(\{0, 1\} \hookrightarrow [0, 1]\) \(\{0, 1\} \hookrightarrow \mathcal{P}(\Sigma^*)\) |
Embedding two-valued discrete logic into continuous fuzzy intervals or non-commutative formal language powersets. | BooleanSemiring \(\to\) LukasiewiczSemiring, StringSemiring. |
| Higher-Order Jet Lifts | \(T\mathbb{R} \to T^{(K)}\mathbb{R} \cong \mathbb{R}[\epsilon] / (\epsilon^{K+1})\) | Expanding 1st-order tangent bundle expectations to variance, skewness, kurtosis, and multivariate covariance tensors. | DualNumberSemiring \(\to\) VarianceSemiring \(\to\) MultivariateMomentSemiring. |
4. Domain Taxonomy & Categorization¶
| Category | Semiring Class | Carrier Set | \(\oplus\) (Add) | \(\otimes\) (Mul) | Neutral Elements (\(\mathbf{0}, \mathbf{1}\)) | Primary Applications |
|---|---|---|---|---|---|---|
| Arithmetic | StandardSemiring[T] |
\(\mathbb{R}\) or \(\mathbb{C}\) | \(+\) | \(\cdot\) | \(0, 1\) | Classical Linear Algebra, Physics, PDEs |
ModularSemiring |
\(\mathbb{Z}_n\) | \(+ \bmod n\) | \(\cdot \bmod n\) | \(0, 1\) | Cryptography, Hash Functions, Number Theory | |
| Optimization | TropicalSemiring |
\(\mathbb{R} \cup \{\infty\}\) | \(\min\) | \(+\) | \(\infty, 0\) | Shortest Paths (Dijkstra, Floyd-Warshall) |
ArcticSemiring |
\(\mathbb{R} \cup \{-\infty\}\) | \(\max\) | \(+\) | \(-\infty, 0\) | Critical Path Latency, Maximum Scheduling | |
ViterbiSemiring |
\([0, 1]\) | \(\max\) | \(\cdot\) | \(0, 1\) | Hidden Markov Models, Speech & Gene Parsing | |
ReliabilitySemiring |
\([0, 1]\) | \(\max\) | \(\cdot\) | \(0, 1\) | Network Reliability & Survivability | |
BottleneckSemiring |
\(\mathbb{R} \cup \{\pm\infty\}\) | \(\max\) | \(\min\) | \(-\infty, \infty\) | Widest Path, Capacity Bottlenecks | |
MinTimesSemiring |
\(\mathbb{R}_{\ge 0} \cup \{\infty\}\) | \(\min\) | \(\cdot\) | \(\infty, 1\) | Optimal Cost Multipliers | |
LogSemiring |
\(\mathbb{R} \cup \{-\infty\}\) | \(\text{LogSumExp}\) | \(+\) | \(-\infty, 0\) | Statistical Physics, Free Energy, Belief Propagation | |
| Logic | BooleanSemiring |
\(\{0, 1\}\) | \(\lor\) | \(\land\) | \(0, 1\) | Transitive Closure, Reachability, CYK Parsing |
DigitalSemiring |
\(\mathbb{N}_0 \cup \{\infty\}\) | \(\min\) | \(+\) | \(\infty, 0\) | Post-Quantum Cryptography (Ring-LWE), Digital Filters | |
LukasiewiczSemiring |
\([0, 1]\) | \(\max\) | \(\max(0, x+y-1)\) | \(0, 1\) | Multi-Valued Logic, Fuzzy Reasoning | |
StringSemiring |
\(\mathcal{P}(\Sigma^*)\) | \(\cup\) | Concat | \(\emptyset, \{\epsilon\}\) | Formal Languages, Finite Automata Contraction | |
KCollapsedSemiring |
\(\{0, \dots, k\}\) | \(\min(k, x+y)\) | \(\min(k, xy)\) | \(0, 1\) | Resource Counting, Bounded Semaphores | |
| Statistical | ExpectationSemiring |
\(\mathbb{R}_{\ge 0} \times \mathbb{R}\) | Elementwise | \((p_1 p_2, p_1 v_2 + p_2 v_1)\) | \((0, 0), (1, 0)\) | Expected Values, Loss Accumulation |
VarianceSemiring |
\(\mathbb{R}^3\) | Moments | Binomial Convol. | Zero / Unit | 2nd Raw & Central Moments, Univariate Variance | |
SkewnessSemiring |
\(\mathbb{R}^4\) | Moments | Binomial Convol. | Zero / Unit | Third Central Moments, Asymmetry / Skewness Risk | |
KurtosisSemiring |
\(\mathbb{R}^5\) | Moments | Binomial Convol. | Zero / Unit | Fourth Central Moments, Fat-Tail Kurtosis Risk | |
StatisticalMomentSemiring |
\(\mathbb{R}^{K+1}\) | Componentwise | Binomial Convol. | Zero / Unit | Universal 1D Moments, Full Statistical Metric Decoders | |
BivariateVarianceSemiring |
\(\mathbb{R}^4\) | Moments | Composition | Zero / Unit | Bivariate Cross-Covariance (Li & Eisner) | |
MultivariateMomentSemiring |
\(\text{Sparse } \mathbb{R}^{\binom{d+K}{K}}\) | Sparse Poly \(+\) | Multi-Binomial Convol. | Zero / Unit | Multivariate Mean Vectors, \(d \times d\) Covariance Matrix \(\boldsymbol{\Sigma}\) | |
| Algebraic | BinomialConvolutionSemiring |
\(\mathbb{R}[\epsilon]/(\epsilon^{K+1})\) | Componentwise | Binomial Convol. | \((0,\dots), (1,0,\dots)\) | Universal Divided Power Quotient Algebra |
MultivariateBinomialConvolutionSemiring |
$\mathbb{R}[\boldsymbol{\epsilon}]/\langle | \boldsymbol{\beta} | =K+1\rangle$ | Componentwise \(+\) | Multi-Binomial Convol. | |
DualNumberSemiring |
\(\mathbb{R}[\epsilon]/\epsilon^2\) | \((u+v, u\x27+v\x27)\) | \((uv, uv\x27+u\x27v)\) | \((0, 0), (1, 0)\) | Forward-Mode Automatic Differentiation | |
MonoidAlgebraSemiring |
\(R[M]\) | Linear Sum | Convolution | \(\emptyset, \{e: \mathbf{1}\}\) | Group Rings, Signal Transforms | |
PolynomialSemiring |
\(R[x]\) | Polynomial \(+\) | Cauchy Product | \(\emptyset, \{0: \mathbf{1}\}\) | Generating Functions, Control Theory | |
ProvenanceSemiring |
\(\mathbb{N}[X]\) | Poly \(+\) | Poly \(\cdot\) | \(\emptyset, \{(): 1\}\) | Database Provenance, Parsing Derivation Trees | |
KnotSemiring |
\(\mathbb{Z}[A, A^{-1}]\) | Poly \(+\) | Poly \(\cdot\) | \(\emptyset, \{\text{\x27U\x27}: 1\}\) | Topological Knot Invariants (Kauffman Bracket) | |
QuotientMonoidAlgebraSemiring |
\(R[M] / \mathcal{I}\) | Linear Sum | Quotient Convol. | \(\emptyset, \{e: \mathbf{1}\}\) | Universal Quotient Ring Framework | |
CliffordSemiring |
\(Cl(p, q, r)\) | Blade \(+\) | Geometric Prod. | \(\emptyset, \{(): 1.0\}\) | 3D/4D Rotors, Spacetime Physics, Dirac Spinors | |
GeneralizedCliffordSemiring |
\(C_n^{(m)}\) | Blade \(+\) | Clock-and-Shift | \(\emptyset, \{(0,\dots): 1.0\}\) | Discrete Weyl Quantization, Root-of-Unity Algebras | |
QuantumCliffordSemiring |
\(Cl_q(m)\) | Blade \(+\) | \(q\)-Braided Prod. | \(\emptyset, \{(0,\dots): 1.0\}\) | Quantum Groups, Braided Tensor Geometry | |
GaloisFieldSemiring |
\(GF(p^m)\) | Poly \(+ \bmod p\) | Poly \(\cdot \bmod P(x)\) | \(\emptyset, \{0: 1\}\) | Finite Field Cryptography, AES S-Box | |
| Recipe Extensions (Applied) | MatrixSemiring |
\(\mathbb{R}^{d \times d}\) (Matrices) | Elementwise \(\min\) | Matrix Mul (\(A B\)) | \(\infty \cdot \mathbf{J}, \mathbf{I}_d\) | Vector Bundles, Parallel Transport, Gauge Kinematics |
IntervalSemiring |
\([\underline{x}, \overline{x}] \subset \mathbb{R}\) | \([\underline{a}+\underline{b}, \overline{a}+\overline{b}]\) | Interval \(\times\) | \([0, 0], [1, 1]\) | Bounded Uncertainty Analysis, Robust Control | |
GrammarSemiring |
\(\mathcal{P}(\text{NonTerminals})\) | \(\cup\) | \(A \Rightarrow BC\) | \(\emptyset, \{\text{\x27S\x27}\}\) | CYK Grammar Parsing, NLP Derivations | |
VectorClockSemilattice |
\(\mathbb{N}_0^K\) | \(\max\) (LUB Join) | Component \(+\) | \(\mathbf{0}, \mathbf{0}\) | Distributed Systems Causality & CRDT Synchronization | |
GradientDualNumber |
\(\mathbb{R} \times \mathbb{R}^K\) | Elementwise \(+\) | Leibniz \(\nabla(uv)\) | \(0, 1\) | Multivariate Forward-Mode Jacobian Tracking |
5. Factory Ergonomics & Semiring Normalization¶
To ensure safe, uniform semiring lifecycle management across algorithms and recipes, the base Semiring class provides first-class factory methods:
from algebrax.semiring import Semiring, TropicalSemiring
# 1. Canonical default semiring (StandardSemiring over float or custom dtype)
s_default = Semiring.default() # StandardSemiring[float]
s_complex = Semiring.default(dtype=complex) # StandardSemiring[complex]
# 2. Normalize optional semiring parameters in library functions and algorithms
s1 = Semiring.normalize(None) # Resolves to StandardSemiring[float]
s2 = Semiring.normalize(None, default=TropicalSemiring()) # Resolves to TropicalSemiring
s3 = Semiring.normalize(TropicalSemiring()) # Returns TropicalSemiring as-is
# 3. Convenience alias
s4 = Semiring.create("tropical") if False else Semiring.create()
Factory Methods Reference¶
| Method | Signature | Description |
|---|---|---|
Semiring.default(dtype=float) |
(dtype: type[T] = float) -> StandardSemiring[T] |
Instantiates the canonical standard addition/multiplication semiring for the requested carrier type. |
Semiring.normalize(semiring, default) |
(semiring: Semiring[V] \| None = None, default: Semiring[V] \| None = None) -> Semiring[V] |
Safely coerces an optional semiring parameter into an active Semiring instance, falling back to default or Semiring.default(). |
Semiring.create(semiring, default) |
(semiring=None, default=None) |
Direct alias to Semiring.normalize for uniform factory instantiation. |
6. Verifying Semiring Properties¶
To formally verify that any custom or built-in semiring satisfies all 9 algebraic axioms:
import algebrax as ax
# Test all 9 axioms with numerical/sparse equality checks
results = ax.verification.verify_semiring_laws(
semiring=ax.semiring.TropicalSemiring(),
samples=[float("inf"), 0.0, 1.5, 4.0, 10.0]
)
print("Axiom Audit Results:", results)
# Output: {"add_associativity": True, "add_commutativity": True, "add_identity": True, ...}
For more details, see the Algebraic Law Verification Tutorial.