• 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-and-faig-operations-commute
            • 4v-sexpr-to-faig-plain
            • 4v-sexpr-to-faig-opt
            • Sfaig
            • 4v->faig-const
            • 4v-sexpr-to-faig-list
              • Sfaiglist
            • Faig-const-fix
            • Faig-const->4v
            • 4v-sexpr-to-faig-alist
            • Faig-const-<=
            • Faig-const-p
          • 4v-sexpr-restrict-with-rw
          • 4vs-constructors
          • 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
    • Community
    • Std
    • Proof-automation
    • Macro-libraries
    • ACL2
    • Interfacing-tools
    • Hardware-verification
    • Software-verification
    • Math
    • Testing-utilities
  • 4v-sexpr-to-faig

4v-sexpr-to-faig-list

Convert a sexpr list into a faig list.

Definitions and Theorems

Function: 4v-sexpr-to-faig-list-fn1

(defun 4v-sexpr-to-faig-list-fn1 (x onoff optimizep)
  "Assumes ONOFF is fast."
  (declare (xargs :guard t))
  (if optimizep (4v-sexpr-to-faig-opt-list x onoff)
    (4v-sexpr-to-faig-plain-list x onoff)))

Function: 4v-sexpr-to-faig-list-fn

(defun 4v-sexpr-to-faig-list-fn (x onoff optimizep)
 "Assumes ONOFF is fast."
 (declare (xargs :guard t))
 (mbe
   :logic
   (if (atom x)
       nil
     (cons (4v-sexpr-to-faig-fn (car x)
                                onoff optimizep)
           (4v-sexpr-to-faig-list-fn (cdr x)
                                     onoff optimizep)))
   :exec
   (with-fast-alist onoff
                    (4v-sexpr-to-faig-list-fn1 x onoff optimizep))))

Theorem: 4v-sexpr-to-faig-list-fn1-removal

(defthm 4v-sexpr-to-faig-list-fn1-removal
  (equal (4v-sexpr-to-faig-list-fn1 x onoff optimizep)
         (4v-sexpr-to-faig-list-fn x onoff optimizep)))

Theorem: alistp-of-4v-sexpr-to-faig-list-fn

(defthm alistp-of-4v-sexpr-to-faig-list-fn
  (alistp (4v-sexpr-to-faig-list-fn x onoff optimize))
  :rule-classes :type-prescription)

Theorem: len-of-4v-sexpr-to-faig-list-fn

(defthm len-of-4v-sexpr-to-faig-list-fn
  (equal (len (4v-sexpr-to-faig-list-fn x onoff optimize))
         (len x)))

Theorem: faig-eval-list-of-4v-sexpr-to-faig

(defthm faig-eval-list-of-4v-sexpr-to-faig
  (equal (faig-eval-list (4v-sexpr-to-faig-list-fn x onoff optimize)
                         env)
         (faig-eval-list (4v-sexpr-to-faig-plain-list x onoff)
                         env)))

Subtopics

Sfaiglist
A simplified version of 4v-sexpr-to-faig-list that constructs its own onoff list out of the variables of the sexprs.