Skip to main content

ogdoad

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

Ogdoad is a pure-Rust library for Clifford algebras, quadratic forms, and related arithmetic over exact, finite, local, transfinite, and game-adjacent coefficient systems. Optional PyO3 bindings expose selected concrete backends without entering the generic math core.

The library supports degenerate metrics. In characteristic two it keeps the quadratic and polar data independent:

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

An optional upper-triangular a_ij records ordered contraction for a general bilinear metric. Generic product code obtains signs through Scalar::neg and does not special-case the characteristic.

Scope

A Clifford scalar is a commutative ring. Arbitrary partizan games form only an abelian group under disjunctive sum, so Ogdoad is not a Clifford algebra over all games. The scalar pillar includes field-like game subclasses such as finite nimbers and represented surcomplex numbers; genuinely game-theoretic constructions live in the separate games pillar.

Representation limits are part of the API:

  • Nimber(u128) is F_(2^128), not the algebraic closure of F_2.
  • Surreal stores finite-support Conway-normal-form expressions, not arbitrary surreal series.
  • valued and local models have explicit precision caps and do not silently claim exact field laws outside them.
  • Ordinal::nim_mul, nim_pow, checked_inv, and checked_sqrt preserve the supported Kummer-tower boundary through Option; the Scalar multiplication wrapper panics if that checked boundary is ignored.
  • fixed-width mathematical payloads use u128 or i128; usize is reserved for dimensions, indices, and ABI hooks.

Architecture

path role
src/scalar/ coefficient traits and exact, finite, valued, global, surreal, and ordinal backends
src/clifford/ metrics, blades, multivectors, products, versors, spinors, and geometric-algebra constructions
src/forms/ quadratic-form classification, Clifford centers, Witt/Brauer and low Milnor-symbol theory, Springer and local--global arithmetic
src/forms/integral/ lattices, discriminant forms, codes, theta series, genera, neighbors, and Weyl bridges
src/games/ impartial, partizan, misere, loopy, thermographic, Witt--FIFO/Brown, octal-certificate, Hackenbush, and game-exterior constructions
src/py/ optional per-backend PyO3 bindings; scalar worlds never mix at runtime
src/linalg/ crate-private shared linear algebra
grundy/ unpublished expression-language workspace crate using only Ogdoad's public API
formal/ separately pinned Lean 4 development
writeups/ current mathematical papers and BibTeX sources

Public pillars re-export their children shallowly. Each source pillar has an AGENTS.md with its local invariants; docs/README.md indexes the current project documentation.

Use

Rust:

cargo add ogdoad
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
import ogdoad as og

# q and b are independent in characteristic two.
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 finite-support 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))

# A Hermitian form restricts to the ordinary quadratic form q(v)=h(v,v)
# over the involution-fixed field; dimension doubles.
H = og.HermitianForm.diagonal([1, -1])
Q = H.restrict_scalars()
assert Q.dim == 4 and og.surreal_signature(Q) == (2, 2, 0)

# Checked game constructors preserve their proof and validation boundaries.
arena = og.WittFifoArena(diagonal=[True], polar=[0], input=1)
assert arena.quadratic_value and arena.grundy(state_budget=100_000) != 0

selector = og.BrownSelector(q4=[3], brown_polar=[0], input=1)
outcome = selector.outcome_class(state_budget_per_follower=100_000)
assert og.BrownSelector.decode_outcome(outcome) == selector.residue

code = og.OctalCode([2])
certificate = og.GuySmithCertificate.compute(code, 1, 2, term_budget=16)
assert certificate.heap_grundy(10**30) == 1

The Python layer monomorphizes a documented slice of the Rust backends. It does not provide a runtime-tagged any-scalar algebra. Its typed report surface includes finite quadratic modules and Nikulin criteria, extraspecial and Heisenberg--Weil objects, function-field Brauer--Wall classes, Niemeier data, finite-field Witt decompositions and numeric-invariant reports, characteristic-two additive spinor norms and symmetry certificates, lexicode turning games, conformal-algebra accessors, represented ordinal finite-subfield degrees, checked Witt--FIFO and Brown constructors, Hermitian restriction to typed ordinary quadratic backends, and sealed Guy--Smith periodicity certificates. Python repr delegates to canonical Rust rendering where the core provides it.

Mathematical status

The papers under writeups/ form one current research suite:

paper result
transfinite_arf.tex classification over perfect Artin--Schreier-surjective characteristic-two fields and its full-nimber specialization
goldarf.tex quadratic-refinement realization in normal play, Gold specialization, Brown selector, and game-exterior obstruction
witt_realization.tex quadratic Witt coordinates over F_2(t), finite impartial realization, explicit ramified naturality, and finite-static and singular no-go theorems
thermo_newton.tex thermic regrading under Norton multiplication and its separation from Newton tropicalization
semiring_stability.tex stable quadratic-pair classification over Hessenberg and supertropical semirings, the universal scalar-extension quotient, and the thermograph wall obstruction
linking_affine.tex proved reductions and exact remaining obstruction for isolated-dummy FIFO linking
excess.tex exact four-arm selected-order reduction, proved arithmetic boundaries, and authoritative open status of the transfinite nim-excess 0/1/4 rule
nim_fast_multiplication.tex quasi-linear canonical-word multiplication via explicit affine transforms to a primitive Artin--Schreier tower
misere_natural_realization.tex exact octal trace calculus, finite-exception heap normal form, realization of every tame finite quotient, and exact misere Grundy quotients through heap 18

The unresolved universal claims and their sharp proof boundaries are in docs/OPEN.md. Lean checks named algebraic components and end-to-end finite constructions including the literal Gold--Arf root; cited bridges and the open propositions remain outside that boundary. See formal/README.md for the theorem map.

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

docs/VERIFY.md records the optional Python-binding gates, exactness contracts, certificate boundary, and claim classes. Contributions should identify mathematical claims as standard/cited, implemented and tested, proved here, or open; see CONTRIBUTING.md.

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.6.tar.gz (920.3 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.6-cp39-abi3-win_amd64.whl (17.5 MB view details)

Uploaded CPython 3.9+Windows x86-64

ogdoad-1.0.6-cp39-abi3-musllinux_1_2_x86_64.whl (16.6 MB view details)

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

ogdoad-1.0.6-cp39-abi3-musllinux_1_2_aarch64.whl (15.4 MB view details)

Uploaded CPython 3.9+musllinux: musl 1.2+ ARM64

ogdoad-1.0.6-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (15.0 MB view details)

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

ogdoad-1.0.6-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (15.2 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ ARM64

ogdoad-1.0.6-cp39-abi3-macosx_11_0_arm64.whl (14.1 MB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

ogdoad-1.0.6-cp39-abi3-macosx_10_12_x86_64.whl (15.1 MB view details)

Uploaded CPython 3.9+macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: ogdoad-1.0.6.tar.gz
  • Upload date:
  • Size: 920.3 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.6.tar.gz
Algorithm Hash digest
SHA256 33567392eb6921ddc0970b3350ac3d0aa3c5f69b34e926e8fa2e01057ec430fc
MD5 ffe0edafc0395eda6f33ff2fe15f3da6
BLAKE2b-256 fe8b2a788ad01b0c9b3b5c1a141ab1d8c585b79898d8b4d619a1fd45dd801547

See more details on using hashes here.

Provenance

The following attestation bundles were made for ogdoad-1.0.6.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.6-cp39-abi3-win_amd64.whl.

File metadata

  • Download URL: ogdoad-1.0.6-cp39-abi3-win_amd64.whl
  • Upload date:
  • Size: 17.5 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.6-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 0b8fb2006e5d4aab9e749078fbaaac436b34bdacd4739ac8ed35debde46de2bc
MD5 ac857bc8a3498745ae66d3f1a6a76821
BLAKE2b-256 979b14f2d6aaa25768d0cd1981e221934f652fa2eb2faec53184f1f539495141

See more details on using hashes here.

Provenance

The following attestation bundles were made for ogdoad-1.0.6-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.6-cp39-abi3-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for ogdoad-1.0.6-cp39-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 f52a0f97104f2a4c83b006cbe4b5f6e870c8350b0a1fe2d783025f8dff404dc0
MD5 6a46cc044f84f72d2404fee4f35e781c
BLAKE2b-256 ef730ae1c763f3f30a869b2138ca0859ae5a6c59c551743415331c98a567f290

See more details on using hashes here.

Provenance

The following attestation bundles were made for ogdoad-1.0.6-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.6-cp39-abi3-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for ogdoad-1.0.6-cp39-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 b31ec4ec3e15c05880621b38e2493712204a50fbb9f4ee01c176a35edfa17997
MD5 a0a69c8e80ba07c1d8acf8bdbc7bc4b4
BLAKE2b-256 824e5bae956911533070c81b1a9d46197905215a68c24514c16fc5e50b0b1999

See more details on using hashes here.

Provenance

The following attestation bundles were made for ogdoad-1.0.6-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.6-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for ogdoad-1.0.6-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5540afd3806972333936a0ce84ef63104db495eee89be490d1b39558121b115b
MD5 a829d181bb0cab8155b88a4852e35e0f
BLAKE2b-256 5837820bbb486995ecd3d30cd6fb71a1c7763dd61f668923423ee9ffc01e5f89

See more details on using hashes here.

Provenance

The following attestation bundles were made for ogdoad-1.0.6-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.6-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for ogdoad-1.0.6-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 d98d1a2135e60fe8040b7a1c0b7373174cf0fa7e21579943afa1fe3fdef5c32d
MD5 edefdd42dd3090920764ba582cdf65e7
BLAKE2b-256 8bfc0f7dacc1b056cd13058b4b54cc91fafe877fee3bc953d2b9ca84de8354e6

See more details on using hashes here.

Provenance

The following attestation bundles were made for ogdoad-1.0.6-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.6-cp39-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for ogdoad-1.0.6-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0d4451f4d86568c6c711142df64daf34e0094616ba333ae4e38157126384eaa5
MD5 b11854587c344a872d0e43414c414a15
BLAKE2b-256 dd6438615ef5c0defd2986764d9634cf877e5bccdb499d6e2038d4d39760cdda

See more details on using hashes here.

Provenance

The following attestation bundles were made for ogdoad-1.0.6-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.6-cp39-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for ogdoad-1.0.6-cp39-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 f6cf8d50dd33f145246c6c0ff671518c31247c781f0a42ce9c2107a969640d57
MD5 d01d693f89b936d6de33ba627f108e46
BLAKE2b-256 08220215a8c70afd2b29654f3cc4e95682f88219cdb3a27092220805ccd10c9f

See more details on using hashes here.

Provenance

The following attestation bundles were made for ogdoad-1.0.6-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

This release

1.0.6 This release

8 files

1.0.5

8 files

1.0.4

8 files

1.0.3

8 files

1.0.2

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