1. 01 May, 2019 1 commit
  2. 29 Apr, 2019 2 commits
  3. 27 Apr, 2019 2 commits
    • Jakob Botsch Nielsen's avatar
      Move ChainStep and ChainTrace to Type · 5221931a
      Jakob Botsch Nielsen authored
      This moves ChainStep and ChainTrace to type. The reason being that our
      proofs will depend on prefixes of traces and it will be very useful (if
      not required) to be able to match on the trace and the steps.
      ChainBuilderType is changed appropriately: now, an implementation just
      needs to prove that ChainTrace empty_env [] cur_env [] is inhabited.
      Thus, ChainTrace can basically be seen as one particular way to order
      the execution so that we reach a state. When it is inhabited, it thus
      means that there exists a proper way to order actions so that we reach
      the state we are in.
      5221931a
    • Jakob Botsch Nielsen's avatar
      62aff812
  4. 26 Apr, 2019 4 commits
  5. 25 Apr, 2019 6 commits
  6. 24 Apr, 2019 1 commit
  7. 23 Apr, 2019 2 commits
    • Jakob Botsch Nielsen's avatar
      Some further cleanups · 7a5e908d
      Jakob Botsch Nielsen authored
      Refactor proof of add_new_block_header and simplify add_block proof.
      7a5e908d
    • Jakob Botsch Nielsen's avatar
      Various refactorings and cleanups · f8adfa8c
      Jakob Botsch Nielsen authored
      * Remove BlockTrace and bake everything into ChainTrace
      * Simplify ChainTrace. Its signature is now
      ChainTrace : Environment -> list Action -> Prop.
      
      These changes will make it easier to reason over traces when proving
      properties about contracts. For one, we can now talk about prefixes of
      the entire chain without the weird distinction between block traces and
      chain traces.
      f8adfa8c
  8. 22 Apr, 2019 7 commits
  9. 19 Apr, 2019 4 commits
    • Jakob Botsch Nielsen's avatar
      Remove some unused leftover code · 70965e72
      Jakob Botsch Nielsen authored
      70965e72
    • Jakob Botsch Nielsen's avatar
      Update for dev Coq · 478221dd
      Jakob Botsch Nielsen authored
      478221dd
    • Jakob Botsch Nielsen's avatar
      ad6bc95a
    • Jakob Botsch Nielsen's avatar
      Specify and prove an initial blockchain semantics · 71ea5d00
      Jakob Botsch Nielsen authored
      This specifies an initial version of blockchain semantics. The semantics
      are specified as several relations:
      
      ChainStep :
        Environment -> Action -> Tx ->
        Environment -> list Action ->
        Prop.
      
      This relation captures the semantics of a single step/action in the
      chain. Such an action can either be a transfer, contract deployment or
      contract call. It specifies that when an action is executed in some
      starting environment, then the blockchain records a transaction (Tx) on
      the chain and performs certain updates to the environment. Finally, the
      step also results in possible new actions to be executed due to contract
      execution.
      
      An environment is for now simply a Chain (which contracts can interact
      with) and a collection of contracts that have been deployed to some
      addresses. The Chain contains various useful operations for contracts
      such as the current block number or ability to query transactions and
      user balances.
      
      For example, for a simple transfer action w...
      71ea5d00
  10. 09 Apr, 2019 2 commits
  11. 19 Mar, 2019 2 commits
  12. 16 Mar, 2019 1 commit
  13. 14 Mar, 2019 3 commits
  14. 12 Mar, 2019 3 commits