IntersectMBO / IntersectMBO/formal-ledger-specifications

Remaining Babbage features/proofs

Open
#724 1 comment 0 reactions 1 assignee Claimed by @javierdiaz72 View on GitHub
📋 backlog era: babbage
Dominant language
Agda
Stars
52
Forks
20
Avg merge
6d 14h
Merged PRs (30d)
7

Description

This issue itemizes features and proofs that are missing (i.e., not yet formalized and/or described in the full cardano-ledger.pdf) from the Babbage era:

**Figure 1: Definitions for transactions**

- [ ] Missing collateral return output (_collRet_)
- [ ] Missing total collateral (_txcoll_)

**Figure 2: Functions related to fees and collateral**

- _collOuts_ function:
- [ ] Shouldn't this function be highlighted in yellow as it uses the new _collRet_ field? This is a new function (a paragraph says "_Note that the new collOuts function..._") and I couldn't find an analogous in the Agda spec.
- _collBalance_ function:
- [ ] Similar comment as above.

- _feesOK_ function:
- [ ] Missing check _(txcoll tx ≠ ⋄) ⇒ balance = txcoll tx_, where _balance = collBalance tx utxo_

**Figure 4: State update rules**

- _Scripts-No_ rule:
- [ ] Missing union with _collOuts txb_
- [ ] Missing addition with _collateralFees_, where _collateralFees := valueToCoin (collBalance txb utxo)_

**Figure 5: UTxO inference rules**

- [ ] Regarding the highlighted calls to _allOuts_: Although the Agda spec uses `range txoutsʰ` instead of an explicit _allOuts_ function, `txoutsʰ` is defined as `mapValues txOutHash txouts` and thus doesn't seem to refer to collaterals (which _allOuts_ do, since it's defined as `range txouts tx ∪ collRet tx`)

**Figure 6: UTxO with witnesses inference rules for Tx**

- [ ] Regarding the premise_inputHashes ⊆ ..._: Since this calls _allOuts_ perhaps the previous comment also applies here
- [ ] The premise _∀x ∈ range(txdats txw) ∪ ..._ seems to be missing

**Section 6: Forgo Reward Calculation Prefilter**

- [ ] As RUPD is not yet formalized, this section should be taken into account during the formalization.

**Appendix A: TxInfo Construction**

- [ ] I couldn't find in the Agda spec code where an instance of the `TxInfo` record for `PlutusV2` is constructed. Perhaps I'm missing something?

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.