logo
Formal Ledger Specification
Computational
Initializing search
    GitHub
    • Home
    • Preliminaries
    • Core
    • Conway
    • Dijkstra
    • Appendix
    GitHub
    • Home
      • Guide for Contributors
      • Introduction
      • Properties
      • Notation
      • Introduction
        • Address
        • Crypto
        • Epoch
      • Introduction
        • Abstract
        • BlockBody
          • Properties
            • Computational
        • Certs
          • Properties
            • Computational
            • PoV
            • PoVLemmas
            • VoteDelegsVDeleg
        • Chain
          • Properties
            • Computational
            • CredDepsEqualDomRwds
            • EpochStep
            • GovDepsMatch
            • PParamsWellFormed
        • Enact
          • Properties
            • Computational
        • Epoch
          • Properties
            • Computational
            • ConstRwds
            • ExpiredDReps
            • GovDepsMatch
            • NoPropSameDReps
        • Fees
        • Gov
          • Base
          • Actions
          • Properties
            • Computational
            • ChangePPGroup
        • Ledger
          • Properties
            • Base
            • Computational
            • GovDepsMatch
            • PoV
        • PoolReap
            • Computational
        • PParams
        • Properties
        • Ratify
          • Properties
            • Computational
        • Rewards
            • Computational
        • RewardUpdate
          • Properties
            • Computational
        • Script
          • Base
          • ScriptPurpose
          • Timelock
          • Validation
          • Base
          • Coin
          • ValueSet
          • ValueVector
        • Transaction
        • Utxo
          • Properties
            • Base
            • Computational
            • GenMinspend
            • MinSpend
            • PoV
        • Utxow
          • Properties
            • Computational
          • GovStructure
      • Introduction
      • Abstract
      • Certs
        • Actions
        • Base
      • PParams
      • Script
        • Validation
      • TokenAlgebra
      • Transaction
        • Definitions
        • Essential Agda
          • Bootstrapping Governance
          • Bootstrapping EnactState
        • Prelude
        • Ledger
        • Ledger.Core
        • Ledger.Prelude
          • Base
            • HSTypes
            • Util
          • HasCoin
          • Instances
          • Numeric
            • PositiveNat
            • UnitInterval
          • STS
          • ComputationalRelation
          • TypeClasses
            • TypeClasses
            • HasSubset
            • HasSubtract
              • Instance
          • Convertible
            • Deriving
            • DerivingTest
          • HaskellTypes
            • Deriving
        • MyDebugOptions
          • Examples
            • HelloWorld
            • SucceedIfNumber
              • Datum
                • Cleanup
                • Close
                • Deposit
                • Lib
                • OffChain
                • Open
                • Start
                • Transfer
                • Withdraw
                • Trace
              • Validator
              • Datum
                • Close
                • Exchange
                • Lib
                • OffChain
                • Start
                • Update
                • Trace
              • Validator
              • Datum
                • AddSig
                • Lib
                • OffChain
                • Open
                • Pay
                • Propose
                • Trace
              • Validator
              • Datum
                • AddSig
                • Cancel
                • Cleanup
                • Lib
                • OffChain
                • Open
                • Pay
                • Propose
                • Trace
              • Validator
          • AbstractImplementation
          • LedgerImplementation
          • Lib
          • Prelude
          • SymbolicData
          • Ledger.Dijkstra
          • Ledger.PreConway
              • NewPP
                • Properties
              • PPUp
                • Properties
            • NewPP
              • Properties
            • PPUp
              • Properties
          • Ledger.Conway
            • ExternalFunctions
            • HSLedger
              • Address
              • BaseTypes
              • Cert
              • Certs
              • Chain
              • Core
              • Enact
              • Epoch
              • ExternalStructures
              • Gov
                • Core
                • Actions
              • Ledger
              • NewEpoch
              • PParams
              • Ratify
              • Rewards
              • Transaction
              • Utxo
          • Conformance
            • Certs
              • Properties
            • Chain
              • Properties
            • Epoch
              • Properties
            • Equivalence
              • Bisimilarity
              • Certs
              • Convert
              • Deposits
              • Map
              • Utxo
            • Gov
            • Ledger
              • Properties
            • Properties
            • Rewards
            • Script
            • Utxo
              • Properties
            • Utxow
              • Properties

    Computational

    {-# OPTIONS --safe #-}
    
    open import Ledger.Conway.Specification.Transaction
    open import Ledger.Conway.Specification.Abstract
    
    module Ledger.Conway.Specification.PoolReap.Properties.Computational
      (txs : _) (open TransactionStructure txs)
      (abs : AbstractFunctions txs) (open AbstractFunctions abs)
      where
    
    open import Ledger.Prelude
    open import Ledger.Conway.Specification.PoolReap txs abs
    
    open Computational ⦃...⦄
    
    module _ {e : Epoch} {prs : PoolReapState} where
      POOLREAP-total : ∃[ prs' ] _ ⊢ prs ⇀⦇ e ,POOLREAP⦈ prs'
      POOLREAP-total = -, POOLREAP
    
      POOLREAP-complete
        : ∀ prs' → _ ⊢ prs ⇀⦇ e ,POOLREAP⦈ prs' → proj₁ POOLREAP-total ≡ prs'
      POOLREAP-complete prs' POOLREAP = refl
    
      POOLREAP-deterministic
        : ∀ {prs' prs''}
        → _ ⊢ prs ⇀⦇ e ,POOLREAP⦈ prs'
        → _ ⊢ prs ⇀⦇ e ,POOLREAP⦈ prs''
        → prs' ≡ prs''
      POOLREAP-deterministic POOLREAP POOLREAP = refl
    
    POOLREAP-deterministic-≡ : ∀ {prs' prs'' e e' prs''' prs''''}
      → prs' ≡ prs''
      → e ≡ e'
      → _ ⊢ prs'  ⇀⦇ e  ,POOLREAP⦈ prs'''
      → _ ⊢ prs'' ⇀⦇ e' ,POOLREAP⦈ prs''''
      → prs''' ≡ prs''''
    POOLREAP-deterministic-≡ refl refl = POOLREAP-deterministic
    
    Previous
    PoolReap
    Next
    PParams
    Made with Material for MkDocs