formal(2c-D): C2's models — completion ordering, composed reserve provenance, and a walk that folds only what certifies - #857
Merged
Conversation
…venance, and a walk that folds only what certifies C2 (#856) changed three things the Lean tree did not yet say. This brings the models to the code, as the formal models are kept alongside it. - DSMSettlementCompletion.lean (new, 17th module): the one completion pass the settle route and D-f's resume share. Proves the fence is released only after the exact receipt is at quorum and only in a certifiable pass; below quorum or uncertified it stays held; a receipt already at quorum is verified, not re-sent; a second pass changes nothing; a pass never changes b or the permitted successor. - DSMComposedReserveProvenance.lean (new, 18th module): D-g's rule — owner backing at one baseline generation, and past it a parent that is exactly the last state of a linked, consecutive history from that baseline. Proves soundness, that each conjunct is necessary, and that composition for provenance stops AT its target, so provenance of generation n never reads the state the settlement consuming n produces. - DSMAcceptedSuccessorWalk.lean: partialPendingRealization deleted (D-d). The walk folds exactly what certifies; a market successor without the 2c-D witness is not folded, and with it certifies. - DSMBundleAcceptance.lean: the banner no longer says fence release and Req 21.16 are owed. - CI: the Lean module pin moves 16 -> 18. - 2c-D §14: D-f and D-g name the modules that machine-check them. Mutation controls executed: seven, each with the kernel proving the named sample theorem false, each reverted and cmp-verified.
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.
Formal alignment for C2 (#856)
C2 changed three things the Lean tree did not yet say. This brings the models to the shipped code.
DSMSettlementCompletion.lean(new, 17th)bor the permitted successor (it resumes, never retries).DSMComposedReserveProvenance.lean(new, 18th)DSMAcceptedSuccessorWalk.leanpartialPendingRealizationdeleted. The walk folds exactly what certifies; a market successor without the 2c-D witness is not folded, and with it certifies.DSMBundleAcceptance.leanAlso: the CI Lean pin moves 16 → 18, and 2c-D §14's D-f and D-g name the modules that check them.
What these models do NOT claim
Certification is an input (
certifiable), re-supplied every pass, never modelled here — that is the walk's and §7's. Quorum reachability is an input.commitOfis a model encoding, notvault_state_commitment. That a parent is the CURRENT frontier is the binding register's exclusivity, not the reserve rule. These are models of the normative rules, not refinement proofs from the Rust.Mutation controls — executed
Each deletes or weakens one conjunct; the kernel then proves the named sample theorem false (
decideproved the proposition false, at a line inside that theorem). Each was reverted from a byte copy and verified withcmp.linkeddropped from the reserve rulean_unlinked_state_is_refuseda_history_that_stops_early_provenances_nothinglinkedStepa_leaping_generation_is_refusedcomposeUntilno longer stops at its targetcomposition_for_provenance_never_reaches_the_consuming_settlementbelow_quorum_the_sample_holdsan_uncertifiable_sample_never_releases.validwithout the witnessthe_separation_is_not_vacuousVerification
lean -DwarningAsError=trueOK on the pinnedv4.23.0; zerosorryAxin every axiom report.make lintandci/production_safety_checks.shnot re-run: this PR changes no Rust and no TLA+ relative toe58340cf, where both passed.