Theorem:
(defthm return-type-of-svex-monotonify.new-x (b* ((?new-x (svex-monotonify x))) (svex-p new-x)) :rule-classes :rewrite)
Theorem:
(defthm return-type-of-svex-call-monotonify.new-x (b* ((?new-x (svex-call-monotonify x))) (svex-p new-x)) :rule-classes :rewrite)
Theorem:
(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:
(defthm return-type-of-svexlist-monotonify.new-x (b* ((?new-x (svexlist-monotonify x))) (svexlist-p new-x)) :rule-classes :rewrite)
Theorem:
(defthm len-of-svexlist-monotonify (b* ((?new-x (svexlist-monotonify x))) (equal (len new-x) (len x))))
Theorem:
(defthm svex-monotonify-correct (b* ((?new-x (svex-monotonify x))) (equal (svex-eval new-x env) (svex-mono-eval x env))))
Theorem:
(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:
(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:
(defthm svexlist-monotonify-correct (b* ((?new-x (svexlist-monotonify x))) (equal (svexlist-eval new-x env) (svexlist-mono-eval x env))))
Theorem:
(defthm svex-monotonify-check-monotonic (b* ((?new-x (svex-monotonify x))) (svex-check-monotonic new-x)))
Theorem:
(defthm svex-call-monotonify-check-monotonic (b* ((?new-x (svex-call-monotonify x))) (svex-check-monotonic new-x)))
Theorem:
(defthm svex-fn/args-monotonify-check-monotonic (b* ((?new-x (svex-fn/args-monotonify fn args))) (svex-check-monotonic new-x)))
Theorem:
(defthm svexlist-monotonify-check-monotonic (b* ((?new-x (svexlist-monotonify x))) (svexlist-check-monotonic new-x)))
Theorem:
(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:
(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:
(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:
(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:
(defthm svex-monotonify-of-svex-fix-x (equal (svex-monotonify (svex-fix x)) (svex-monotonify x)))
Theorem:
(defthm svex-call-monotonify-of-svex-fix-x (equal (svex-call-monotonify (svex-fix x)) (svex-call-monotonify x)))
Theorem:
(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:
(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:
(defthm svexlist-monotonify-of-svexlist-fix-x (equal (svexlist-monotonify (svexlist-fix x)) (svexlist-monotonify x)))
Theorem:
(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:
(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:
(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:
(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:
(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)