1. Introduction
  2. 1. Installation
    1. 1.1. opam package manager
    2. 1.2. Install Coq
    3. 1.3. Install Pruvendo libraries
    4. 1.4. Install via Docker image
  3. 2. Quick start
    1. 2.1. Write simple contract
    2. 2.2. Compile and extract solidity sources
    3. 2.3. Compile extracted contract and deploy
  4. 3. Coq embedded DSL
    1. 3.1. Coq custom grammar
    2. 3.2. Ursus embedding
    3. 3.3. Notational mechanism
  5. 4. Ursus as a language
    1. 4.1. Interface structure
    2. 4.2. Contract structure
    3. 4.3. Types, primitives, and literals
    4. 4.4. Complex Structures
    5. 4.5. How to write Ursus functions
    6. 4.6. Interfaces and messages
    7. 4.7. Local state and variables
    8. 4.8. Multi-contract system
    9. 4.9. Contract inheritance
  6. 5. Ursus standard library
    1. 5.1. Standard functions
    2. 5.2. Basic operators
    3. 5.3. TVM functions
  7. 6. Ursus verification
    1. 6.1. Common principles
    2. 6.2. StdLib verification
    3. 6.3. QuickChick
  8. 7. Ursus programming style
    1. 7.1. REPL
    2. 7.2. Goal and context
    3. 7.3. Tactics and tacticals
      1. 7.3.1. Ursus control sub-languange
    4. 7.4. Holes
    5. 7.5. Default prefix and postfix operations
  9. 8. Long start
    1. 8.1. Designing contract
    2. 8.2. Implementation
    3. 8.3. Extracting, compiling and deploy
    4. 8.4. Specification
    5. 8.5. TS4 integration
    6. 8.6. Quickchicks
    7. 8.7. Evals and execs
    8. 8.8. Direct proofs
    9. 8.9. Scenarios
    10. 8.10. Multi-contract verification
  10. 9. Translation
    1. 9.1. sol->ursus translation
    2. 9.2. cpp->ursus translation
    3. 9.3. ursus->sol translation
  11. 10. Advanced topics
    1. 10.1. Ledger and Superledger
    2. 10.2. Specification
    3. 10.3. Proof kinds
    4. 10.4. Evals and execs generator
    5. 10.5. Elpi automation
  12. 11. More and uncategorized

Ursus language documentation

Compiling Ursus and extraction to Solidity.

TODO