Commit 164f116
committed
[Dijkstra] Restate CERTS PoV contract at full accounting; derive the batch bridge
Per review: the Certs-level parameters now state the complete value
accounting of a CERTS run, and the ENTITIES PoV module surfaces it
per transaction:
- CERTS-rewards-pov (rewards preserved), CERTS-deposits-pov (closed-form
deposit accounting D + new ≡ D' + refunds), CERTS-deposits-registered
(invariant preservation), CERTS-new-thread (newCertDeposits split at a
run boundary), refundCertDeposits-++ (fold algebra).
- Entities.Properties.PoV adds SUBENTITIES/ENTITIES-deposits-pov,
-deposits-registered, SUBENTITIES-new-thread (all definitional
transports of the CERTS facts), and the combined full-CertState-coin
identities SUBENTITIES/ENTITIES-pov-total:
coin in + direct deposits + new deposits ≡
coin out + withdrawals + refunds.
- Ledger.Properties.PoV now *derives* the batch-wide deposit accounting
(SUBLEDGERS-deposits, telescoping per-step closed forms across the
batch, with SUBLEDGERS-registered threading the invariant and
refund-concatMap recombining refunds); the batch-cert-deposits-bridge
parameter is gone. Its premises mentioned SUBLEDGERS, so it was not
statable at the Certs level anyway.
Restating the per-run accounting exposed a genuine soundness condition:
POOL-reg adds its deposit with a left-biased union, so at a state with a
stale pot entry for an unregistered pool, registering that pool destroys
the deposit the batch balance charges, and value preservation is false.
New PoolDepositsRegistered invariant in Certs (every pool-deposit entry
belongs to a registered pool; preserved by CERTS, holds on-chain by
construction); LEDGER-pov now takes it as a hypothesis on the initial
state. The old bridge parameter silently baked in the same assumption
and would have been undischargeable as stated.
Also apply the review's prose policy: status/roadmap/issue-number prose
moved from module documentation to the PR description; explanations
deduplicated across modules (stated once, referenced elsewhere).
Final touches:
+ general improvements
+ remove unnecessary CHANGELOG entry
+ add mkdocs nav entries
AI-assisted: Claude Fable 5 (Anthropic)1 parent 16c1142 commit 164f116
8 files changed
Lines changed: 474 additions & 217 deletions
File tree
- build-tools/static/mkdocs
- src/Ledger
- Dijkstra/Specification
- Entities/Properties
- Ledger/Properties
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
7 | | - | |
8 | | - | |
9 | | - | |
10 | | - | |
11 | | - | |
12 | | - | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
13 | 10 | | |
14 | 11 | | |
15 | 12 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
241 | 241 | | |
242 | 242 | | |
243 | 243 | | |
| 244 | + | |
244 | 245 | | |
| 246 | + | |
245 | 247 | | |
246 | 248 | | |
247 | 249 | | |
| |||
260 | 262 | | |
261 | 263 | | |
262 | 264 | | |
| 265 | + | |
263 | 266 | | |
264 | 267 | | |
265 | 268 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
380 | 380 | | |
381 | 381 | | |
382 | 382 | | |
| 383 | + | |
| 384 | + | |
| 385 | + | |
| 386 | + | |
| 387 | + | |
| 388 | + | |
| 389 | + | |
| 390 | + | |
| 391 | + | |
| 392 | + | |
| 393 | + | |
| 394 | + | |
383 | 395 | | |
384 | 396 | | |
385 | 397 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
22 | 22 | | |
23 | 23 | | |
24 | 24 | | |
25 | | - | |
| 25 | + | |
26 | 26 | | |
27 | 27 | | |
28 | 28 | | |
| |||
89 | 89 | | |
90 | 90 | | |
91 | 91 | | |
92 | | - | |
| 92 | + | |
93 | 93 | | |
94 | 94 | | |
95 | 95 | | |
| |||
101 | 101 | | |
102 | 102 | | |
103 | 103 | | |
104 | | - | |
| 104 | + | |
105 | 105 | | |
106 | 106 | | |
107 | 107 | | |
| |||
111 | 111 | | |
112 | 112 | | |
113 | 113 | | |
114 | | - | |
| 114 | + | |
115 | 115 | | |
116 | 116 | | |
117 | 117 | | |
| |||
168 | 168 | | |
169 | 169 | | |
170 | 170 | | |
171 | | - | |
172 | 171 | | |
173 | | - | |
174 | 172 | | |
175 | 173 | | |
176 | 174 | | |
| |||
Lines changed: 15 additions & 16 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
6 | | - | |
| 6 | + | |
7 | 7 | | |
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
12 | 12 | | |
13 | | - | |
| 13 | + | |
14 | 14 | | |
15 | 15 | | |
16 | 16 | | |
17 | 17 | | |
18 | 18 | | |
19 | 19 | | |
20 | 20 | | |
21 | | - | |
| 21 | + | |
22 | 22 | | |
23 | 23 | | |
24 | 24 | | |
| |||
27 | 27 | | |
28 | 28 | | |
29 | 29 | | |
30 | | - | |
| 30 | + | |
31 | 31 | | |
32 | 32 | | |
33 | 33 | | |
| |||
60 | 60 | | |
61 | 61 | | |
62 | 62 | | |
63 | | - | |
| 63 | + | |
64 | 64 | | |
65 | 65 | | |
66 | 66 | | |
| |||
139 | 139 | | |
140 | 140 | | |
141 | 141 | | |
142 | | - | |
| 142 | + | |
143 | 143 | | |
144 | 144 | | |
145 | | - | |
146 | | - | |
| 145 | + | |
147 | 146 | | |
148 | 147 | | |
149 | 148 | | |
| |||
223 | 222 | | |
224 | 223 | | |
225 | 224 | | |
226 | | - | |
227 | | - | |
| 225 | + | |
| 226 | + | |
228 | 227 | | |
229 | 228 | | |
230 | 229 | | |
| |||
291 | 290 | | |
292 | 291 | | |
293 | 292 | | |
294 | | - | |
| 293 | + | |
295 | 294 | | |
296 | 295 | | |
297 | 296 | | |
| |||
328 | 327 | | |
329 | 328 | | |
330 | 329 | | |
331 | | - | |
| 330 | + | |
332 | 331 | | |
333 | | - | |
| 332 | + | |
334 | 333 | | |
335 | 334 | | |
336 | 335 | | |
| |||
361 | 360 | | |
362 | 361 | | |
363 | 362 | | |
364 | | - | |
| 363 | + | |
365 | 364 | | |
366 | 365 | | |
367 | | - | |
| 366 | + | |
368 | 367 | | |
369 | 368 | | |
370 | 369 | | |
| |||
406 | 405 | | |
407 | 406 | | |
408 | 407 | | |
409 | | - | |
| 408 | + | |
410 | 409 | | |
411 | 410 | | |
412 | 411 | | |
| |||
0 commit comments