Skip to content

[Conway] Property: ChangePParams proposals have a non-empty update group (#1234) - #1289

Merged
williamdemeo merged 4 commits into
masterfrom
1234-conway-changepparams-proposals
Sep 3, 2026
Merged

[Conway] Property: ChangePParams proposals have a non-empty update group (#1234)#1289
williamdemeo merged 4 commits into
masterfrom
1234-conway-changepparams-proposals

Conversation

@williamdemeo

@williamdemeo williamdemeo commented Aug 6, 2026

Copy link
Copy Markdown
Member

Proves that if the GOV rule accepts a proposal whose action is ⟦ ChangePParams , pu ⟧ᵍᵃ, then updateGroups pu ≢ ∅, discharging the "coming soon" marker in Gov.Properties.ChangePPGroup.

The statement was fixed by adding a GOV-step premise.
As previously stated the claim had no STS premise, only p ∈ Tx.body tx together with the action equation, and in that form it is not provable: an arbitrary transaction body can carry a degenerate proposal whose update touches no parameter group.

Such a proposal is not possible because of the actionWellFormed premise of GOV-Propose, so the property is about proposals the ledger accepts.

The name ChangePPHasGroup and the clm:ChangePPGroup anchor are unchanged; the module is now parameterized by GovStructure since it no longer mentions Tx, matching Gov.Properties.LastVoteApplied.

Two corollaries are also proved in this PR.

  1. GOVS-ChangePPHasGroup, for every proposal of a signal list accepted by GOVS
  2. LEDGER-ChangePPHasGroup, in the new module Ledger.Properties.ChangePPGroup; it restores the original p ∈ Tx.body tx formulation for a valid transaction accepted by LEDGER.

Closes #1234

@williamdemeo williamdemeo linked an issue Aug 6, 2026 that may be closed by this pull request
@williamdemeo
williamdemeo marked this pull request as draft August 6, 2026 05:14
@williamdemeo williamdemeo changed the title Gov property #1234: ChangePParams proposals have a non-empty update group WIP -- [Conway] Property: ChangePParams proposals have a non-empty update group (#1234) Aug 6, 2026
@williamdemeo
williamdemeo requested a lite review from Copilot August 6, 2026 14:29

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR discharges the previously “coming soon”/unstated proof for the Conway governance property that accepted ChangePParams proposals must update at least one protocol parameter group, by strengthening the statement with the necessary STS premise (GOV acceptance) and then lifting it to GOVS and LEDGER.

Changes:

  • Strengthen ChangePPHasGroup to require a GOV step premise (proposal is accepted), and provide the corresponding proof.
  • Add the lifted corollary GOVS-ChangePPHasGroup and a new LEDGER-ChangePPHasGroup theorem/module restoring the “proposal carried by a valid tx” formulation.
  • Wire the new Ledger-level property into the Ledger properties module and MkDocs navigation/links, and record it in the changelog.

Reviewed changes

Copilot reviewed 7 out of 7 changed files in this pull request and generated no comments.

Show a summary per file
File Description
src/Ledger/Conway/Specification/Properties.lagda.md Updates the high-level properties list to reference the GOV- and LEDGER-level theorems.
src/Ledger/Conway/Specification/Ledger/Properties/ChangePPGroup.lagda.md New Ledger-level theorem/module LEDGER-ChangePPHasGroup, lifting from GOVS-ChangePPHasGroup.
src/Ledger/Conway/Specification/Ledger/Properties.lagda.md Exports the new Ledger property module.
src/Ledger/Conway/Specification/Gov/Properties/ChangePPGroup.lagda.md Re-states the property with a GOV acceptance premise and adds proofs, plus a GOVS lift.
CHANGELOG.md Notes the newly proven property at GOV/GOVS/LEDGER levels (issue #1234).
build-tools/static/mkdocs/mkdocs.yml Adds the new Ledger property page to the documentation nav.
build-tools/static/mkdocs/includes/links.md Adds links for the new Ledger property page and theorem anchor.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@williamdemeo williamdemeo changed the title WIP -- [Conway] Property: ChangePParams proposals have a non-empty update group (#1234) [Conway] Property: ChangePParams proposals have a non-empty update group (#1234) Aug 7, 2026
@williamdemeo
williamdemeo marked this pull request as ready for review August 7, 2026 02:49
@williamdemeo
williamdemeo requested a review from carlostome August 7, 2026 05:24
@williamdemeo
williamdemeo force-pushed the 1234-conway-changepparams-proposals branch from d88c460 to 5eb232f Compare August 10, 2026 19:51
@williamdemeo williamdemeo added era: conway property Ledger property (tracked in the catalog) labels Aug 13, 2026
…roup

Discharge the "coming soon" proof marker in
Ledger.Conway.Specification.Gov.Properties.ChangePPGroup.

As previously stated the claim was not provable: its only premises were that p is a
proposal of a transaction body and that its action is ⟦ ChangePParams , pu ⟧ᵍᵃ, and an
arbitrary transaction body may carry a degenerate proposal whose update touches no
parameter group.  What rules such a proposal out is the actionWellFormed premise of
GOV-Propose, so the statement is strengthened with a GOV-step premise.  The name
ChangePPHasGroup and the clm:ChangePPGroup anchor are unchanged.

- ChangePPHasGroup: if (Γ , k) ⊢ s ⇀⦇ inj₂ p ,GOV⦈ s' and the action of p is
  ⟦ ChangePParams , pu ⟧ᵍᵃ, then updateGroups pu ≢ ∅.  Only GOV-Propose can consume a
  proposal signal; substituting the action equation into its actionWellFormed premise
  reduces it to ppdWellFormed pu, whose first component is the claim.

- ChangePPHasGroupᵢ / GOVS-ChangePPHasGroup: the same for every proposal of a signal
  list accepted by GOVS, by induction on the indexed closure.

The module no longer mentions Tx, so it is reparameterized by GovStructure, matching
Gov.Properties.LastVoteApplied.

A new module Ledger.Conway.Specification.Ledger.Properties.ChangePPGroup lifts the
result to LEDGER, restoring the original "p ∈ Tx.body tx" formulation for a valid
transaction: LEDGER-V feeds txgov txb to GOVS, so every proposal of the transaction is
a GOVS signal.

Update the properties index (Claim -> Theorem), the docs links and nav, and the
changelog.
@williamdemeo
williamdemeo force-pushed the 1234-conway-changepparams-proposals branch from 5eb232f to 7cb2f67 Compare September 2, 2026 02:55

@carlostome carlostome left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@williamdemeo
williamdemeo merged commit 834db23 into master Sep 3, 2026
10 checks passed
@williamdemeo
williamdemeo deleted the 1234-conway-changepparams-proposals branch September 3, 2026 02:09
williamdemeo added a commit that referenced this pull request Sep 3, 2026
The rebase brought in PR #1289 (ChangePPGroup proved at the GOV level,
LEDGER-level lift added), which flips the derived statuses: Conway is
now 15 proved / 5 stated / 0 planned.  The committed dashboard was not
regenerated with the rebase, so the properties-check gate was failing
on the previous head — exactly the drift it exists to catch.
williamdemeo added a commit that referenced this pull request Sep 4, 2026
The rebase brought in PR #1289 (ChangePPGroup proved at the GOV level,
LEDGER-level lift added), which flips the derived statuses: Conway is
now 15 proved / 5 stated / 0 planned.  The committed dashboard was not
regenerated with the rebase, so the properties-check gate was failing
on the previous head — exactly the drift it exists to catch.
williamdemeo added a commit that referenced this pull request Sep 4, 2026
The rebase brought in PR #1289 (ChangePPGroup proved at the GOV level,
LEDGER-level lift added), which flips the derived statuses: Conway is
now 15 proved / 5 stated / 0 planned.  The committed dashboard was not
regenerated with the rebase, so the properties-check gate was failing
on the previous head — exactly the drift it exists to catch.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

era: conway property Ledger property (tracked in the catalog)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Conway] ChangePParams proposals have a non-empty update group

3 participants