{-# OPTIONS --safe #-}
open import Ledger.Conway.Specification.Abstract
open import Ledger.Conway.Specification.Transaction
module Ledger.Conway.Specification.Utxo.Properties.PoV
(txs : _) (open TransactionStructure txs)
(abs : AbstractFunctions txs)
where
open import Ledger.Conway.Specification.Certs govStructure
open import Ledger.Prelude
open import Ledger.Conway.Specification.Utxo txs abs
open import Ledger.Conway.Specification.Utxo.Properties.Base txs abs public
open UTxOState; open Tx; open TxBody
UTXOpov : {Γ : UTxOEnv} {tx : Tx} {s s' : UTxOState}
→ TxIdOf tx ∉ mapˢ proj₁ (dom (UTxOOf s))
→ Γ ⊢ s ⇀⦇ tx ,UTXO⦈ s'
→ getCoin s + getCoin (WithdrawalsOf tx) * χ (tx .isValid) ≡ getCoin s'
UTXOpov h' step@(UTXO-inductive⋯ _ Γ _ _ _ _ _ _ _ newBal noMintAda _ _ _ _ _ _ _ _ _ (Scripts-Yes (_ , _ , valid)))
= pov-scripts step h' refl valid
UTXOpov h' step@(UTXO-inductive⋯ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ (Scripts-No (_ , invalid)))
= pov-no-scripts step h' invalid