Skip to main content

ogdoad

CI crates.io PyPI docs.rs License: AGPL v3

Ogdoad is a pure-Rust Clifford-algebra and quadratic-forms library over exact, finite, local, transfinite, and game-adjacent scalar worlds. The same core supports degenerate metrics: if q[i] = 0, then e_i^2 = 0, and an all-zero quadratic form gives the exterior algebra. Optional PyO3 bindings expose the runtime-friendly backends without entering the Rust math core.

The organizing idea is two-dimensional:

  • src/scalar/ groups coefficient worlds by place: exact, finite, Archimedean/transfinite, valued, and global;
  • src/forms/ cuts across those worlds by characteristic and classification theory.

This exposes recurring correspondences: real Clifford periodicity and characteristic-two Arf/Brauer--Wall theory; fields and their rings of integers; residue and value extensions; local Springer data and global reciprocity; and codes, lattices, discriminant forms, and Weil representations.

Scope

The Clifford engine is generic over a commutative Scalar ring. Conway games under disjunctive sum form an abelian group, not a ring, so Ogdoad is not a Clifford algebra over arbitrary partizan games. Direct scalar backends include the field-like game subclasses (nimbers, represented surreals, and surcomplex numbers); the games pillar supplies separate game-theoretic constructions.

In characteristic two the quadratic and polar data are independent:

e_i^2             = q_i
e_i e_j + e_j e_i = b_ij

The polar form is alternating, while q_i may be nonzero. This separation is a hard invariant of the engine. An optional upper-triangular a_ij records the in-order contraction for a general bilinear metric.

Other important boundaries:

  • Nimber(u128) is the finite field F_{2^128}, not the algebraic closure of F_2.
  • Surreal is a finite-support Hahn/CNF representation, not every surreal number or every infinite series.
  • Qp, Qq, Laurent, Ramified, Gauss, Adele, and runtime LocalQp are capped-precision models; their documented contracts differ from exact fields.
  • Ordinal::nim_mul returns None when a product escapes the supported Kummer tower; its Scalar::mul wrapper panics if a caller ignores that boundary.
  • Finite computation and source-pinned tables are evidence, not universal proofs. The exact open boundary is in docs/OPEN.md.

Architecture

path role
src/scalar/ Scalar, exactness/valuation/extension traits, and coefficient backends
src/clifford/ metrics, blades, multivectors, geometric products, outermorphisms, versors, spinors, CGA, Hopf and divided-power structures
src/forms/ characteristic-specific classifiers, Witt and Brauer groups, Springer theory, local--global arithmetic, and integral forms
src/forms/integral/ lattices, discriminant forms, genus and mass, codes, theta/modular forms, Kneser neighbors, and Weyl versors
src/games/ impartial, partizan, misere, and loopy games; thermography; Hackenbush; lexicodes; checked game-exterior data
src/py/ optional per-backend PyO3 bindings
src/linalg/ crate-private shared/unit-pivot linear algebra
grundy/ unpublished expression-language workspace member built over Ogdoad's public API
formal/ standalone Lean 4 project for load-bearing proof ingredients and explicit open propositions
writeups/ the current mathematical papers and their BibTeX bibliographies

Each source pillar has a short AGENTS.md recording its invariants and file map. docs/README.md indexes the current documentation.

Implemented mathematical surface

The scalar layer includes:

  • exact Integer, Rational, Fp, Fpn, Nimber, RationalFunction, and Poly arithmetic when the coefficient backend is exact;
  • finite-support Surreal, Omnific, Surcomplex, and staged ordinal nimbers;
  • Zp, Qp, WittVec, Qq, Laurent, ramified, and Gauss valuation models;
  • adelic and function-field global interfaces;
  • finite-field Galois operations, residue/integrality traits, Newton polygons, and dual tropical semirings.

The forms layer includes characteristic-zero, odd-characteristic, and characteristic-two classification; Arf, Brown, Witt, Brauer, and Brauer--Wall invariants; Hermitian and symplectic forms; Springer decompositions; rational and function-field local--global arithmetic; and an integral wing covering codes, lattices, discriminant forms, Weil matrices, genus symbols, mass formulae, Kneser neighbors, theta series, Niemeier data, and Clifford/Weyl bridges.

The games layer includes normal-play Grundy evaluation, misere quotients, finite loopy impartial and partizan graphs, short partizan games, thermography and Norton operations, coin turning, Hackenbush, lexicodes, and the exterior algebra of the game group.

Quickstart

Rust:

cargo test --workspace
cargo run --example tour

Python 3.9 or newer:

python -m maturin build --profile dev -i python
python -m pip install --force-reinstall --no-deps target/wheels/ogdoad-*.whl
python demo.py
import ogdoad as og

# Characteristic-two Clifford data: q and b are independent.
A = og.NimberAlgebra(q=[og.Nimber(2), og.Nimber(3)], b={(0, 1): 1})
e0, e1 = A.gen(0), A.gen(1)
assert e0 * e1 + e1 * e0 == A.scalar(og.Nimber(1))

# Exact represented surreal monomials.
S = og.SurrealAlgebra(q=[og.omega(), og.epsilon()])
assert (S.gen(0) * S.gen(1)) ** 2 == S.scalar(og.Surreal.from_int(-1))

# One Hackenbush object, different evaluators.
blue, green = og.Color.blue(), og.Color.green()
og.Hackenbush.string([blue, blue]).value()
og.Hackenbush.string([green, green]).grundy()

Python binds plain runtime types and a documented fixed dispatch slice of the const-generic families. Extending that slice is deliberate; mixing scalar worlds inside one algebra remains a TypeError.

Research status

Two mathematical fronts remain open:

  1. the arbitrary-graph isolated-dummy FIFO linking conjecture;
  2. the universal 0/1/4 rule for finite excess in transfinite nim multiplication.

Their exact statements, proved reductions, counterexample boundaries, and verification surfaces are in docs/OPEN.md. The active papers are:

  • goldarf.tex: quadratic refinements in normal play, the observation bound, Brown selectors, and the ambient game-exterior obstruction;
  • linking_affine.tex: the open FIFO linking problem;
  • excess.tex: the open transfinite nim-excess problem;
  • thermo_newton.tex: Norton thermic laws and the separation from Newton-polygon tropicalization;
  • transfinite_arf.tex: quadratic forms over perfect Artin--Schreier-surjective characteristic-two fields and full On_2.

Lean checks independent algebraic and combinatorial ingredients. It does not replace the paper-level synthesis with a single end-to-end arena theorem; see formal/README.md.

Verification

cargo fmt --all --check
cargo test --workspace
cargo clippy --workspace --all-targets -- -D warnings
RUSTDOCFLAGS="-D warnings" cargo doc --no-deps --workspace
(cd formal && lake build --wfail)
npm ci
python scripts/check_writeups.py

The last command compiles each paper, converts it with Pandoc to standalone HTML, and renders every math fragment with the pinned KaTeX version.

Contributing

See CONTRIBUTING.md. New mathematical claims must be identified as standard/cited, implemented and tested, proved in the project, or open. The public API uses u128/i128 for fixed-width mathematical payloads and usize only for dimensions and indices.

Ogdoad is licensed under AGPL-3.0-or-later.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ogdoad-1.0.2.tar.gz (969.5 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

ogdoad-1.0.2-cp39-abi3-win_amd64.whl (17.7 MB view details)

Uploaded CPython 3.9+Windows x86-64

ogdoad-1.0.2-cp39-abi3-musllinux_1_2_x86_64.whl (16.5 MB view details)

Uploaded CPython 3.9+musllinux: musl 1.2+ x86-64

ogdoad-1.0.2-cp39-abi3-musllinux_1_2_aarch64.whl (15.1 MB view details)

Uploaded CPython 3.9+musllinux: musl 1.2+ ARM64

ogdoad-1.0.2-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (14.9 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ x86-64

ogdoad-1.0.2-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (15.0 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ ARM64

ogdoad-1.0.2-cp39-abi3-macosx_11_0_arm64.whl (13.9 MB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

ogdoad-1.0.2-cp39-abi3-macosx_10_12_x86_64.whl (15.0 MB view details)

Uploaded CPython 3.9+macOS 10.12+ x86-64

File details

Details for the file ogdoad-1.0.2.tar.gz.

File metadata

  • Download URL: ogdoad-1.0.2.tar.gz
  • Upload date:
  • Size: 969.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for ogdoad-1.0.2.tar.gz
Algorithm Hash digest
SHA256 707983a25d34e3f2ce05114d4ff153690e0a7564d9a89dbffcefd431e7b59850
MD5 ca850df318ed133cc3d8d09285acfbc0
BLAKE2b-256 7ef2d58f33fc43f53f203043c10e98b36597a8b4cb63d3fa1cd8cda1cf89b648

See more details on using hashes here.

Provenance

The following attestation bundles were made for ogdoad-1.0.2.tar.gz:

Publisher: release.yml on a9lim/ogdoad

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ogdoad-1.0.2-cp39-abi3-win_amd64.whl.

File metadata

  • Download URL: ogdoad-1.0.2-cp39-abi3-win_amd64.whl
  • Upload date:
  • Size: 17.7 MB
  • Tags: CPython 3.9+, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for ogdoad-1.0.2-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 8a771bd51d9e06f60de65fb663e8a65e4efa8788775dd88a207160c251981795
MD5 461d895c2babcdf808660f4c3a1be178
BLAKE2b-256 96cbfafeb3476f794a813f3889cf84b8c9c446c35f9474b9febc630591e28c34

See more details on using hashes here.

Provenance

The following attestation bundles were made for ogdoad-1.0.2-cp39-abi3-win_amd64.whl:

Publisher: release.yml on a9lim/ogdoad

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ogdoad-1.0.2-cp39-abi3-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for ogdoad-1.0.2-cp39-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d18300e07a77b9eb24dee36af43ead2ffd1f449f376eb15f50aa7a97ee520798
MD5 e530e0a9f894bad97463648bc4d279ea
BLAKE2b-256 0370814aba84a0b40454921a5ffc208ed122d18554f0e493de037927a092a58f

See more details on using hashes here.

Provenance

The following attestation bundles were made for ogdoad-1.0.2-cp39-abi3-musllinux_1_2_x86_64.whl:

Publisher: release.yml on a9lim/ogdoad

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ogdoad-1.0.2-cp39-abi3-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for ogdoad-1.0.2-cp39-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 1168debd6ca5d864ee542b96fb45756e2a68db90583797cc9e7a0a1c1c291981
MD5 dde4ee831088047789b02ad830ab6b97
BLAKE2b-256 327a07f033816fcba258b2acc9837ee487784435fcffc2a234568fcb41fc44d2

See more details on using hashes here.

Provenance

The following attestation bundles were made for ogdoad-1.0.2-cp39-abi3-musllinux_1_2_aarch64.whl:

Publisher: release.yml on a9lim/ogdoad

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ogdoad-1.0.2-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for ogdoad-1.0.2-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 aebeed51a93739e7657ce2447105923a0792b9ab305611c8af7acbf346403025
MD5 da22eb3a57e08634e8fd03aabffbbb9d
BLAKE2b-256 3a11a337e66e8e37e90d75318f2af9f383a9ad693c2ffdabd836a00773759e78

See more details on using hashes here.

Provenance

The following attestation bundles were made for ogdoad-1.0.2-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on a9lim/ogdoad

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ogdoad-1.0.2-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for ogdoad-1.0.2-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 aae019e6f094b7fc710b0658ee9074b27115373c4fd1a899901c8217e8a2ba66
MD5 d2ccaad9df0210c82dbe6c064c13eef2
BLAKE2b-256 0152215301944bc8653a7fb74f1c4978c7cdd7b776a61bc320eed5aef6917045

See more details on using hashes here.

Provenance

The following attestation bundles were made for ogdoad-1.0.2-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on a9lim/ogdoad

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ogdoad-1.0.2-cp39-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for ogdoad-1.0.2-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 db2ac01aaf3594bf65477f68eaf6b667ebb2c2f84641dddfab51af10e73cff2f
MD5 551fd27c9c9f838a5b7f0d11f206ff2b
BLAKE2b-256 1240ae766fc5b317fd056fb1ee721ce4ce21d1feccabfa3ed673578d7b5ad6df

See more details on using hashes here.

Provenance

The following attestation bundles were made for ogdoad-1.0.2-cp39-abi3-macosx_11_0_arm64.whl:

Publisher: release.yml on a9lim/ogdoad

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ogdoad-1.0.2-cp39-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for ogdoad-1.0.2-cp39-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 514099582e550842316414f813ac59abcdc84e3901aae1593509bba5af5b0fcd
MD5 0c13155e99779cbd190e09adb3cff2e0
BLAKE2b-256 10cd51972fa10d379cc4832459156c3c977e354c2c4573748333a627b622cfdb

See more details on using hashes here.

Provenance

The following attestation bundles were made for ogdoad-1.0.2-cp39-abi3-macosx_10_12_x86_64.whl:

Publisher: release.yml on a9lim/ogdoad

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

1.0.7

8 files

1.0.6

8 files

1.0.5

8 files

1.0.4

8 files

1.0.3

8 files

This release

1.0.2 This release

8 files

1.0.1

8 files

1.0.0

8 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page