Remove allData; add precondition for extraneus data
Home /
Input Output /
formal-ledger-specifications
Apr 02, 1-2 PM (0)
Apr 02, 2-3 PM (0)
Apr 02, 3-4 PM (0)
Apr 02, 4-5 PM (0)
Apr 02, 5-6 PM (0)
Apr 02, 6-7 PM (1)
Apr 02, 7-8 PM (0)
Apr 02, 8-9 PM (0)
Apr 02, 9-10 PM (0)
Apr 02, 10-11 PM (0)
Apr 02, 11-12 AM (0)
Apr 03, 12-1 AM (0)
Apr 03, 1-2 AM (0)
Apr 03, 2-3 AM (0)
Apr 03, 3-4 AM (0)
Apr 03, 4-5 AM (0)
Apr 03, 5-6 AM (0)
Apr 03, 6-7 AM (0)
Apr 03, 7-8 AM (0)
Apr 03, 8-9 AM (0)
Apr 03, 9-10 AM (0)
Apr 03, 10-11 AM (0)
Apr 03, 11-12 PM (0)
Apr 03, 12-1 PM (0)
Apr 03, 1-2 PM (0)
Apr 03, 2-3 PM (0)
Apr 03, 3-4 PM (0)
Apr 03, 4-5 PM (0)
Apr 03, 5-6 PM (0)
Apr 03, 6-7 PM (0)
Apr 03, 7-8 PM (0)
Apr 03, 8-9 PM (0)
Apr 03, 9-10 PM (0)
Apr 03, 10-11 PM (0)
Apr 03, 11-12 AM (0)
Apr 04, 12-1 AM (0)
Apr 04, 1-2 AM (0)
Apr 04, 2-3 AM (0)
Apr 04, 3-4 AM (0)
Apr 04, 4-5 AM (0)
Apr 04, 5-6 AM (0)
Apr 04, 6-7 AM (0)
Apr 04, 7-8 AM (0)
Apr 04, 8-9 AM (0)
Apr 04, 9-10 AM (0)
Apr 04, 10-11 AM (0)
Apr 04, 11-12 PM (0)
Apr 04, 12-1 PM (0)
Apr 04, 1-2 PM (0)
Apr 04, 2-3 PM (0)
Apr 04, 3-4 PM (0)
Apr 04, 4-5 PM (0)
Apr 04, 5-6 PM (0)
Apr 04, 6-7 PM (0)
Apr 04, 7-8 PM (0)
Apr 04, 8-9 PM (0)
Apr 04, 9-10 PM (0)
Apr 04, 10-11 PM (0)
Apr 04, 11-12 AM (0)
Apr 05, 12-1 AM (0)
Apr 05, 1-2 AM (0)
Apr 05, 2-3 AM (0)
Apr 05, 3-4 AM (0)
Apr 05, 4-5 AM (0)
Apr 05, 5-6 AM (0)
Apr 05, 6-7 AM (0)
Apr 05, 7-8 AM (0)
Apr 05, 8-9 AM (0)
Apr 05, 9-10 AM (0)
Apr 05, 10-11 AM (0)
Apr 05, 11-12 PM (0)
Apr 05, 12-1 PM (0)
Apr 05, 1-2 PM (0)
Apr 05, 2-3 PM (0)
Apr 05, 3-4 PM (0)
Apr 05, 4-5 PM (0)
Apr 05, 5-6 PM (0)
Apr 05, 6-7 PM (0)
Apr 05, 7-8 PM (0)
Apr 05, 8-9 PM (0)
Apr 05, 9-10 PM (0)
Apr 05, 10-11 PM (0)
Apr 05, 11-12 AM (0)
Apr 06, 12-1 AM (0)
Apr 06, 1-2 AM (0)
Apr 06, 2-3 AM (0)
Apr 06, 3-4 AM (0)
Apr 06, 4-5 AM (0)
Apr 06, 5-6 AM (0)
Apr 06, 6-7 AM (0)
Apr 06, 7-8 AM (0)
Apr 06, 8-9 AM (0)
Apr 06, 9-10 AM (0)
Apr 06, 10-11 AM (0)
Apr 06, 11-12 PM (0)
Apr 06, 12-1 PM (0)
Apr 06, 1-2 PM (0)
Apr 06, 2-3 PM (0)
Apr 06, 3-4 PM (0)
Apr 06, 4-5 PM (0)
Apr 06, 5-6 PM (0)
Apr 06, 6-7 PM (0)
Apr 06, 7-8 PM (0)
Apr 06, 8-9 PM (0)
Apr 06, 9-10 PM (0)
Apr 06, 10-11 PM (0)
Apr 06, 11-12 AM (0)
Apr 07, 12-1 AM (0)
Apr 07, 1-2 AM (0)
Apr 07, 2-3 AM (0)
Apr 07, 3-4 AM (0)
Apr 07, 4-5 AM (0)
Apr 07, 5-6 AM (0)
Apr 07, 6-7 AM (0)
Apr 07, 7-8 AM (0)
Apr 07, 8-9 AM (0)
Apr 07, 9-10 AM (0)
Apr 07, 10-11 AM (0)
Apr 07, 11-12 PM (0)
Apr 07, 12-1 PM (0)
Apr 07, 1-2 PM (0)
Apr 07, 2-3 PM (0)
Apr 07, 3-4 PM (0)
Apr 07, 4-5 PM (0)
Apr 07, 5-6 PM (0)
Apr 07, 6-7 PM (2)
Apr 07, 7-8 PM (1)
Apr 07, 8-9 PM (1)
Apr 07, 9-10 PM (1)
Apr 07, 10-11 PM (0)
Apr 07, 11-12 AM (0)
Apr 08, 12-1 AM (0)
Apr 08, 1-2 AM (2)
Apr 08, 2-3 AM (3)
Apr 08, 3-4 AM (1)
Apr 08, 4-5 AM (0)
Apr 08, 5-6 AM (2)
Apr 08, 6-7 AM (0)
Apr 08, 7-8 AM (0)
Apr 08, 8-9 AM (0)
Apr 08, 9-10 AM (0)
Apr 08, 10-11 AM (0)
Apr 08, 11-12 PM (1)
Apr 08, 12-1 PM (0)
Apr 08, 1-2 PM (1)
Apr 08, 2-3 PM (0)
Apr 08, 3-4 PM (1)
Apr 08, 4-5 PM (0)
Apr 08, 5-6 PM (0)
Apr 08, 6-7 PM (0)
Apr 08, 7-8 PM (0)
Apr 08, 8-9 PM (0)
Apr 08, 9-10 PM (0)
Apr 08, 10-11 PM (0)
Apr 08, 11-12 AM (0)
Apr 09, 12-1 AM (0)
Apr 09, 1-2 AM (0)
Apr 09, 2-3 AM (0)
Apr 09, 3-4 AM (0)
Apr 09, 4-5 AM (1)
Apr 09, 5-6 AM (4)
Apr 09, 6-7 AM (1)
Apr 09, 7-8 AM (0)
Apr 09, 8-9 AM (0)
Apr 09, 9-10 AM (0)
Apr 09, 10-11 AM (1)
Apr 09, 11-12 PM (0)
Apr 09, 12-1 PM (0)
Apr 09, 1-2 PM (0)
24 commits this week
Apr 02, 2026
-
Apr 09, 2026
Artifacts generated from 9de9c77a3474b359104b81f380ccd8c79d730efd
Artifacts generated from 8ed417375e611fe3ff78ce9fa7813b4fa88cce1e
Merge branch '1118-dijkstra-cip-159-06-extend-txinfo-and-script-validation-for-cip-159-fields' of github.com:IntersectMBO/formal-ledger-specifications into 1118-dijkstra-cip-159-06-extend-txinfo-and-script-validation-for-cip-159-fields
remove duplicate paragraph
Thanks @carlostome for point out this oversight.
[Dijkstra] CIP-159-04: Update certificate rules for partial withdrawals (#1116)
CIP-159 changes withdrawal semantics from "all-or-nothing" (withdrawal amount must equal the full account balance) to "partial" (any amount up to the current balance may be withdrawn). `Certs.lagda.md`: + Define _≤ᵐ_ relation and Dec-≤ᵐ decision procedure for comparing a Coin value against a Maybe Coin (just bal → amt ≤ bal; nothing → ⊥). + Define applyWithdrawals helper (fold-based pointwise subtraction of withdrawal amounts from account balances). + Relax PRE-CERT precondition to three premises: credential is a registered key hash, credential is in dom rewards, and withdrawal amount ≤ balance (via ≤ᵐ with lookupᵐ?). + Update PRE-CERT effect from zeroing withdrawn credentials to pointwise subtraction via applyWithdrawals. + Document partial withdrawal semantics and version restriction deferral. `Certs/Properties/Computational.lagda.md`: + Add scoped ⁇-≤ᵐ instance (positioned after DELEG/POOL/GOVCERT/CERT proofs to avoid instance pollution). + Update Computational-PRE-CERT for the new three-premise precondition.
Remove batch-level balance interval aggregation from Transaction module
Per feedback from @carlostome: balance interval assertions should be checked per-(sub)transaction in the UTXO and SUBUTXO rules, analogously to how slot validity intervals are already checked. This eliminates the need for batch-level aggregation of balance intervals and the associated domain-disjointness constraint. Removed: + "Account Balance Intervals" prose subsection + `allBalanceIntervals : TopLevelTx → AccountBalanceIntervals` helper + Footnote [^2] referencing Issue #1117 The `txBalanceIntervals` field on `TxBody` and the `BalanceIntervalsOf` type class accessor (both introduced in #1114) are unchanged; they provide per-(sub)transaction access, which is exactly what the UTXO and SUBUTXO rules need. Direct deposits (`allDirectDeposits`) still require batch-level aggregation because they are an additive state update; balance intervals, being pure precondition checks, do not. See Issue #1117 for the per-transaction checking design.
Artifacts generated from 103dc4ef33eff1d4ea5c3af950412e1d700f9abf
Add Dijkstra Foreign modules
Add Dijkstra native scripts
Artifacts generated from 7d081642bfafcfc39fcf8fd66639abb75ec720c2
[Dijkstra] CIP-159-04: Update certificate rules for partial withdrawals (#1116)
CIP-159 changes withdrawal semantics from "all-or-nothing" (withdrawal amount must equal the full account balance) to "partial" (any amount up to the current balance may be withdrawn). `Certs.lagda.md`: + Define _≤ᵐ_ relation and Dec-≤ᵐ decision procedure for comparing a Coin value against a Maybe Coin (just bal → amt ≤ bal; nothing → ⊥). + Define applyWithdrawals helper (fold-based pointwise subtraction of withdrawal amounts from account balances). + Relax PRE-CERT precondition to three premises: credential is a registered key hash, credential is in dom rewards, and withdrawal amount ≤ balance (via ≤ᵐ with lookupᵐ?). + Update PRE-CERT effect from zeroing withdrawn credentials to pointwise subtraction via applyWithdrawals. + Document partial withdrawal semantics and version restriction deferral. `Certs/Properties/Computational.lagda.md`: + Add scoped ⁇-≤ᵐ instance (positioned after DELEG/POOL/GOVCERT/CERT proofs to avoid instance pollution). + Update Computational-PRE-CERT for the new three-premise precondition.
Artifacts generated from ecbc1eb90de18247614bcd8d11d89617e4f368f2
Artifacts generated from 7d081642bfafcfc39fcf8fd66639abb75ec720c2
Update src/Ledger/Dijkstra/Specification/Script/ScriptPurpose.lagda.md
Co-authored-by: Copilot <[email protected]>
Artifacts generated from 032f0700fba2c70fb4d97509227e0e2898dd3508
[Dijkstra] CIP-159-07: Version gating for CIP-159 fields (#1119)
Extend `UsesV4Features` to detect CIP-159 transaction fields and update `allowedLanguagesLegacyMode` to forbid them in legacy mode. + Add hasDirectDeposits and hasBalanceIntervals constructors to `UsesV4Features`, detecting non-empty `txDirectDeposits`/`txBalanceIntervals`. + Prepend `UsesV4Features` check to `allowedLanguagesLegacyMode`, returning ∅ when V4 features are present (making legacy rule unsatisfiable). + Update `Dec-UsesV4Features` instance for the two new constructors. + Document the CIP-159/CIP-118 interaction for version gating. No changes to `Utxow/Properties/Computational.lagda.md`; premise shapes are unchanged since no new fields are added to `UTXOW-legacy` or `UTXOW-normal`.
[Dijkstra] CIP-159-06: Extend TxInfo and script validation (#1118)
Extend the Plutus script context (TxInfo) with the two new CIP-159
transaction fields and document that credsNeeded requires no changes.
+ `ScriptPurpose.lagda.md`
+ Add txDirectDeposits : DirectDeposits to TxInfo.
+ Add txBalanceIntervals : AccountBalanceIntervals to TxInfo.
+ Document pre-emptive upgrade rationale and absence of new ScriptPurpose values.
+ `Validation.lagda.md`
+ Populate new TxInfo fields in both txInfo TxLevelTop and txInfo
TxLevelSub using DirectDepositsOf/BalanceIntervalsOf accessors.
+ Document that credsNeeded does not need changes for CIP-159.
Artifacts generated from 9949f0d2dd59400a1fdb9083d5f4bf17f03df57e
Artifacts generated from ad9ea28221ff772d15ebe145c5becef5a5deab99
update explanation of account balance interval assertions
New `applyDirectDeposits` function and docs
remove irrelevant implementation notes
Artifacts generated from 0ce092c5d9fc828349bbafdb4f99edc8ec51fbc0