• 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
              • Sfaiglist-recover-4venv
              • Sfaiglist-make-faigenv
              • Sfaiglist
              • Sfaig-recover-4venv
              • Sfaig-make-faigenv
              • 4v->faig-const
              • 4v-sexpr-to-faig-list
              • 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
              • Sfaiglist-recover-4venv
              • Sfaiglist-make-faigenv
              • Sfaiglist
              • Sfaig-recover-4venv
              • Sfaig-make-faigenv
              • 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
        • Community
        • Proof-automation
        • Macro-libraries
        • ACL2
        • Interfacing-tools
        • Hardware-verification
        • Software-verification
        • Math
        • Testing-utilities
      • Sfaig

      Sfaig-make-faigenv

      For use with sfaig, translates sexpr environments into equivalent faig environments.

      Signature
      (sfaig-make-faigenv sexpr env) → faig-env
      Arguments
      sexpr — A single 4v-sexpr.
      env — A sexpr-env to evaluate it under.
      Returns
      faig-env — The corresponding faig environment.

      Definitions and Theorems

      Function: sfaig-make-faigenv

      (defun sfaig-make-faigenv (sexpr env)
        (declare (xargs :guard t))
        (let ((__function__ 'sfaig-make-faigenv))
          (declare (ignorable __function__))
          (b* ((vars (4v-sexpr-vars-1pass sexpr))
               (onoff (num-varmap vars 0))
               (env (4v-sexpr-alist-extract vars env)))
            (sig-al-to-svar-al (4v-alist->faig-const-alist env)
                               onoff))))

      Theorem: faig-eval-of-sfaig-make-faigenv

      (defthm faig-eval-of-sfaig-make-faigenv
        (b* ((faig (sfaig sexpr))
             (faig-env (sfaig-make-faigenv sexpr env)))
          (equal (faig-eval faig faig-env)
                 (4v->faig-const (4v-sexpr-eval sexpr env)))))