• Top
    • Documentation
    • Books
    • Boolean-reasoning
      • Ipasir
      • Aignet
      • Aig
        • Aig-constructors
        • Aig-vars
        • Aig-sat
        • Bddify
        • Aig-substitution
        • Aig-other
          • Best-aig
          • Aig2c
          • Expr-to-aig
          • Aiger-write
          • Aig-random-sim
            • Aig-vecsim60
              • 60-bit-fix
              • Logbitp-env60
              • Init-random-state
              • N-random-60-bit-nats
              • *60-bit-mask*
            • Aiger-read
            • Aig-print
            • Aig-cases
          • Aig-semantics
          • Aig-and-count
        • Satlink
        • Truth
        • Ubdds
        • Bdd
        • Faig
        • Bed
        • 4v
      • Projects
      • Debugging
      • Std
      • Proof-automation
      • Macro-libraries
      • ACL2
      • Interfacing-tools
      • Hardware-verification
      • Software-verification
      • Math
      • Testing-utilities
    • Aig-random-sim

    Aig-vecsim60

    Do a 60-bit wide evaluation of an AIG.

    Signature
    (aig-vecsim60 aig alst) → *
    Arguments
    aig — The AIG to simulate.
    alst — An alist that should bind the variables of aig to 60-bit naturals. If there are any missing or invalid bindings, we just 60-bit-fix them.

    Definitions and Theorems

    Function: aig-vecsim60

    (defun aig-vecsim60 (aig alst)
     (declare (xargs :guard t))
     (let ((__function__ 'aig-vecsim60))
      (declare (ignorable __function__))
      (aig-cases
       aig :true -1 :false 0 :var
       (let ((look (hons-get aig alst)))
         (if look (60-bit-fix (cdr look)) -1))
       :inv
       (the (signed-byte 61)
            (lognot (the (signed-byte 61)
                         (aig-vecsim60 (car aig) alst))))
       :and
       (let ((a (aig-vecsim60 (car aig) alst)))
         (mbe :logic
              (logand a (aig-vecsim60 (cdr aig) alst))
              :exec
              (if (= (the (signed-byte 61) a) 0)
                  0
                (the (signed-byte 61)
                     (logand (the (signed-byte 61) a)
                             (the (signed-byte 61)
                                  (aig-vecsim60 (cdr aig) alst))))))))))

    Theorem: aig-vecsim60-60-bits

    (defthm aig-vecsim60-60-bits
      (signed-byte-p 61 (aig-vecsim60 aig alst)))

    Function: aig-vecsim60-memoize-condition

    (defun aig-vecsim60-memoize-condition (aig alst)
      (declare (ignorable aig alst)
               (xargs :guard 't))
      (and (consp aig) (cdr aig)))