• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Projects
    • Debugging
    • Community
    • Std
      • Std/lists
      • Omaps
      • Std/alists
      • Obags
      • Std/util
      • Std/strings
      • Std/osets
      • Std/io
      • Std/basic
      • Std/system
        • Fresh-logical-name-with-$s-suffix
        • Irrelevant-formals-info
        • Std/system/function-queries
        • Std/system/term-queries
        • Std/system/term-transformations
        • Std/system/enhanced-utilities
        • Install-not-normalized-event
        • Install-not-normalized-event-lst
        • Std/system/term-function-recognizers
          • Pseudo-termfnp
            • Pseudo-termfn-listp
              • Pseudo-termfn-listp-basics
            • Pseudo-lambdap
            • Lambdap
            • Termfnp
            • Pseudo-lambda-listp
            • Pseudo-termfn-listp
              • Pseudo-termfn-listp-basics
              • Termfn-listp
              • Lambda-listp
            • Genvar$
            • Std/system/event-name-queries
            • Pseudo-tests-and-call-listp
            • Maybe-pseudo-event-formp
            • Add-suffix-to-fn-or-const
            • Chk-irrelevant-formals-ok
            • Table-alist+
            • Pseudo-tests-and-callp
            • Add-suffix-to-fn-or-const-lst
            • Known-packages+
            • Add-suffix-to-fn-lst
            • Unquote-term
            • Event-landmark-names
            • Add-suffix-lst
            • Std/system/theorem-queries
            • Unquote-term-list
            • Std/system/macro-queries
            • Pseudo-command-landmark-listp
            • Install-not-normalized$
            • Pseudo-event-landmark-listp
            • Known-packages
            • Std/system/partition-rest-and-keyword-args
            • Rune-enabledp
            • Rune-disabledp
            • Included-books
            • Std/system/pseudo-event-formp
            • Std/system/plist-worldp-with-formals
            • Std/system/w
            • Std/system/geprops
            • Std/system/arglistp
            • Std/system/constant-queries
          • Std/typed-lists
          • Std/bitsets
          • Std/testing
          • Std/typed-alists
          • Std/stobjs
        • Proof-automation
        • Macro-libraries
        • ACL2
        • Interfacing-tools
        • Hardware-verification
        • Software-verification
        • Math
        • Testing-utilities
      • Pseudo-termfn-listp

      Pseudo-termfn-listp-basics

      Basic theorems about pseudo-termfn-listp, generated by std::deflist.

      Definitions and Theorems

      Theorem: pseudo-termfn-listp-of-cons

      (defthm pseudo-termfn-listp-of-cons
        (equal (pseudo-termfn-listp (cons a x))
               (and (pseudo-termfnp a)
                    (pseudo-termfn-listp x)))
        :rule-classes ((:rewrite)))

      Theorem: pseudo-termfn-listp-of-cdr-when-pseudo-termfn-listp

      (defthm pseudo-termfn-listp-of-cdr-when-pseudo-termfn-listp
        (implies (pseudo-termfn-listp (double-rewrite x))
                 (pseudo-termfn-listp (cdr x)))
        :rule-classes ((:rewrite)))

      Theorem: pseudo-termfn-listp-when-not-consp

      (defthm pseudo-termfn-listp-when-not-consp
        (implies (not (consp x))
                 (equal (pseudo-termfn-listp x) (not x)))
        :rule-classes ((:rewrite)))

      Theorem: pseudo-termfnp-of-car-when-pseudo-termfn-listp

      (defthm pseudo-termfnp-of-car-when-pseudo-termfn-listp
        (implies (pseudo-termfn-listp x)
                 (pseudo-termfnp (car x)))
        :rule-classes ((:rewrite)))

      Theorem: true-listp-when-pseudo-termfn-listp-compound-recognizer

      (defthm true-listp-when-pseudo-termfn-listp-compound-recognizer
        (implies (pseudo-termfn-listp x)
                 (true-listp x))
        :rule-classes :compound-recognizer)

      Theorem: pseudo-termfn-listp-of-list-fix

      (defthm pseudo-termfn-listp-of-list-fix
        (implies (pseudo-termfn-listp x)
                 (pseudo-termfn-listp (list-fix x)))
        :rule-classes ((:rewrite)))

      Theorem: pseudo-termfn-listp-of-sfix

      (defthm pseudo-termfn-listp-of-sfix
        (iff (pseudo-termfn-listp (set::sfix x))
             (or (pseudo-termfn-listp x)
                 (not (set::setp x))))
        :rule-classes ((:rewrite)))

      Theorem: pseudo-termfn-listp-of-insert

      (defthm pseudo-termfn-listp-of-insert
        (iff (pseudo-termfn-listp (set::insert a x))
             (and (pseudo-termfn-listp (set::sfix x))
                  (pseudo-termfnp a)))
        :rule-classes ((:rewrite)))

      Theorem: pseudo-termfn-listp-of-delete

      (defthm pseudo-termfn-listp-of-delete
        (implies (pseudo-termfn-listp x)
                 (pseudo-termfn-listp (set::delete k x)))
        :rule-classes ((:rewrite)))

      Theorem: pseudo-termfn-listp-of-mergesort

      (defthm pseudo-termfn-listp-of-mergesort
        (iff (pseudo-termfn-listp (set::mergesort x))
             (pseudo-termfn-listp (list-fix x)))
        :rule-classes ((:rewrite)))

      Theorem: pseudo-termfn-listp-of-union

      (defthm pseudo-termfn-listp-of-union
        (iff (pseudo-termfn-listp (set::union x y))
             (and (pseudo-termfn-listp (set::sfix x))
                  (pseudo-termfn-listp (set::sfix y))))
        :rule-classes ((:rewrite)))

      Theorem: pseudo-termfn-listp-of-intersect-1

      (defthm pseudo-termfn-listp-of-intersect-1
        (implies (pseudo-termfn-listp x)
                 (pseudo-termfn-listp (set::intersect x y)))
        :rule-classes ((:rewrite)))

      Theorem: pseudo-termfn-listp-of-intersect-2

      (defthm pseudo-termfn-listp-of-intersect-2
        (implies (pseudo-termfn-listp y)
                 (pseudo-termfn-listp (set::intersect x y)))
        :rule-classes ((:rewrite)))

      Theorem: pseudo-termfn-listp-of-difference

      (defthm pseudo-termfn-listp-of-difference
        (implies (pseudo-termfn-listp x)
                 (pseudo-termfn-listp (set::difference x y)))
        :rule-classes ((:rewrite)))

      Theorem: pseudo-termfn-listp-of-duplicated-members

      (defthm pseudo-termfn-listp-of-duplicated-members
        (implies (pseudo-termfn-listp x)
                 (pseudo-termfn-listp (duplicated-members x)))
        :rule-classes ((:rewrite)))

      Theorem: pseudo-termfn-listp-of-rev

      (defthm pseudo-termfn-listp-of-rev
        (equal (pseudo-termfn-listp (rev x))
               (pseudo-termfn-listp (list-fix x)))
        :rule-classes ((:rewrite)))

      Theorem: pseudo-termfn-listp-of-append

      (defthm pseudo-termfn-listp-of-append
        (equal (pseudo-termfn-listp (append a b))
               (and (pseudo-termfn-listp (list-fix a))
                    (pseudo-termfn-listp b)))
        :rule-classes ((:rewrite)))

      Theorem: pseudo-termfn-listp-of-rcons

      (defthm pseudo-termfn-listp-of-rcons
        (iff (pseudo-termfn-listp (rcons a x))
             (and (pseudo-termfnp a)
                  (pseudo-termfn-listp (list-fix x))))
        :rule-classes ((:rewrite)))

      Theorem: pseudo-termfnp-when-member-equal-of-pseudo-termfn-listp

      (defthm pseudo-termfnp-when-member-equal-of-pseudo-termfn-listp
        (and (implies (and (member-equal a x)
                           (pseudo-termfn-listp x))
                      (pseudo-termfnp a))
             (implies (and (pseudo-termfn-listp x)
                           (member-equal a x))
                      (pseudo-termfnp a)))
        :rule-classes ((:rewrite)))

      Theorem: pseudo-termfn-listp-when-subsetp-equal

      (defthm pseudo-termfn-listp-when-subsetp-equal
        (and (implies (and (subsetp-equal x y)
                           (pseudo-termfn-listp y))
                      (equal (pseudo-termfn-listp x)
                             (true-listp x)))
             (implies (and (pseudo-termfn-listp y)
                           (subsetp-equal x y))
                      (equal (pseudo-termfn-listp x)
                             (true-listp x))))
        :rule-classes ((:rewrite)))

      Theorem: pseudo-termfn-listp-of-set-difference-equal

      (defthm pseudo-termfn-listp-of-set-difference-equal
        (implies (pseudo-termfn-listp x)
                 (pseudo-termfn-listp (set-difference-equal x y)))
        :rule-classes ((:rewrite)))

      Theorem: pseudo-termfn-listp-of-intersection-equal-1

      (defthm pseudo-termfn-listp-of-intersection-equal-1
        (implies (pseudo-termfn-listp (double-rewrite x))
                 (pseudo-termfn-listp (intersection-equal x y)))
        :rule-classes ((:rewrite)))

      Theorem: pseudo-termfn-listp-of-intersection-equal-2

      (defthm pseudo-termfn-listp-of-intersection-equal-2
        (implies (pseudo-termfn-listp (double-rewrite y))
                 (pseudo-termfn-listp (intersection-equal x y)))
        :rule-classes ((:rewrite)))

      Theorem: pseudo-termfn-listp-of-union-equal

      (defthm pseudo-termfn-listp-of-union-equal
        (equal (pseudo-termfn-listp (union-equal x y))
               (and (pseudo-termfn-listp (list-fix x))
                    (pseudo-termfn-listp (double-rewrite y))))
        :rule-classes ((:rewrite)))

      Theorem: pseudo-termfn-listp-of-take

      (defthm pseudo-termfn-listp-of-take
        (implies (pseudo-termfn-listp (double-rewrite x))
                 (iff (pseudo-termfn-listp (take n x))
                      (or (pseudo-termfnp nil)
                          (<= (nfix n) (len x)))))
        :rule-classes ((:rewrite)))

      Theorem: pseudo-termfn-listp-of-repeat

      (defthm pseudo-termfn-listp-of-repeat
        (iff (pseudo-termfn-listp (repeat n x))
             (or (pseudo-termfnp x) (zp n)))
        :rule-classes ((:rewrite)))

      Theorem: pseudo-termfnp-of-nth-when-pseudo-termfn-listp

      (defthm pseudo-termfnp-of-nth-when-pseudo-termfn-listp
        (implies (pseudo-termfn-listp x)
                 (pseudo-termfnp (nth n x)))
        :rule-classes ((:rewrite)))

      Theorem: pseudo-termfn-listp-of-update-nth

      (defthm pseudo-termfn-listp-of-update-nth
        (implies (pseudo-termfn-listp (double-rewrite x))
                 (iff (pseudo-termfn-listp (update-nth n y x))
                      (and (pseudo-termfnp y)
                           (or (<= (nfix n) (len x))
                               (pseudo-termfnp nil)))))
        :rule-classes ((:rewrite)))

      Theorem: pseudo-termfn-listp-of-butlast

      (defthm pseudo-termfn-listp-of-butlast
        (implies (pseudo-termfn-listp (double-rewrite x))
                 (pseudo-termfn-listp (butlast x n)))
        :rule-classes ((:rewrite)))

      Theorem: pseudo-termfn-listp-of-nthcdr

      (defthm pseudo-termfn-listp-of-nthcdr
        (implies (pseudo-termfn-listp (double-rewrite x))
                 (pseudo-termfn-listp (nthcdr n x)))
        :rule-classes ((:rewrite)))

      Theorem: pseudo-termfn-listp-of-last

      (defthm pseudo-termfn-listp-of-last
        (implies (pseudo-termfn-listp (double-rewrite x))
                 (pseudo-termfn-listp (last x)))
        :rule-classes ((:rewrite)))

      Theorem: pseudo-termfn-listp-of-remove

      (defthm pseudo-termfn-listp-of-remove
        (implies (pseudo-termfn-listp x)
                 (pseudo-termfn-listp (remove a x)))
        :rule-classes ((:rewrite)))

      Theorem: pseudo-termfn-listp-of-revappend

      (defthm pseudo-termfn-listp-of-revappend
        (equal (pseudo-termfn-listp (revappend x y))
               (and (pseudo-termfn-listp (list-fix x))
                    (pseudo-termfn-listp y)))
        :rule-classes ((:rewrite)))