• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Projects
    • Debugging
    • Std
    • Community
    • Proof-automation
    • Macro-libraries
    • ACL2
    • Interfacing-tools
    • Hardware-verification
      • Gl
      • Esim
      • Vl2014
      • Sv
        • Svex-stvs
        • Svex-decomposition-methodology
        • Sv-versus-esim
        • Svex-decomp
        • Svex-compose-dfs
        • Svex-compilation
        • Moddb
        • Svmods
        • Svstmt
        • Sv-tutorial
        • Expressions
          • Rewriting
          • Svex
          • Bit-blasting
          • Functions
          • 4vmask
          • Why-infinite-width
          • Svex-vars
          • Evaluation
          • Values
            • 4vec
            • 4vec-<<=
              • 4vec-monotonicity
              • Svex-monotonify
                • Svex-fn/args-monotonify
                • Svexlist-monotonify
                • Svex-call-monotonify
              • Svex-alist-partial-monotonic
              • Svex-alist-monotonic-on-vars
              • 4veclist-<<=
              • Svexlist-partial-monotonic
              • Svex-partial-monotonic
              • Svex-alist-<<=
              • Svex-alist-ovmonotonic
              • Svexlist-<<=
              • Svex-env-<<=
              • Svex-alist-ovcongruent
              • Svex-alist-monotonic-p
              • Svexlist-monotonic-on-vars
              • Svex-monotonic-on-vars
              • Svex-<<=
              • Svexlist-monotonic-p
              • 4vec-xfree-p
              • Svex-apply-monotonocity
              • Svexlist-ovmonotonic
              • Svexlist-ovcongruent
              • Svex-ovmonotonic
              • Svex-monotonic-p
            • 3vec
            • 2vec
            • 2vecx
            • 2vecnatx
            • 4vec-x
            • 4vec-1x
            • 4vec-1z
            • 4vec-z
        • Symbolic-test-vector
        • Vl-to-svex
      • Fgl
      • Vwsim
      • Vl
      • X86isa
      • Svl
      • Rtl
    • Software-verification
    • Math
    • Testing-utilities
  • 4vec-<<=

Svex-monotonify

Signature
(svex-monotonify x) → new-x
Arguments
x — Guard (svex-p x).
Returns
new-x — Type (svex-p new-x).

Theorem: return-type-of-svex-monotonify.new-x

(defthm return-type-of-svex-monotonify.new-x
  (b* ((?new-x (svex-monotonify x)))
    (svex-p new-x))
  :rule-classes :rewrite)

Theorem: return-type-of-svex-call-monotonify.new-x

(defthm return-type-of-svex-call-monotonify.new-x
  (b* ((?new-x (svex-call-monotonify x)))
    (svex-p new-x))
  :rule-classes :rewrite)

Theorem: return-type-of-svex-fn/args-monotonify.new-x

(defthm return-type-of-svex-fn/args-monotonify.new-x
  (b* ((?new-x (svex-fn/args-monotonify fn args)))
    (svex-p new-x))
  :rule-classes :rewrite)

Theorem: return-type-of-svexlist-monotonify.new-x

(defthm return-type-of-svexlist-monotonify.new-x
  (b* ((?new-x (svexlist-monotonify x)))
    (svexlist-p new-x))
  :rule-classes :rewrite)

Theorem: len-of-svexlist-monotonify

(defthm len-of-svexlist-monotonify
  (b* ((?new-x (svexlist-monotonify x)))
    (equal (len new-x) (len x))))

Theorem: svex-monotonify-correct

(defthm svex-monotonify-correct
  (b* ((?new-x (svex-monotonify x)))
    (equal (svex-eval new-x env)
           (svex-mono-eval x env))))

Theorem: svex-call-monotonify-correct

(defthm svex-call-monotonify-correct
  (b* ((?new-x (svex-call-monotonify x)))
    (equal (svex-eval new-x env)
           (svex-call-mono-eval x env))))

Theorem: svex-fn/args-monotonify-correct

(defthm svex-fn/args-monotonify-correct
  (b* ((?new-x (svex-fn/args-monotonify fn args)))
    (equal (svex-eval new-x env)
           (svex-fn/args-mono-eval fn args env))))

Theorem: svexlist-monotonify-correct

(defthm svexlist-monotonify-correct
  (b* ((?new-x (svexlist-monotonify x)))
    (equal (svexlist-eval new-x env)
           (svexlist-mono-eval x env))))

Theorem: svex-monotonify-check-monotonic

(defthm svex-monotonify-check-monotonic
  (b* ((?new-x (svex-monotonify x)))
    (svex-check-monotonic new-x)))

Theorem: svex-call-monotonify-check-monotonic

(defthm svex-call-monotonify-check-monotonic
  (b* ((?new-x (svex-call-monotonify x)))
    (svex-check-monotonic new-x)))

Theorem: svex-fn/args-monotonify-check-monotonic

(defthm svex-fn/args-monotonify-check-monotonic
  (b* ((?new-x (svex-fn/args-monotonify fn args)))
    (svex-check-monotonic new-x)))

Theorem: svexlist-monotonify-check-monotonic

(defthm svexlist-monotonify-check-monotonic
  (b* ((?new-x (svexlist-monotonify x)))
    (svexlist-check-monotonic new-x)))

Theorem: vars-of-svex-monotonify

(defthm vars-of-svex-monotonify
  (b* ((?new-x (svex-monotonify x)))
    (implies (not (member-equal v (svex-vars x)))
             (not (member-equal v (svex-vars new-x))))))

Theorem: vars-of-svex-call-monotonify

(defthm vars-of-svex-call-monotonify
  (b* ((?new-x (svex-call-monotonify x)))
    (implies (not (member-equal v (svex-vars x)))
             (not (member-equal v (svex-vars new-x))))))

Theorem: vars-of-svex-fn/args-monotonify

(defthm vars-of-svex-fn/args-monotonify
  (b* ((?new-x (svex-fn/args-monotonify fn args)))
    (implies (not (member-equal v (svexlist-vars args)))
             (not (member-equal v (svex-vars new-x))))))

Theorem: vars-of-svexlist-monotonify

(defthm vars-of-svexlist-monotonify
  (b* ((?new-x (svexlist-monotonify x)))
    (implies (not (member-equal v (svexlist-vars x)))
             (not (member-equal v (svexlist-vars new-x))))))

Theorem: svex-monotonify-of-svex-fix-x

(defthm svex-monotonify-of-svex-fix-x
  (equal (svex-monotonify (svex-fix x))
         (svex-monotonify x)))

Theorem: svex-call-monotonify-of-svex-fix-x

(defthm svex-call-monotonify-of-svex-fix-x
  (equal (svex-call-monotonify (svex-fix x))
         (svex-call-monotonify x)))

Theorem: svex-fn/args-monotonify-of-fnsym-fix-fn

(defthm svex-fn/args-monotonify-of-fnsym-fix-fn
  (equal (svex-fn/args-monotonify (fnsym-fix fn)
                                  args)
         (svex-fn/args-monotonify fn args)))

Theorem: svex-fn/args-monotonify-of-svexlist-fix-args

(defthm svex-fn/args-monotonify-of-svexlist-fix-args
  (equal (svex-fn/args-monotonify fn (svexlist-fix args))
         (svex-fn/args-monotonify fn args)))

Theorem: svexlist-monotonify-of-svexlist-fix-x

(defthm svexlist-monotonify-of-svexlist-fix-x
  (equal (svexlist-monotonify (svexlist-fix x))
         (svexlist-monotonify x)))

Theorem: svex-monotonify-svex-equiv-congruence-on-x

(defthm svex-monotonify-svex-equiv-congruence-on-x
  (implies (svex-equiv x x-equiv)
           (equal (svex-monotonify x)
                  (svex-monotonify x-equiv)))
  :rule-classes :congruence)

Theorem: svex-call-monotonify-svex-equiv-congruence-on-x

(defthm svex-call-monotonify-svex-equiv-congruence-on-x
  (implies (svex-equiv x x-equiv)
           (equal (svex-call-monotonify x)
                  (svex-call-monotonify x-equiv)))
  :rule-classes :congruence)

Theorem: svex-fn/args-monotonify-fnsym-equiv-congruence-on-fn

(defthm svex-fn/args-monotonify-fnsym-equiv-congruence-on-fn
  (implies (fnsym-equiv fn fn-equiv)
           (equal (svex-fn/args-monotonify fn args)
                  (svex-fn/args-monotonify fn-equiv args)))
  :rule-classes :congruence)

Theorem: svex-fn/args-monotonify-svexlist-equiv-congruence-on-args

(defthm svex-fn/args-monotonify-svexlist-equiv-congruence-on-args
  (implies (svexlist-equiv args args-equiv)
           (equal (svex-fn/args-monotonify fn args)
                  (svex-fn/args-monotonify fn args-equiv)))
  :rule-classes :congruence)

Theorem: svexlist-monotonify-svexlist-equiv-congruence-on-x

(defthm svexlist-monotonify-svexlist-equiv-congruence-on-x
  (implies (svexlist-equiv x x-equiv)
           (equal (svexlist-monotonify x)
                  (svexlist-monotonify x-equiv)))
  :rule-classes :congruence)

Subtopics

Svex-fn/args-monotonify
Svexlist-monotonify
Svex-call-monotonify