Evaluate an svex in some s4vec environment.
(svex-s4eval x env) → val
Like svex-eval but uses s4vec operations instead of 4vec ones.
Theorem:
(defthm return-type-of-svex-s4eval.val (b* ((?val (svex-s4eval x env))) (s4vec-p val)) :rule-classes :rewrite)
Theorem:
(defthm return-type-of-svexlist-s4eval.vals (b* ((?vals (svexlist-s4eval x env))) (s4veclist-p vals)) :rule-classes :rewrite)
Function:
(defun svex-s4eval-memoize-condition (x env) (declare (ignorable x env) (xargs :guard (if (svex-p x) (svex-s4env-p env) 'nil))) (eq (svex-kind x) :call))
Theorem:
(defthm svex-s4eval-correct (b* ((?val (svex-s4eval x env))) (equal (s4vec->4vec val) (svex-eval x (svex-s4env->svex-env env)))))
Theorem:
(defthm svexlist-s4eval-correct (b* ((?vals (svexlist-s4eval x env))) (equal (s4veclist->4veclist vals) (svexlist-eval x (svex-s4env->svex-env env)))))