feat(T2): dissolve the Health Monitor — the isolation core moves onto the verified path - #261
Merged
Conversation
… the verified path REQ-OS-OBJVERIFY-001 needs the isolation core lowered by a compiler that carries per-rule obligations. health_monitor.rs is the cheapest possible first step: ZERO hardware seams, pure scalar predicates. If it could not dissolve, nothing in the isolation core could. It dissolves. Bodies lifted VERBATIM from the Verus/Kani-verified plain/src: health_monitor.rs -> wasm 2401 B -> component 3956 B -> cortex-m3 object text 1054 data 0 bss 0 undefined: none Zero SRAM, and correctly NO undefined symbols: unlike the fused OS composite -- where an empty undefined set means the seam was swallowed -- hm-thin genuinely has no seam. BIN-VERIFY runs on it: 6 functions, 8 rules verified, 0 failed, 0 unknown. AND IT IS NOT A ZERO-GAP RESULT, THOUGH THE SUMMARY LOOKS LIKE ONE. The object contains 29 i32.const. BIN-VERIFY classes Const as a register operation and skips it SILENTLY -- not in the verified list, not in a declined list, because there is no declined list. Its Rocq theorem i32_const_correct is Admitted (false as stated for un-normalized operands; the supporting arithmetic is Qed). So neither half covers it, 29 times over. i32.and / i32.eqz / i32.sub verified + Qed covered by both i32.gt_s / i32.le_s / i32.le_u verified, no theorem covered by BIN-VERIFY only i32.const x29 SKIPPED + Admitted COVERED BY NEITHER Filed: synth#933 (the proof gap) and synth#935 (that the gap is invisible in the tool's own output -- a consumer cannot compute a denominator from `synth verify`). This is the union-denominator clause from #260 earning its place on the first object it was applied to. My first read of that summary was "zero declined, clean". The clause is what made me check the module, and the module had 29 of them. Written the old way, this commit would have recorded a false zero-gap claim. NOT established, stated in RESULTS.md rather than left to be assumed: the evidence-on-wasm set (witness MC/DC, scry, the REQ-OS-HM-001 oracles re-run against the WASM build) has not been produced for this artifact, so BIN-VERIFY shows the lowering is faithful but not that the wasm refines the proven Rust; nothing has executed the object; the switch (3 seams) and mpu_switch (1 seam) remain; and 7 exported predicates became 6 functions, presumed inlining, unconfirmed. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011QG86sovTbfnPNY9SfhSmo
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
REQ-OS-OBJVERIFY-001needs the isolation core lowered by a compiler that carries per-rule obligations.health_monitor.rsis the cheapest possible first step: zero hardware seams, pure scalar predicates. If it couldn't dissolve, nothing in the isolation core could.It dissolves
Zero SRAM, and correctly no undefined symbols — unlike the fused OS composite, where an empty undefined set means the seam was swallowed,
hm-thingenuinely has no seam.BIN-VERIFY runs on it: 6 functions, 8 rules verified, 0 failed, 0 unknown.
And it is NOT a zero-gap result, though the summary looks like one
The object contains 29
i32.const. BIN-VERIFY classes Const as a register operation and skips it silently — not in the verified list, not in a declined list, because there is no declined list.i32.and,i32.eqz,i32.subQedi32.gt_s,i32.le_s,i32.le_ui32.const×29AdmittedFiled: synth#933 (the proof gap — false as stated for un-normalized operands, supporting arithmetic is
Qed) and synth#935 (that the gap is invisible in the tool's own output).This is the union-denominator clause from #260 earning its place on the first object it was applied to. My first read of that summary was "zero declined, clean." The clause is what made me check the module, and the module had 29 of them. Written the old way, this PR would have recorded a false zero-gap claim.
What it establishes
What it does not
REQ-OS-HM-001oracles have not been re-run against the wasm build. So BIN-VERIFY shows the lowering is faithful, not that the wasm refines the proven Rust.partition_switch(3 seams) andmpu_switch(1 seam) remainStays out of the requirement's
verifiedcolumn: this is one module of three, with a named open gap and no evidence-on-wasm.