(lhs-eval x env) → val
Function:
(defun lhs-eval (x env) (declare (xargs :guard (and (lhs-p x) (svex-env-p env)))) (let ((__function__ 'lhs-eval)) (declare (ignorable __function__)) (if (atom x) (4vec-z) (4vec-concat (2vec (lhrange->w (car x))) (lhrange-eval (car x) env) (lhs-eval (cdr x) env)))))
Theorem:
(defthm 4vec-p-of-lhs-eval (b* ((val (lhs-eval x env))) (4vec-p val)) :rule-classes :rewrite)
Theorem:
(defthm lhs-eval-of-lhs-fix-x (equal (lhs-eval (lhs-fix x) env) (lhs-eval x env)))
Theorem:
(defthm lhs-eval-lhs-equiv-congruence-on-x (implies (lhs-equiv x x-equiv) (equal (lhs-eval x env) (lhs-eval x-equiv env))) :rule-classes :congruence)
Theorem:
(defthm lhs-eval-of-svex-env-fix-env (equal (lhs-eval x (svex-env-fix env)) (lhs-eval x env)))
Theorem:
(defthm lhs-eval-svex-env-equiv-congruence-on-env (implies (svex-env-equiv env env-equiv) (equal (lhs-eval x env) (lhs-eval x env-equiv))) :rule-classes :congruence)