• Top
    • Documentation
    • Books
    • Boolean-reasoning
      • Ipasir
      • Aignet
      • Aig
      • Satlink
      • Truth
      • Ubdds
      • Bdd
      • Faig
      • Bed
      • 4v
        • 4v-sexprs
          • 4v-sexpr-vars
            • 4v-sexpr-vars-1pass
            • 4v-nsexpr-vars
              • 4v-nsexpr-vars-sparse
              • 4v-nsexpr-vars-nonsparse
              • 4v-sexpr-vars-1pass-list-list
              • 4v-sexpr-vars-list-list
              • 4v-sexpr-vars-alists
              • 4v-sexpr-vars-alist
              • 4v-sexpr-vars-1pass-list
              • 4v-sexpr-vars-list
            • 4v-sexpr-eval
            • 4v-sexpr-to-faig
            • 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
      • Std
      • Community
      • Proof-automation
      • Macro-libraries
      • ACL2
      • Interfacing-tools
      • Hardware-verification
      • Software-verification
      • Math
      • Testing-utilities
    • 4v-nsexpr-vars

    4v-nsexpr-vars-nonsparse

    Non-sparse version.

    Don't use this directly; use 4v-nsexpr-vars instead.

    Definitions and Theorems

    Function: 4v-nsexpr-vars-nonsparse

    (defun 4v-nsexpr-vars-nonsparse (x)
      (declare (xargs :guard (4v-nsexpr-p x)))
      (if (atom x)
          (if x (bitset-singleton x) 0)
        (4v-sexpr-vars-list-mask-nonsparse (cdr x))))

    Function: 4v-sexpr-vars-list-mask-nonsparse

    (defun 4v-sexpr-vars-list-mask-nonsparse (x)
      (declare (xargs :guard (4v-nsexpr-list-p x)))
      (if (atom x)
          0
        (bitset-union (4v-nsexpr-vars-nonsparse (car x))
                      (4v-sexpr-vars-list-mask-nonsparse (cdr x)))))

    Function: 4v-nsexpr-vars-nonsparse-memoize-condition

    (defun 4v-nsexpr-vars-nonsparse-memoize-condition (x)
      (declare (ignorable x)
               (xargs :guard (4v-nsexpr-p x)))
      (and (consp x) (consp (cdr x))))

    Theorem: bitset-members-4v-nsexpr-vars-nonsparse

    (defthm bitset-members-4v-nsexpr-vars-nonsparse
      (implies (4v-nsexpr-p x)
               (equal (bitset-members (4v-nsexpr-vars-nonsparse x))
                      (4v-sexpr-vars x))))

    Theorem: bitset-members-4v-sexpr-vars-list-mask-nonsparse

    (defthm bitset-members-4v-sexpr-vars-list-mask-nonsparse
      (implies
           (4v-nsexpr-list-p x)
           (equal (bitset-members (4v-sexpr-vars-list-mask-nonsparse x))
                  (4v-sexpr-vars-list x))))