• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Projects
      • Apt
      • Zfc
      • Acre
      • Milawa
      • Smtlink
      • Abnf
      • Vwsim
      • Isar
      • Wp-gen
      • Dimacs-reader
      • Pfcs
      • Legacy-defrstobj
      • Proof-checker-array
      • Soft
      • C
      • Farray
      • Rp-rewriter
      • Instant-runoff-voting
      • Imp-language
      • Sidekick
      • Leftist-trees
      • Java
      • Riscv
      • Taspi
      • Bitcoin
      • Des
      • Ethereum
      • X86isa
      • Sha-2
      • Yul
      • Zcash
      • Proof-checker-itp13
      • Regex
      • ACL2-programming-language
      • Json
      • Jfkr
      • Equational
      • Cryptography
      • Poseidon
      • Where-do-i-place-my-book
      • Axe
      • Aleo
        • Aleobft
        • Aleovm
        • Leo
          • Grammar
          • Early-version
            • Json2ast
            • Testing
            • Definition
              • Flattening
              • Abstract-syntax
              • Dynamic-semantics
                • Execution
                • Values
                • Dynamic-environments
                • Arithmetic-operations
                • Curve-parameterization
                • Shift-operations
                • Errors
                • Value-expressions
                • Locations
                • Input-execution
                • Edwards-bls12-generator
                • Equality-operations
                • Logical-operations
                • Program-execution
                • Ordering-operations
                • Bitwise-operations
                • Literal-evaluation
                • Type-maps-for-struct-components
                • Output-execution
                • Tuple-operations
                • Struct-operations
              • Compilation
              • Static-semantics
              • Concrete-syntax
      • Bigmems
      • Builtins
      • Execloader
      • Solidity
      • Paco
      • Concurrent-programs
      • Bls12-377-curves
    • Debugging
    • Community
    • Std
    • Proof-automation
    • Macro-libraries
    • ACL2
    • Interfacing-tools
    • Hardware-verification
    • Software-verification
    • Math
    • Testing-utilities
  • Definition

Dynamic-semantics

Dynamic semantics of Leo.

The dynamic semantics of Leo defines how the execution of the expressions, statements, etc. defined in the abstract syntax manipulate values and computation states.

The definition consists of mathematical structures that characterize the form of values and computation states, and functions saying how values and computation states are created and transformed by the execution of the Leo constructs. These execution functions do not assume that the constructs satisfy the static semantic requirements in thestatic semantics: the execution functions are defensive, i.e. they perform the dynamic equivalent of some of the static checks prescribed by the static semantics, such as the fact that an operator is applied to operands of the right types; if the checks fail, special error results are produced, distinct from values and computation states. An important property of Leo is that if the static semantic requirements in are satisfied, then these dynamic semantic checks never fail; we plan to formally prove this property.

Subtopics

Execution
Execution of expressions, statements, etc.
Values
Leo values.
Dynamic-environments
Dynamic environments.
Arithmetic-operations
Leo arithmetic operations.
Curve-parameterization
Curve parameterization in Leo.
Shift-operations
Leo shift operations.
Errors
Error indications generated in the dynamic semantics of Leo.
Value-expressions
Value expressions and their evaluation.
Locations
Leo locations.
Input-execution
Execution of input files.
Edwards-bls12-generator
The point on the edwards-bls12 curve that is used as a generator point.
Equality-operations
Leo equality operations.
Logical-operations
Leo logical operations.
Program-execution
Execution of programs.
Ordering-operations
Leo ordering operations.
Bitwise-operations
Leo bitwise operations.
Literal-evaluation
Evaluation of Leo literals.
Type-maps-for-struct-components
Maps from identifiers to types for struct type components.
Output-execution
Execution of output files.
Tuple-operations
Leo tuple operations.
Struct-operations
Leo struct operations.