• Top
    • Documentation
    • Books
    • Recursion-and-induction
    • Boolean-reasoning
    • Projects
    • Debugging
    • Std
    • Proof-automation
    • Macro-libraries
    • ACL2
    • Interfacing-tools
    • Hardware-verification
    • Software-verification
      • Kestrel-books
        • Crypto-hdwallet
        • Error-checking
        • Apt
        • Abnf
        • Fty-extensions
        • Isar
        • Kestrel-utilities
        • Prime-field-constraint-systems
          • Proof-support
          • R1cs-subset
          • Semantics
          • Abstract-syntax
            • Expression
            • Definition
            • Constraint
              • Constraint-fix
              • Constraint-case
              • Constraint-equiv
              • Constraintp
              • Constraint-relation
              • Constraint-equal
                • Constraint-equal->right
                • Make-constraint-equal
                • Constraint-equal->left
                  • Change-constraint-equal
                • Constraint-kind
              • Definition-option
              • System
              • Abstract-syntax-operations
              • Definition-list
              • Expression-list
              • Constraint-list
            • Well-formedness
            • Abstract-syntax-operations
            • R1cs-bridge
            • Concrete-syntax
            • Prime-field-library-extensions
            • R1cs-library-extensions
          • Soft
          • Bv
          • Imp-language
          • Event-macros
          • Bitcoin
          • Ethereum
          • Yul
          • Zcash
          • ACL2-programming-language
          • Prime-fields
          • Java
          • C
          • Syntheto
          • Number-theory
          • Cryptography
          • Lists-light
          • File-io-light
          • Json
          • Built-ins
          • Solidity
          • Axe
          • Std-extensions
          • Htclient
          • Typed-lists-light
          • Arithmetic-light
        • X86isa
        • Execloader
        • Axe
      • Testing-utilities
      • Math
    • Constraint-equal

    Constraint-equal->left

    Get the left field from a constraint-equal.

    Signature
    (constraint-equal->left x) → left
    Arguments
    x — Guard (constraintp x).
    Returns
    left — Type (expressionp left).

    This is an ordinary field accessor created by fty::defprod.

    Definitions and Theorems

    Function: constraint-equal->left$inline

    (defun
        constraint-equal->left$inline (x)
        (declare (xargs :guard (constraintp x)))
        (declare (xargs :guard (equal (constraint-kind x) :equal)))
        (let ((__function__ 'constraint-equal->left))
             (declare (ignorable __function__))
             (mbe :logic (b* ((x (and (equal (constraint-kind x) :equal)
                                      x)))
                             (expression-fix (std::da-nth 0 (cdr x))))
                  :exec (std::da-nth 0 (cdr x)))))

    Theorem: expressionp-of-constraint-equal->left

    (defthm expressionp-of-constraint-equal->left
            (b* ((left (constraint-equal->left$inline x)))
                (expressionp left))
            :rule-classes :rewrite)

    Theorem: constraint-equal->left$inline-of-constraint-fix-x

    (defthm constraint-equal->left$inline-of-constraint-fix-x
            (equal (constraint-equal->left$inline (constraint-fix x))
                   (constraint-equal->left$inline x)))

    Theorem: constraint-equal->left$inline-constraint-equiv-congruence-on-x

    (defthm
         constraint-equal->left$inline-constraint-equiv-congruence-on-x
         (implies (constraint-equiv x x-equiv)
                  (equal (constraint-equal->left$inline x)
                         (constraint-equal->left$inline x-equiv)))
         :rule-classes :congruence)

    Theorem: constraint-equal->left-when-wrong-kind

    (defthm constraint-equal->left-when-wrong-kind
            (implies (not (equal (constraint-kind x) :equal))
                     (equal (constraint-equal->left x)
                            (expression-fix nil))))