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
Restate #1233 as a CERTS invariant after the removal of POST-CERT
Master removed the POST-CERT rule; delegated voting stake is now dropped by
GOVCERT at the moment a DRep is deregistered. POST-CERT used to corestrict
voteDelegs to the active VDelegs at the end of every batch, which is what made
the property an unconditional postcondition of CERTS and its proof a one-liner.
That sweep is gone, so an arbitrary input state may already violate the
containment and nothing in a CERTS step would repair it.
Restate the property as a genuine CERTS invariant and prove it:
CERTS-voteDelegsVDeleg : LedgerInvariant _|-_->(_,CERTS)_ voteDelegsVDeleg
The containment is now maintained incrementally by the two rules that could
break it. DELEG-delegate may install only a VDeleg that is already active for
the current delegatees, and GOVCERT-deregdrep, the one rule that shrinks the
registered DReps, deletes every delegation to the credential it deregisters in
the same step. The remaining rules either leave both fields alone or only grow
the DRep domain, for which activeVDelegs is monotone.
The proof establishes invariance for DELEG, GOVCERT, CERT and PRE-CERT, then
lifts the CERT lemma along RTC-preserves-inv. In Axiom.Set.Map.Extra, drop
cores-range-|_ (nothing corestricts any more) and add what the new proof needs:
coex-|-in, for reading a pair back out of a complement corestriction, and
dom-cup-l-supset-r with its corollaries dom-insert-supset and
dom-mapValueRestricted-supset, for the two left-biased unions that refresh and
extend the DReps. Each takes the map whose keys are preserved explicitly, since
it sits under proj1 and unification cannot recover it.
Also restate the prose entry in Conway/Specification/Properties.lagda.md and
restore the changelog line dropped in an earlier rebase.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: CHANGELOG.md
+1Lines changed: 1 addition & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -34,6 +34,7 @@
34
34
## Conway spec
35
35
36
36
- Remove POST-CERT; delegated stake for voting is now removed by GOVCERT at the moment of deregistration
37
+
- State and prove that `CERTS` preserves the property that every `voteDelegs` value is a `VDeleg` of a registered `DRep`, `vDelegAbstain`, or `vDelegNoConfidence` (see #1233)
37
38
- Move `txIns ∩ refInputs ≡ ∅` precondition to `allowedLanguages` to allow non-disjoint tx and ref. inputs for Plutus V1-V2
38
39
- Require collateral inputs to be present in the UTxO set in the UTXO rule
39
40
- State and prove the claim that a voter's (last) vote in a block is applied to the governance action (see #417)
0 commit comments