• Top
    • Documentation
    • Books
    • Boolean-reasoning
      • Ipasir
      • Aignet
      • Aig
      • Satlink
      • Truth
      • Ubdds
      • Bdd
      • Faig
      • Bed
      • 4v
        • 4v-sexprs
          • 4v-sexpr-vars
          • 4v-sexpr-eval
          • 4v-sexpr-to-faig
          • 4v-sexpr-restrict-with-rw
          • 4vs-constructors
            • 4vs-not-list
            • 4vs-onehot
            • 4vs-ite*-list-dumb
            • 4vs-and-list-dumb
            • 4vs-not
            • 4vs-and-list
            • 4vs-and-dumb
            • 4vs-and
            • 4vs-zif-dumb
            • 4vs-z
            • 4vs-ite*-dumb
            • 4vs-x
            • 4vs-t
            • 4vs-f
            • 4vs-xor
            • 4vs-or
              • 4vs-iff
              • 4vs-buf
              • 4vs-implies-lists
              • 4vs-xor-lists
              • 4vs-or-lists
              • 4vs-or-list
              • 4vs-implies
              • 4vs-iff-lists
              • 4vs-and-lists
            • 4v-sexpr-compose-with-rw
            • 4v-sexpr-restrict
            • 4v-sexpr-alist-extract
            • 4v-sexpr-compose
            • 4v-nsexpr-p
            • 4v-sexpr-purebool-p
            • 4v-sexpr-<=
            • Sfaig
            • Sexpr-equivs
            • 3v-syntax-sexprp
            • Sexpr-rewriting
            • 4v-sexpr-ind
            • 4v-alist-extract
          • 4v-monotonicity
          • 4v-operations
          • Why-4v-logic
          • 4v-<=
          • 4vp
          • 4vcases
          • 4v-fix
          • 4v-lookup
      • Projects
      • Debugging
      • Std
      • Proof-automation
      • Macro-libraries
      • ACL2
      • Interfacing-tools
      • Hardware-verification
      • Software-verification
      • Math
      • Testing-utilities
    • 4vs-constructors

    4vs-or

    (4vs-or a b) constructs a 4v-sexpr equivalent to (or a b).

    Definitions and Theorems

    Function: 4vs-or

    (defun 4vs-or (a b)
      (declare (xargs :guard t))
      (cond ((or (atom a) (atom b))
             (cond ((equal a b) (4vs-buf a))
                   (t (hons-list 'or a b))))
            ((4vt-sexpr-p a) a)
            ((4vt-sexpr-p b) b)
            ((4vf-sexpr-p a) (4vs-buf b))
            ((4vf-sexpr-p b) (4vs-buf a))
            ((hons-equal a b) (4vs-buf a))
            (t (hons-list 'or a b))))

    Theorem: 4v-sexpr-eval-of-4vs-or

    (defthm 4v-sexpr-eval-of-4vs-or
      (equal (4v-sexpr-eval (4vs-or a b) env)
             (4v-or (4v-sexpr-eval a env)
                    (4v-sexpr-eval b env))))