Remove dead links from readme
Home /
Input Output /
formal-ledger-specifications
May 19, 9-10 PM (4)
May 19, 10-11 PM (6)
May 19, 11-12 AM (0)
May 20, 12-1 AM (7)
May 20, 1-2 AM (0)
May 20, 2-3 AM (0)
May 20, 3-4 AM (0)
May 20, 4-5 AM (0)
May 20, 5-6 AM (0)
May 20, 6-7 AM (0)
May 20, 7-8 AM (0)
May 20, 8-9 AM (0)
May 20, 9-10 AM (0)
May 20, 10-11 AM (1)
May 20, 11-12 PM (1)
May 20, 12-1 PM (4)
May 20, 1-2 PM (1)
May 20, 2-3 PM (0)
May 20, 3-4 PM (0)
May 20, 4-5 PM (0)
May 20, 5-6 PM (0)
May 20, 6-7 PM (0)
May 20, 7-8 PM (0)
May 20, 8-9 PM (0)
May 20, 9-10 PM (0)
May 20, 10-11 PM (0)
May 20, 11-12 AM (0)
May 21, 12-1 AM (4)
May 21, 1-2 AM (4)
May 21, 2-3 AM (1)
May 21, 3-4 AM (3)
May 21, 4-5 AM (1)
May 21, 5-6 AM (0)
May 21, 6-7 AM (0)
May 21, 7-8 AM (0)
May 21, 8-9 AM (2)
May 21, 9-10 AM (2)
May 21, 10-11 AM (0)
May 21, 11-12 PM (0)
May 21, 12-1 PM (1)
May 21, 1-2 PM (1)
May 21, 2-3 PM (0)
May 21, 3-4 PM (0)
May 21, 4-5 PM (0)
May 21, 5-6 PM (0)
May 21, 6-7 PM (1)
May 21, 7-8 PM (0)
May 21, 8-9 PM (0)
May 21, 9-10 PM (0)
May 21, 10-11 PM (1)
May 21, 11-12 AM (0)
May 22, 12-1 AM (0)
May 22, 1-2 AM (0)
May 22, 2-3 AM (0)
May 22, 3-4 AM (0)
May 22, 4-5 AM (0)
May 22, 5-6 AM (0)
May 22, 6-7 AM (0)
May 22, 7-8 AM (0)
May 22, 8-9 AM (0)
May 22, 9-10 AM (0)
May 22, 10-11 AM (0)
May 22, 11-12 PM (0)
May 22, 12-1 PM (0)
May 22, 1-2 PM (0)
May 22, 2-3 PM (0)
May 22, 3-4 PM (0)
May 22, 4-5 PM (0)
May 22, 5-6 PM (0)
May 22, 6-7 PM (0)
May 22, 7-8 PM (0)
May 22, 8-9 PM (0)
May 22, 9-10 PM (0)
May 22, 10-11 PM (0)
May 22, 11-12 AM (0)
May 23, 12-1 AM (0)
May 23, 1-2 AM (0)
May 23, 2-3 AM (0)
May 23, 3-4 AM (0)
May 23, 4-5 AM (0)
May 23, 5-6 AM (0)
May 23, 6-7 AM (0)
May 23, 7-8 AM (0)
May 23, 8-9 AM (0)
May 23, 9-10 AM (0)
May 23, 10-11 AM (0)
May 23, 11-12 PM (0)
May 23, 12-1 PM (0)
May 23, 1-2 PM (0)
May 23, 2-3 PM (0)
May 23, 3-4 PM (0)
May 23, 4-5 PM (0)
May 23, 5-6 PM (0)
May 23, 6-7 PM (0)
May 23, 7-8 PM (0)
May 23, 8-9 PM (0)
May 23, 9-10 PM (0)
May 23, 10-11 PM (0)
May 23, 11-12 AM (0)
May 24, 12-1 AM (0)
May 24, 1-2 AM (0)
May 24, 2-3 AM (0)
May 24, 3-4 AM (0)
May 24, 4-5 AM (0)
May 24, 5-6 AM (0)
May 24, 6-7 AM (0)
May 24, 7-8 AM (0)
May 24, 8-9 AM (0)
May 24, 9-10 AM (0)
May 24, 10-11 AM (0)
May 24, 11-12 PM (0)
May 24, 12-1 PM (0)
May 24, 1-2 PM (0)
May 24, 2-3 PM (0)
May 24, 3-4 PM (0)
May 24, 4-5 PM (0)
May 24, 5-6 PM (0)
May 24, 6-7 PM (0)
May 24, 7-8 PM (0)
May 24, 8-9 PM (0)
May 24, 9-10 PM (0)
May 24, 10-11 PM (0)
May 24, 11-12 AM (0)
May 25, 12-1 AM (0)
May 25, 1-2 AM (0)
May 25, 2-3 AM (0)
May 25, 3-4 AM (0)
May 25, 4-5 AM (0)
May 25, 5-6 AM (0)
May 25, 6-7 AM (0)
May 25, 7-8 AM (0)
May 25, 8-9 AM (3)
May 25, 9-10 AM (0)
May 25, 10-11 AM (0)
May 25, 11-12 PM (0)
May 25, 12-1 PM (0)
May 25, 1-2 PM (0)
May 25, 2-3 PM (0)
May 25, 3-4 PM (0)
May 25, 4-5 PM (0)
May 25, 5-6 PM (0)
May 25, 6-7 PM (0)
May 25, 7-8 PM (0)
May 25, 8-9 PM (0)
May 25, 9-10 PM (0)
May 25, 10-11 PM (0)
May 25, 11-12 AM (0)
May 26, 12-1 AM (0)
May 26, 1-2 AM (0)
May 26, 2-3 AM (0)
May 26, 3-4 AM (0)
May 26, 4-5 AM (0)
May 26, 5-6 AM (0)
May 26, 6-7 AM (4)
May 26, 7-8 AM (5)
May 26, 8-9 AM (0)
May 26, 9-10 AM (1)
May 26, 10-11 AM (0)
May 26, 11-12 PM (0)
May 26, 12-1 PM (0)
May 26, 1-2 PM (1)
May 26, 2-3 PM (7)
May 26, 3-4 PM (0)
May 26, 4-5 PM (0)
May 26, 5-6 PM (0)
May 26, 6-7 PM (0)
May 26, 7-8 PM (0)
May 26, 8-9 PM (0)
May 26, 9-10 PM (0)
64 commits this week
May 19, 2026
-
May 26, 2026
Add "Modules" hierarchy to Dijkstra mkdocs
Add missing modules to mkdocs.yaml
Illiterate Foreign* modules
Fix bug in fls-shake
mkdocs .md files weren't being generated even when .lagda.md files changed.
Artifacts generated from 9451bc1d7bcf5a0a67f3c8f08f6a53800f828e29
[Dijkstra] Add missing premises to UTXOW (#1176)
* Add utxo0 binding in UTXOW For consistency with SUBUTXOW * Add missing premises * Improve tc time of Utxo.Computational
Improve tc time of Utxo.Computational
Remove dead links from readme
Add missing modules to mkdocs.yaml
Add "Modules" hierarchy to Dijkstra mkdocs
Illiterate Foreign* modules
Fix bug in fls-shake
mkdocs .md files weren't being generated even when .lagda.md files changed.
Run agda with RTS options (to improve tc time)
Improve tc time for Computational instance UTXO
Add utxo0 binding in UTXOW
For consistency with SUBUTXOW
Add missing premises
Artifacts generated from aeff4bf9d9d9088c357731c74378d24e614ca346
Artifacts generated from 837e691a7022b5dab573ffbe7d2ca983efb9c7fe
Remove DepositsChange (#1204)
* Remove DepositsChange Calculate deposit changes from CertState and certificates in the tx --------- Co-authored-by: William DeMeo <[email protected]>
Adapt LEDGER computational instance to certState-threaded UTxOEnv
UTxOEnv now carries the pre-batch CertState directly rather than a
precomputed DepositsChange, so the LEDGER computational instance no
longer needs separate environments for the valid and invalid cases.
The two old builders (utxoΓ-valid : CertState → CertState → UTxOEnv,
utxoΓ-invalid : UTxOEnv) collapse into a single
utxoΓ : UTxOEnv
utxoΓ = ⟦ slot , pparams , treasury , utxo₀ , certState
, allScripts , RewardsOf certState ⟧
with certState (= the pre-batch state) used in both the LEDGER-V and
LEDGER-I cases. This resolves the [NotInScope] error from
calculateDepositsChange (which no longer exists) and removes the
vestigial CertState → CertState arguments to utxoΓ-valid that were
unused after the refactor.
The completeness side gets one small additional change: the implicit
argument order in the LEDGER-V destructuring is reorganised to match
the constructor's declared order
{utxoState₁ , govSt₁ , certSt₁ , certSt₂ , govSt₂ , utxoSt₂}
so the subsequent computeSubledgers / computeEntities / computeGov /
computeUtxow pattern matches against the right intermediate states.
Also adds a "Design Note: Cert-State Threading and Deposit Accounting"
subsection to Utxo.lagda.md explaining the rationale for the
refactor. Key points:
+ The UTXO rule has been promoted from a consumer of CertState data
to a secondary executor of certificate accounting:
updateCertDeposit recomputes the deposit evolution that the
CERT/ENTITIES rules also produce as part of their operational
semantics.
+ The same certificate-deposit logic now exists in two places --
inside the DELEG/POOL/GOVCERT sub-rules of CERT, and inside
updateCertDeposit in Utxo.lagda.md.
+ Any drift between the two is a soundness problem, since it would
admit transactions whose UTxO-side balance equation accepts but
whose actual CertState evolution doesn't balance. The note states
the consistency obligation as a lemma to be discharged alongside
LEDGER-pov.
Adapt LEDGER computational instance to certState-threaded UTxOEnv
UTxOEnv now carries the pre-batch CertState directly rather than a
precomputed DepositsChange, so the LEDGER computational instance no
longer needs separate environments for the valid and invalid cases.
The two old builders (utxoΓ-valid : CertState → CertState → UTxOEnv,
utxoΓ-invalid : UTxOEnv) collapse into a single
utxoΓ : UTxOEnv
utxoΓ = ⟦ slot , pparams , treasury , utxo₀ , certState
, allScripts , RewardsOf certState ⟧
with certState (= the pre-batch state) used in both the LEDGER-V and
LEDGER-I cases. This resolves the [NotInScope] error from
calculateDepositsChange (which no longer exists) and removes the
vestigial CertState → CertState arguments to utxoΓ-valid that were
unused after the refactor.
The completeness side gets one small additional change: the implicit
argument order in the LEDGER-V destructuring is reorganised to match
the constructor's declared order
{utxoState₁ , govSt₁ , certSt₁ , certSt₂ , govSt₂ , utxoSt₂}
so the subsequent computeSubledgers / computeEntities / computeGov /
computeUtxow pattern matches against the right intermediate states.
Also adds a "Design Note: Cert-State Threading and Deposit Accounting"
subsection to Utxo.lagda.md explaining the rationale for the
refactor. Key points:
+ The UTXO rule has been promoted from a consumer of CertState data
to a secondary executor of certificate accounting:
updateCertDeposit recomputes the deposit evolution that the
CERT/ENTITIES rules also produce as part of their operational
semantics.
+ The same certificate-deposit logic now exists in two places --
inside the DELEG/POOL/GOVCERT sub-rules of CERT, and inside
updateCertDeposit in Utxo.lagda.md.
+ Any drift between the two is a soundness problem, since it would
admit transactions whose UTxO-side balance equation accepts but
whose actual CertState evolution doesn't balance. The note states
the consistency obligation as a lemma to be discharged alongside
LEDGER-pov.
Remove DepositsChange
Calculate deposit changes from CertState and certificates in the tx
Remove DepositsChange
Calculate deposit changes from CertState and certificates in the tx