Skip to content

Commit 1f1278b

Browse files
claudewilliamdemeo
authored andcommitted
[Dijkstra] LEDGER-pov: complete the proof and address Copilot review comments.
Ledger/Properties/PoV.lagda.md typechecks end-to-end (Agda 2.8.0 via the Nix flake, --safe, no postulates/holes). - Lift the Certs-PoV facts (CERTS-pov, CERTS-coinFromDeposits-updateCertDeposits) to module parameters of ENTITIES-PoV and LEDGER-PoV; remove the Certs-PoV provider modules. - Complete the LEDGER-V chain to the four-summand goal getCoin s ≡ getCoin s', including the gov-deposit re-derivation: UTXOW-batch-balance-coin (the consumedBatch ≡ producedBatch coin projection) carries the produced-side govProposalsDeposits as a single trailing totGov, threaded through bat'/LHS+E≡RHS+E/step-ii (three-summand); SUBLEDGERS-gov-coin + GOVS-coinFromGovDeposit (+ the proposalsOf bridge) + rmOrphanDRepVotes-coinFromGovDeposit give gov-acc. - The Utxo/Utxow-PoV facts remain module parameters, discharged by #1186. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01We2YdXX2ozJAdAbCrRwi6r - Ledger.lagda.md: HasCoin-CertState counts only the rewards balance (getCoin = rewardsBalance ∘ DStateOf), not the deposit pots; correct the prose to say components 3 and 4 (coinFromDeposits, coinFromGovDeposit) are added at the LedgerState level. - CHANGELOG.md: the HasCoin-LedgerState entry now also lists the coinFromGovDeposit summand, not just the three CertState deposit fields. - session-start.sh: enabling flakes keyed only on the presence of any experimental-features line, so a bare `experimental-features = nix-command` would skip flakes. Check for `flakes` specifically and append via extra-experimental-features (which doesn't clobber an existing setting). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0174ZBS1RKAGSbBXDsESUwoA
1 parent 4e44ab7 commit 1f1278b

8 files changed

Lines changed: 349 additions & 585 deletions

File tree

CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
`coinFromDeposits` alone no longer accounts for them.
1616
- Move cert-deposit helpers from `Utxo` to `Certs`.
1717
- Fix `updateCertDeposits`: use `foldl` (CERTS is head-first).
18-
- Add `HasCoin-UTxOState` and `HasCoin-LedgerState` instances; the latter sums UTxO total, rewards balance, and all three deposit fields.
18+
- Add `HasCoin-UTxOState` and `HasCoin-LedgerState` instances; the latter sums UTxO total, rewards balance, the three `CertState` deposit fields (`coinFromDeposits`), and governance-action deposits (`coinFromGovDeposit`).
1919
- Apply per-transaction direct deposits to `CertState` after each `CERTS` step in `SUBLEDGER-V` and `LEDGER-V` (CIP-159).
2020
- Forbid CIP-159 fields (`txDirectDeposits`, `txBalanceIntervals`) in legacy mode via explicit `UTXOW-legacy` premises.
2121
- Allow partial withdrawals in `PRE-CERT` rule; define `applyWithdrawals` and `_≤ᵐ_` (CIP-159).

src/Ledger/Dijkstra/Specification/Certs/Properties.lagda.md

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,4 @@ module Ledger.Dijkstra.Specification.Certs.Properties where
1414

1515
```agda
1616
open import Ledger.Dijkstra.Specification.Certs.Properties.Computational
17-
open import Ledger.Dijkstra.Specification.Certs.Properties.PoVLemmas
18-
open import Ledger.Dijkstra.Specification.Certs.Properties.PoV
1917
```

src/Ledger/Dijkstra/Specification/Certs/Properties/PoV.lagda.md

Lines changed: 0 additions & 265 deletions
This file was deleted.

0 commit comments

Comments
 (0)