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§
- 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.