You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
verify: fix/document 1 of 3 Kani matrix failures (format/merkle/wasm_module)
wasm_module — FIXED. The workflow filter was `wasm_module::tests`, which
matched zero harnesses (the Kani module is named `component_proofs`, not
`tests`), so `cargo kani --harness wasm_module::tests` exited non-zero.
Pointed the matrix entry at `wasm_module::component_proofs`. The single
underlying harness has no loops and no crypto, so it should run cleanly
at --default-unwind 4. Mask lifted.
merkle — DOCUMENTED. Three of five harnesses
(proof_leaf_node_domain_separation, proof_leaf_hash_deterministic,
proof_node_hash_deterministic) call SHA-256 with symbolic input. The
sha2 crate's 64-round compression loop blows past --default-unwind 4,
producing an unwinding-assertion failure before the assert is reached.
proof_leaf_node_domain_separation additionally asks Kani to disprove
SHA-256 collisions, which is outside bounded model checking entirely.
Added per-harness doc-comments with the diagnosis. Mask retained.
format — DOCUMENTED. Static analysis of the four harnesses shows
sound, loop-free properties on 4 symbolic bytes, yet CI reports them
failing under cargo kani --default-unwind 4 --harness format. Suspected
SMT-state-space blow-up similar to the documented slowness already
noted in proof_consistency_validation_agrees_with_detection. Added a
mod-level doc-comment recording the analysis and the suggested next
attempt (split harnesses per magic-byte pattern). Mask retained.
Also restructured the Kani matrix to carry `tolerate_failure` per
include entry so the step-level continue-on-error is now per-matrix-
job rather than blanket — this is what audit C-7's partial-closure
plan required.
Closes audit C-7 partially — 1 of 3 jobs no longer needs continue-on-error.
varint + dsse remain unmasked; wasm_module is newly unmasked; merkle +
format stay masked with explicit diagnosis.
Refs: audit C-7
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
0 commit comments