Skip to content

MIRAI prototype — evaluate abstract interpretation on traceability engine internals (artifact store, link graph) #191

@avrabe

Description

@avrabe

Part of the V&V coverage initiative — Phase 5 (Abstract Interpretation).

Context

Abstract interpretation is the one layer of the PulseEngine V&V chain we do not yet run — the third DO-333 technique class alongside theorem proving (Lean / Rocq) and bounded model checking (Kani). We are running three weekend-scale prototypes across sigil, gale, and rivet to understand what property classes AI catches on our actual code before committing to a long-term investment.

rivet is the third prototype target. Different from the other two: this is not primitives or crypto — it is a traceability engine with artifact indexing, link graph analysis, and YAML parsing. The question is whether MIRAI catches different property classes in higher-level data-structure code than it does in the kernel / crypto targets.

Tool

MIRAI — abstract interpreter for Rust MIR from Meta. Research-grade, low recent activity, open source. Designed for Rust; covers integer overflow, panic reachability, some memory properties.

Target code paths

  • rivet-core/src/store.rs — artifact storage / retrieval, index lookups
  • rivet-core/src/proofs.rs — Kani-harnessed paths (compare MIRAI and Kani findings head-to-head)
  • Link graph analysis — coverage computation, reachability queries
  • Schema validation — YAML field access, required-field checks

Property classes to watch for: out-of-bounds on artifact-index access, integer overflow in counts, panic-freedom on malformed YAML, unreachable-code paths in validation.

Acceptance

  • MIRAI installed hermetically and running on rivet-core
  • Report committed at docs/research/mirai-prototype-report.md documenting:
    • Code paths analyzed
    • Properties MIRAI flagged
    • Side-by-side comparison with existing Kani proofs in rivet-core/src/proofs.rs — did MIRAI find anything Kani missed, or vice versa?
    • Integration cost assessment
    • Verdict: signal worth integration cost on rivet specifically?
    • Go / no-go for MIRAI as a CI gate on rivet
  • Findings summary posted back to V&V hub (rivet#184) under Phase 5

Cross-repo synthesis

After all three prototypes (sigil, gale, rivet) complete, we want a cross-repo summary: does MIRAI behave consistently across code styles (crypto parsers, kernel primitives, data-structure code)? That synthesis belongs in the V&V hub update, not in any single prototype report.

Related

  • Sibling prototypes (parallel experiments): pulseengine/sigil, pulseengine/gale
  • Long-term follow-up: pulseengine/rules_lean — Charon-based value analysis pass on LLBC
  • V&V coverage hub: rivet#184

Non-goals

  • Production adoption. Evaluation only.
  • Replacing Kani. Abstract interpretation is complementary, expected to catch classes Kani does not (non-terminating analysis, cross-function integer-range invariants).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions