{-# 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 txs abs using (χ; module DepositHelpers) 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 (wdrlsOf tx) * χ (tx .isValid) ≡ getCoin s' UTXOpov h' step@(UTXO-inductive⋯ _ Γ _ _ _ _ _ _ _ newBal noMintAda _ _ _ _ _ _ _ _ _ (Scripts-Yes (_ , _ , valid))) = DepositHelpers.pov-scripts step h' refl valid UTXOpov h' step@(UTXO-inductive⋯ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ (Scripts-No (_ , invalid))) = DepositHelpers.pov-no-scripts step h' invalid