Expand description
AION OS — first-party proof engine (aion_verify).
“Our validation and proof functions should do everything Kani does” — for enumerable and bounded
domains, this delivers exactly that: it checks a predicate against every input in the domain and
returns a Verdict of either Proven { cases } (complete coverage — a proof) or Refuted with the
counterexample that broke it. That is the same guarantee a bounded model checker gives over a bounded
space: not a sample, the whole space.
What it does NOT do (and why Kani stays): it brute-force enumerates, so it cannot cover astronomically
large domains the way Kani’s symbolic/SAT reasoning (CBMC) can. So aion_verify is the everyday,
first-party tier-4 engine for finite/bounded invariants, and Kani (tier 5) remains the independent,
third-party proof — symbolic coverage of the large cases plus an outside confirmation of ours. Two
tiers, two independent methods, per AION’s validation doctrine.
no_std, #![forbid(unsafe_code)].
Modules§
- ledger
- A tamper-evident, append-only hash-chain
ledger(with a pure-Rust SHA-512) for recording proof results so they cannot be forged or silently deleted. A tamper-evident, append-only ledger for proof results. - mss
- Many-time post-quantum signatures: a Merkle tree (
mss, XMSS-style) over the one-time WOTS, so one published root signs2^heightproofs from a single key. Many-time post-quantum signatures — a Merkle Signature Scheme (XMSS-style) over the one-time WOTS ofcrate::pqsig. - pqsig
- Post-quantum authenticity: a hash-based (WOTS)
pqsigsignature over the ledger head, so the log is provably yours and immune to Shor’s algorithm — using only SHA-512, still zero-dependency. Post-quantum authenticity — a WOTS (Winternitz one-time) hash-based signature over SHA-512. - symbolic
- TIER 5 — symbolic verification over unbounded domains (interval abstract interpretation). Proves
properties over all of
u64without enumerating it, entirely in first-party Rust. Seesymbolic. TIER 5 — symbolic verification over unbounded integer domains, in pure Rust.
Enums§
- Verdict
- The outcome of a proof attempt over a domain.
Functions§
- for_all
- Prove
predholds for EVERY item produced byinputs. Complete coverage of the domain = a proof. - for_
all_ in - Exhaustive proof over the inclusive range
[lo, hi]. - for_
all_ pairs - Exhaustive proof over the cartesian product of two finite domains (binary invariants). Returns the
(a, b)pair that breakspred, if any. - for_
all_ u8 - Exhaustive proof over the entire
u8domain (all 256 values). - for_
all_ where - Like
for_allbut only over inputs satisfyingprecond— the equivalent of akani::assumeguard. Provespredon every input where the precondition holds.