• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Projects
      • Apt
      • Zfc
      • Acre
      • Milawa
      • Smtlink
      • Abnf
      • Vwsim
      • Isar
      • Wp-gen
      • Dimacs-reader
      • Pfcs
      • Legacy-defrstobj
      • C
      • Proof-checker-array
      • Soft
      • Farray
      • Rp-rewriter
      • Instant-runoff-voting
      • Imp-language
      • Sidekick
      • Ethereum
      • Leftist-trees
      • Java
      • Riscv
      • Taspi
      • Bitcoin
      • Zcash
      • Des
      • X86isa
      • Sha-2
      • Yul
      • Proof-checker-itp13
      • Regex
      • ACL2-programming-language
      • Json
      • Jfkr
      • Equational
      • Cryptography
      • Axe
      • Poseidon
      • Where-do-i-place-my-book
      • Aleo
        • Aleobft
        • Aleovm
        • Leo
          • Grammar
          • Early-version
            • Json2ast
            • Testing
            • Definition
              • Flattening
              • Abstract-syntax
              • Dynamic-semantics
                • Execution
                • Values
                • Dynamic-environments
                • Arithmetic-operations
                  • Integer-arithmetic-operations
                  • Field-arithmetic-operations
                  • Scalar-field-arithmetic-operations
                  • Group-arithmetic-operations
                    • Op-group-mul
                    • Op-group-sub
                    • Op-group-add
                    • Op-group-double
                    • Op-group-neg
                  • Op-mul
                  • Op-add
                  • Op-sub-wrapped
                  • Op-sub
                  • Op-rem-wrapped
                  • Op-pow-wrapped
                  • Op-pow
                  • Op-mul-wrapped
                  • Op-div-wrapped
                  • Op-div
                  • Op-add-wrapped
                  • Op-rem
                  • Op-square-root
                  • Op-square
                  • Op-neg
                  • Op-inv
                  • Op-double
                  • Op-abs-wrapped
                  • Op-abs
                • 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
  • Arithmetic-operations

Group-arithmetic-operations

Leo group arithmetic operations.

These are negation (unary), doubling (unary), addition (binary), subtraction (binary), and scalar multiplication.

These operations are paramterized over the curve; see curve-parameterization. implicitly depend on an elliptic curve.

These ACL2 functions are defined over all possible group values, but they return errors if the underlying points are not in the actual subgroup. It should be an invariant, to be formalized and proved, that the underlying points of the group values in a Leo computation state always belong to the subgroup.

Subtopics

Op-group-mul
Leo group scalar multiplication operation.
Op-group-sub
Leo group addition operation.
Op-group-add
Leo group addition operation.
Op-group-double
Leo group point doubling operation.
Op-group-neg
Leo group negation operation.