• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Projects
    • Debugging
    • Community
    • Std
    • Proof-automation
    • Macro-libraries
    • ACL2
    • Interfacing-tools
    • Hardware-verification
    • Software-verification
      • Kestrel-books
        • Crypto-hdwallet
        • Apt
        • Error-checking
        • Fty-extensions
          • Defbyte
            • Defbytelist
              • Defbytelist-standard-instances
                • Ubyte8-list
                • Ubyte4-list
                • Ubyte32-list
                • Ubyte256-list
                • Ubyte128-list
                • Ubyte64-list
                • Ubyte3-list
                • Ubyte2-list
                • Ubyte16-list
                • Ubyte11-list
                • Ubyte1-list
                • Sbyte8-list
                • Sbyte64-list
                • Sbyte4-list
                • Sbyte32-list
                • Sbyte3-list
                • Sbyte256-list
                  • Sbyte256-list-fix
                  • Sbyte256-list-equiv
                  • Sbyte256-listp
                    • Sbyte256-listp-basics
                  • Sbyte2-list
                  • Sbyte16-list
                  • Sbyte128-list
                  • Sbyte1-list
                  • Defubytelist
                  • Defsbytelist
                • Defbytelist-implementation
              • Defbyte-standard-instances
              • Defbyte-ihs-theorems
              • Defbyte-implementation
            • Defresult
            • Fold
            • Specific-types
            • Defsubtype
            • Defset
            • Defflatsum
            • Deflist-of-len
            • Pos-list
            • Defomap
            • Defbytelist
              • Defbytelist-standard-instances
                • Ubyte8-list
                • Ubyte4-list
                • Ubyte32-list
                • Ubyte256-list
                • Ubyte128-list
                • Ubyte64-list
                • Ubyte3-list
                • Ubyte2-list
                • Ubyte16-list
                • Ubyte11-list
                • Ubyte1-list
                • Sbyte8-list
                • Sbyte64-list
                • Sbyte4-list
                • Sbyte32-list
                • Sbyte3-list
                • Sbyte256-list
                  • Sbyte256-list-fix
                  • Sbyte256-list-equiv
                  • Sbyte256-listp
                    • Sbyte256-listp-basics
                  • Sbyte2-list
                  • Sbyte16-list
                  • Sbyte128-list
                  • Sbyte1-list
                  • Defubytelist
                  • Defsbytelist
                • Defbytelist-implementation
              • Defbyte-standard-instances
              • Deffixtype-alias
              • Defbytelist-standard-instances
                • Ubyte8-list
                • Ubyte4-list
                • Ubyte32-list
                • Ubyte256-list
                • Ubyte128-list
                • Ubyte64-list
                • Ubyte3-list
                • Ubyte2-list
                • Ubyte16-list
                • Ubyte11-list
                • Ubyte1-list
                • Sbyte8-list
                • Sbyte64-list
                • Sbyte4-list
                • Sbyte32-list
                • Sbyte3-list
                • Sbyte256-list
                  • Sbyte256-list-fix
                  • Sbyte256-list-equiv
                  • Sbyte256-listp
                    • Sbyte256-listp-basics
                  • Sbyte2-list
                  • Sbyte16-list
                  • Sbyte128-list
                  • Sbyte1-list
                  • Defubytelist
                  • Defsbytelist
                • Defunit
                • Byte-list
                • Database
                • Byte
                • String-option
                • Pos-option
                • Nibble
                • Nat-option
                • Ubyte32-option
                • Byte-list20
                • Byte-list32
                • Byte-list64
                • Pseudo-event-form
                • Natoption/natoptionlist
                • Nati
                • Character-list
                • Nat/natlist
                • Maybe-string
                • Nibble-list
                • Natoption/natoptionlist-result
                • Nat/natlist-result
                • Nat-option-list-result
                • Set
                • String-result
                • String-list-result
                • Nat-result
                • Nat-option-result
                • Nat-list-result
                • Maybe-string-result
                • Integer-result
                • Character-result
                • Character-list-result
                • Boolean-result
                • Map
                • Dependencies
                • Bag
                • Pos-set
                • Hex-digit-char-list
                • Dec-digit-char-list
                • Pseudo-event-form-list
                • Nat-option-list
                • Character-any-map
                • Any-nat-map
                • Symbol-set
                • String-set
                • Nat-set
                • Character-set
                • Oct-digit-char-list
                • Bin-digit-char-list
                • Bit-list
              • Isar
              • Kestrel-utilities
              • Set
              • C
              • Soft
              • Bv
              • Imp-language
              • Ethereum
              • Event-macros
              • Java
              • Riscv
              • Bitcoin
              • Zcash
              • Yul
              • ACL2-programming-language
              • Prime-fields
              • Json
              • Syntheto
              • File-io-light
              • Cryptography
              • Number-theory
              • Axe
              • Lists-light
              • Builtins
              • Solidity
              • Helpers
              • Htclient
              • Typed-lists-light
              • Arithmetic-light
            • X86isa
            • Axe
            • Execloader
          • Math
          • Testing-utilities
        • Sbyte256-listp

        Sbyte256-listp-basics

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

        Definitions and Theorems

        Theorem: sbyte256-listp-of-cons

        (defthm sbyte256-listp-of-cons
          (equal (sbyte256-listp (cons a x))
                 (and (sbyte256p a) (sbyte256-listp x)))
          :rule-classes ((:rewrite)))

        Theorem: sbyte256-listp-of-cdr-when-sbyte256-listp

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

        Theorem: sbyte256-listp-when-not-consp

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

        Theorem: sbyte256p-of-car-when-sbyte256-listp

        (defthm sbyte256p-of-car-when-sbyte256-listp
          (implies (sbyte256-listp x)
                   (iff (sbyte256p (car x)) (consp x)))
          :rule-classes ((:rewrite)))

        Theorem: true-listp-when-sbyte256-listp-compound-recognizer

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

        Theorem: sbyte256-listp-of-list-fix

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

        Theorem: sbyte256-listp-of-sfix

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

        Theorem: sbyte256-listp-of-insert

        (defthm sbyte256-listp-of-insert
          (iff (sbyte256-listp (set::insert a x))
               (and (sbyte256-listp (set::sfix x))
                    (sbyte256p a)))
          :rule-classes ((:rewrite)))

        Theorem: sbyte256-listp-of-delete

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

        Theorem: sbyte256-listp-of-mergesort

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

        Theorem: sbyte256-listp-of-union

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

        Theorem: sbyte256-listp-of-intersect-1

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

        Theorem: sbyte256-listp-of-intersect-2

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

        Theorem: sbyte256-listp-of-difference

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

        Theorem: sbyte256-listp-of-duplicated-members

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

        Theorem: sbyte256-listp-of-rev

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

        Theorem: sbyte256-listp-of-append

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

        Theorem: sbyte256-listp-of-rcons

        (defthm sbyte256-listp-of-rcons
          (iff (sbyte256-listp (rcons a x))
               (and (sbyte256p a)
                    (sbyte256-listp (list-fix x))))
          :rule-classes ((:rewrite)))

        Theorem: sbyte256p-when-member-equal-of-sbyte256-listp

        (defthm sbyte256p-when-member-equal-of-sbyte256-listp
          (and (implies (and (member-equal a x)
                             (sbyte256-listp x))
                        (sbyte256p a))
               (implies (and (sbyte256-listp x)
                             (member-equal a x))
                        (sbyte256p a)))
          :rule-classes ((:rewrite)))

        Theorem: sbyte256-listp-when-subsetp-equal

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

        Theorem: sbyte256-listp-of-set-difference-equal

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

        Theorem: sbyte256-listp-of-intersection-equal-1

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

        Theorem: sbyte256-listp-of-intersection-equal-2

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

        Theorem: sbyte256-listp-of-union-equal

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

        Theorem: sbyte256-listp-of-take

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

        Theorem: sbyte256-listp-of-repeat

        (defthm sbyte256-listp-of-repeat
          (iff (sbyte256-listp (repeat n x))
               (or (sbyte256p x) (zp n)))
          :rule-classes ((:rewrite)))

        Theorem: sbyte256p-of-nth-when-sbyte256-listp

        (defthm sbyte256p-of-nth-when-sbyte256-listp
          (implies (sbyte256-listp x)
                   (iff (sbyte256p (nth n x))
                        (< (nfix n) (len x))))
          :rule-classes ((:rewrite)))

        Theorem: sbyte256-listp-of-update-nth

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

        Theorem: sbyte256-listp-of-butlast

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

        Theorem: sbyte256-listp-of-nthcdr

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

        Theorem: sbyte256-listp-of-last

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

        Theorem: sbyte256-listp-of-remove

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

        Theorem: sbyte256-listp-of-revappend

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