Axiom.jl classifies its test suite using the estate-canonical proven-tests
taxonomy (hyperpolymath/proven-tests-and-benches, MIT). This is a
documentation convention only — Axiom does not take a code dependency on
proven-tests (which is Idris2); it adopts the two classification axes as a
shared vocabulary so Axiom’s tests are legible against the rest of the estate.
Axis 1 — category (what kind of test). proven-tests numbers fourteen:
01-unit, 02-p2p, 03-e2e, 04-build, 05-runtime, 06-reflexive,
07-lifecycle, 08-smoke, 09-property, 10-mutation, 11-fuzz,
12-contract, 13-regression, 14-chaos (plus a TypeSafeTests track for
type-system properties). Axiom uses the subset that applies to a numerics/ML
library; categories with no Axiom tests today are listed as gaps below.
Axis 2 — provenance tier (how strongly the result is established):
-
Actually-Proven — a machine checks the property soundly (static analysis that proves absence, or a cryptographic/decidable check).
-
Provisionally-Proven — a proof path runs but may degrade (e.g. the SMT backend returns
:unknownwhen no solver is present). -
Unproven — empirical assertion: the test exercises behaviour and checks outputs, but establishes no formal guarantee.
Reporting the tier honestly is the point: an @test that merely runs a function
is Unproven, and must not be described as a proof.
| Test file | Category | Tier | Notes |
|---|---|---|---|
|
01-unit |
Unproven |
Shape, dtype, forward-pass behaviour. |
|
01-unit / 09-property |
Unproven |
Reversible-layer round-trips. |
|
09-property |
Unproven |
Randomised property checks. |
|
03-e2e |
Unproven |
Build → infer → verify → package flow. |
|
08-smoke / 05-runtime |
Unproven |
Loads + runs on the default backend. |
|
08-smoke |
Unproven |
Availability-gated smoke. |
|
12-contract |
Unproven |
Backends must agree numerically (cross-backend contract). |
|
14-chaos |
Unproven |
Graceful degradation when a device is absent/faulty. |
|
05-runtime |
Unproven |
Backend-selection behaviour. |
|
05-runtime |
Unproven |
Optimisation-pass effects. |
|
12-contract |
Unproven |
Manifest / certificate shape contracts. |
|
05-runtime |
Unproven |
Telemetry accounting. |
|
12-contract |
Provisionally-Proven |
Proof-bundle export/round-trip (export works; downstream proof-assistant check is external). |
|
12-contract |
Unproven |
Certificate serialisation round-trip. |
|
13-regression |
Actually-Proven |
Regression guards that the P1 soundness holes never silently reopen. |
|
12-contract |
Actually-Proven |
Ed448+Dilithium5 forgery-rejection — a cryptographic (decidable) check. |
|
12-contract |
Unproven |
Offline HF import: config → architecture → Pipeline. |
|
06-reflexive |
Actually-Proven |
Aqua proves absence of ambiguities / unbound params / stale deps / piracy. |
|
06-reflexive |
Actually-Proven |
JET proves no method/type errors in Axiom-owned code (scoped). |
-
02-p2p,04-build,07-lifecycle— not applicable to a single library today. -
10-mutation— nocargo-mutants-style mutation testing wired (tracked; the Julia-library flagship rubric scores this dimension). -
11-fuzz— no fuzz harness yet.
These are recorded honestly rather than hidden: the suite’s strength is
concentrated in unit/contract/reflexive, and the Actually-Proven tier is
carried by JET, Aqua, the soundness regression guards, and the hybrid-signing
forgery check — not by the empirical majority.