• Top
    • Documentation
    • Books
    • Recursion-and-induction
    • Boolean-reasoning
    • Debugging
    • Projects
    • Std
    • Proof-automation
    • Macro-libraries
    • ACL2
    • Interfacing-tools
    • Hardware-verification
      • Gl
      • Esim
      • Vl2014
      • Sv
        • Svex-stvs
        • Svex-fixpoint-decomposition-methodology
        • Sv-versus-esim
        • Svex-decomp
        • Svex-compose-dfs
        • Moddb
        • Svex-compilation
        • Svmods
          • Address
          • Wire
          • Module
          • Lhs
            • Lhs.lisp
              • Lhs-vars-normorderedp
              • Lhs-norm
              • Lhatom-normorderedp
              • Lhs-normp
              • Svex-lhsrewrite-aux
              • Lhs-concat
              • Lhrange-combine
              • Lhs-check-masks
              • Svexarr-vars-aux
              • Assigns-check-masks
              • Svex->lhs-range
              • Svarlist-boundedp-badguy
              • Svex-lhs-preproc-blkrev
              • Driverlist-rest-after-strength
              • Lhs-rsh
              • Lhs-cons
              • Lhs-bitproj
              • Aliases-normorderedp
              • Svarlist-boundedp
                • Svarlist-boundedp-basics
              • Lhs-vars
              • Assigns->netassigns-aux
              • Netassigns->resolves
              • Make-simple-lhs
              • Lhs-first-aux
              • Lhrange-bitproj
              • Driver
              • Svex-override
              • Lhssvex-range-p
              • Lhs-rest-aux
              • Lhs-rest
              • Lhs-override
              • Lhrange-combinable-dec
              • Lhatom
              • Driverlist-values-of-strength
              • Aliases-normorderedp-aux
              • Svexarr-vars
              • Netassigns-vars
              • Lhsarr-to-svexarr
              • Svexarr-vars-witness-aux
              • Svex-lhsrewrite
              • Svar-boundedp
              • Lhbit
              • Lhs-decomp-aux
              • Svex->lhs-bound
              • Aliases-vars-aux
              • Svexarr-vars-witness
              • Svexarr
              • Svar-set-index
              • Lhsarr
              • Lhs-override-vars
              • Lhatom-bitproj
              • Lhrange-nextbit
              • Lhatom-eval-zero
              • Assigns->netassigns
              • Lhrange-combinable
              • Driverlist->svex
              • Lhs->svex-zero
              • Driverlist-vars
              • Svexlist-resolve
              • Lhssvex-bounded-p
              • Lhslist-vars
              • Lhs-overridelist-vars
              • Lhs-overridelist-keys
              • Lhs-decomp
              • Lhbit-eval
              • Assigns-vars
              • Svex-int
              • Lhatom-vars
              • Aliases-vars
              • Svar-map-vars
              • Netassigns->resolves-nrev
              • Lhssvex-unbounded-p
              • Lhspairs-vars
              • Lhs-width
              • Lhs-first
              • Svar-index
              • Assigns
              • Svar-indexedp
              • Netassigns
              • Lhspairs
              • Svex-overridelist
              • Lhslist
              • Lhs-overridelist
              • Driverlist
              • Svex-lhs-preproc
              • Svexarr-fix
              • Lhsarr-fix
            • Lhs-p
            • Lhs-fix
            • Lhrange
            • Lhs-eval-zero
            • Lhs-equiv
            • Lhs-eval
            • Lhs->svex
          • Svar-add-namespace
          • Path
          • Design
          • Modinst
          • Lhs-add-namespace
          • Modalist
          • Path-add-namespace
          • Modname->submodnames
          • Name
          • Svex-alist-addr-p
          • Constraintlist-addr-p
          • Svar-map-addr-p
          • Lhspairs-addr-p
          • Assigns-addr-p
          • Modname
          • Lhs-addr-p
          • Lhatom-addr-p
          • Modhier-measure
          • Modhier-list-measure
          • Attributes
          • Modhier-list-measure-aux
          • Modhier-loopfreelist-p
          • Modhier-loopfree-p
        • Svstmt
        • Sv-tutorial
        • Expressions
        • Symbolic-test-vector
        • Vl-to-svex
      • Fgl
      • Vl
      • X86isa
      • Svl
      • Rtl
    • Software-verification
    • Testing-utilities
    • Math
  • Lhs.lisp

Svarlist-boundedp

(svarlist-boundedp x bound) recognizes lists where every element satisfies svar-boundedp.

Signature
(svarlist-boundedp x bound) → std::bool

This is an ordinary std::deflist. It is "loose" in that it does not care whether x is nil-terminated.

Definitions and Theorems

Function: svarlist-boundedp

(defun svarlist-boundedp (x bound)
       (declare (xargs :guard (and (svarlist-p x) (natp bound))))
       (let ((__function__ 'svarlist-boundedp))
            (declare (ignorable __function__))
            (if (consp x)
                (and (svar-boundedp (car x) bound)
                     (svarlist-boundedp (cdr x) bound))
                t)))

Theorem: svarlist-boundedp-of-svarlist-fix-x

(defthm svarlist-boundedp-of-svarlist-fix-x
        (equal (svarlist-boundedp (svarlist-fix x)
                                  bound)
               (svarlist-boundedp x bound)))

Theorem: svarlist-boundedp-svarlist-equiv-congruence-on-x

(defthm svarlist-boundedp-svarlist-equiv-congruence-on-x
        (implies (svarlist-equiv x x-equiv)
                 (equal (svarlist-boundedp x bound)
                        (svarlist-boundedp x-equiv bound)))
        :rule-classes :congruence)

Theorem: svarlist-boundedp-of-nfix-bound

(defthm svarlist-boundedp-of-nfix-bound
        (equal (svarlist-boundedp x (nfix bound))
               (svarlist-boundedp x bound)))

Theorem: svarlist-boundedp-nat-equiv-congruence-on-bound

(defthm svarlist-boundedp-nat-equiv-congruence-on-bound
        (implies (nat-equiv bound bound-equiv)
                 (equal (svarlist-boundedp x bound)
                        (svarlist-boundedp x bound-equiv)))
        :rule-classes :congruence)

Theorem: svarlist-boundedp-of-greater

(defthm svarlist-boundedp-of-greater
        (implies (and (svarlist-boundedp x bound1)
                      (<= (nfix bound1) (nfix bound2)))
                 (svarlist-boundedp x bound2)))

Subtopics

Svarlist-boundedp-basics
Basic theorems about svarlist-boundedp, generated by std::deflist.