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, Witt/Brauer 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))

# 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, lexicode turning games, conformal-algebra accessors, represented ordinal finite-subfield degrees, checked Witt--FIFO and Brown constructors, 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
thermo_newton.tex thermic regrading under Norton multiplication and its separation from Newton tropicalization
linking_affine.tex proved reductions and exact remaining obstruction for isolated-dummy FIFO linking
excess.tex four-arm reduction and exact remaining selected-order problem for transfinite nim excess

The last two universal claims remain open. Their concise statements and sharp proof boundaries are in docs/OPEN.md. Lean checks named ingredients and several end-to-end finite constructions, not the open propositions; 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

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.5.tar.gz (886.6 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.5-cp39-abi3-win_amd64.whl (17.9 MB view details)

Uploaded CPython 3.9+Windows x86-64

ogdoad-1.0.5-cp39-abi3-musllinux_1_2_x86_64.whl (17.1 MB view details)

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

ogdoad-1.0.5-cp39-abi3-musllinux_1_2_aarch64.whl (15.5 MB view details)

Uploaded CPython 3.9+musllinux: musl 1.2+ ARM64

ogdoad-1.0.5-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (15.5 MB view details)

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

ogdoad-1.0.5-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (15.3 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ ARM64

ogdoad-1.0.5-cp39-abi3-macosx_11_0_arm64.whl (14.2 MB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

ogdoad-1.0.5-cp39-abi3-macosx_10_12_x86_64.whl (15.6 MB view details)

Uploaded CPython 3.9+macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: ogdoad-1.0.5.tar.gz
  • Upload date:
  • Size: 886.6 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.5.tar.gz
Algorithm Hash digest
SHA256 b0c44aefc485b9019fe7115b107f78e2ade91d4469bea203dccbcbd7458dfe75
MD5 2dee606eee02b1f23ad373798f5e36bf
BLAKE2b-256 bc6d56b99e214cdac562cefa2350383e5d63d089afcc7396380bed687f6c2254

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: ogdoad-1.0.5-cp39-abi3-win_amd64.whl
  • Upload date:
  • Size: 17.9 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.5-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 9ef0a842be582ee78bfb6144f06233413ea86b5fdfc2e2fa08a2754bc51ee08d
MD5 abba0eb4f2fb6fd52693bc8d2c9e5f5d
BLAKE2b-256 b7888c86178b1e5d8e80eb6480d2b205f57d045a0f4abd72ae8eed2aa5064e8a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for ogdoad-1.0.5-cp39-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 1651e8b35311cf3cdbfe5339937ebda49e02c2a0744c203bf2246d1c23d53e75
MD5 0babf49d87289c1b6e39d484dd87135e
BLAKE2b-256 8be36e2970177f6fd67255669006d00d5946dd3382c3df0f2da1101449807588

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for ogdoad-1.0.5-cp39-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 23b47f163b2bb210fd2fc4be7862868e5c314e562d6c0863bb14a5b3c05306e9
MD5 5be849f864e5087a719c12cb97fcbc35
BLAKE2b-256 16842c89921b176901096576a449a98aad6f5cd66564a43ce5bf9de21b44d858

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for ogdoad-1.0.5-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3581281c4523298e73e45e2cc7670af6b547c977434c932ad786de99632539ee
MD5 f69f23b660ef79710691aef47c1f35ea
BLAKE2b-256 688129100e4dcd752a31820675bd7844e740ded34b21332795d6d156dad230b8

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for ogdoad-1.0.5-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 0c677a154b00ae59451c6b65e3a0530882180f5828c8bf99add56dfb0d6125ff
MD5 551dc2ce0974ae96098f75869bd3d434
BLAKE2b-256 05bf15ca50987240ed99011711ef95e1404888c7cc875fae1fc92cc723fd6e69

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for ogdoad-1.0.5-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c291ac9ceb6c143bcaf57e358362762a43724141cf3680db707f661911c41973
MD5 edac391de4896398ee18b1233a731e80
BLAKE2b-256 f009f0363035e7830d64de588ab79117aebb2adae572ed36c7deffe924e2e7ee

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for ogdoad-1.0.5-cp39-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 d42abcaf60feadf6871d7b2ea1563cce7c5761b69c5c93861680d815ef6e80d4
MD5 0e2c4e3d03038264879c55e0b749b4be
BLAKE2b-256 f8b52ac740e4a2f43035a7774711d6b04f32bba94abaa9fdae69ee71af4c680e

See more details on using hashes here.

Provenance

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

This release

1.0.5 This release

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