• Top
    • Documentation
    • Books
    • Recursion-and-induction
    • Boolean-reasoning
      • Ipasir
      • Aignet
      • Aig
      • Satlink
      • Truth
      • Ubdds
        • Equal-by-eval-bdds
        • Ubdd-constructors
          • Q-and
          • Q-ite
          • Q-or
          • Q-implies
          • Q-iff
          • Q-and-c2
          • Q-and-c1
          • Q-or-c2
          • Q-not
          • Q-ite-fn
          • Q-xor
          • Q-and-is-nil
          • Cheap-and-expensive-arguments
          • Q-compose-list
          • Q-compose
          • Qv
            • Q-and-is-nilc2
            • Q-nor
            • Q-nand
          • Eval-bdd
          • Ubddp
          • Ubdd-fix
          • Q-sat
          • Bdd-sat-dfs
          • Eval-bdd-list
          • Qcdr
          • Qcar
          • Q-sat-any
          • Canonicalize-to-q-ite
          • Ubdd-listp
          • Qcons
        • Bdd
        • Faig
        • Bed
        • 4v
      • Debugging
      • Projects
      • Std
      • Proof-automation
      • Macro-libraries
      • ACL2
      • Interfacing-tools
      • Hardware-verification
      • Software-verification
      • Testing-utilities
      • Math
    • Ubdd-constructors

    Qv

    (qv i) constructs a UBDD which evaluates to true exactly when the ith BDD variable is true.

    Definitions and Theorems

    Function: qv

    (defun qv (i)
           (declare (xargs :guard t))
           (if (posp i)
               (let ((prev (qv (1- i))))
                    (hons prev prev))
               (hons t nil)))

    Theorem: ubddp-qv

    (defthm ubddp-qv (ubddp (qv i)))

    Theorem: eval-bdd-of-qv-and-nil

    (defthm eval-bdd-of-qv-and-nil
            (not (eval-bdd (qv i) nil)))

    Theorem: eval-bdd-of-qv

    (defthm eval-bdd-of-qv
            (equal (eval-bdd (qv i) lst)
                   (if (nth i lst) t nil)))

    Theorem: qvs-equal

    (defthm qvs-equal
            (equal (equal (qv i) (qv j))
                   (equal (nfix i) (nfix j))))