Evaluator for an lhprobe with respect to an envlist giving the values of signals over time.
(lhprobe-eval x envs) → val
Function:
(defun lhprobe-eval (x envs) (declare (xargs :guard (and (lhprobe-p x) (svex-envlist-p envs)))) (let ((__function__ 'lhprobe-eval)) (declare (ignorable __function__)) (b* (((lhprobe x)) (env (nth x.stage envs))) (if x.signedp (lhs-eval-signx x.lhs env) (lhs-eval-zx x.lhs env)))))
Theorem:
(defthm 4vec-p-of-lhprobe-eval (b* ((val (lhprobe-eval x envs))) (4vec-p val)) :rule-classes :rewrite)
Theorem:
(defthm lhprobe-eval-of-take (implies (< (lhprobe->stage x) (nfix n)) (equal (lhprobe-eval x (take n envs)) (lhprobe-eval x envs))))
Theorem:
(defthm lhprobe-eval-of-lhprobe-fix-x (equal (lhprobe-eval (lhprobe-fix x) envs) (lhprobe-eval x envs)))
Theorem:
(defthm lhprobe-eval-lhprobe-equiv-congruence-on-x (implies (lhprobe-equiv x x-equiv) (equal (lhprobe-eval x envs) (lhprobe-eval x-equiv envs))) :rule-classes :congruence)
Theorem:
(defthm lhprobe-eval-of-svex-envlist-fix-envs (equal (lhprobe-eval x (svex-envlist-fix envs)) (lhprobe-eval x envs)))
Theorem:
(defthm lhprobe-eval-svex-envlist-equiv-congruence-on-envs (implies (svex-envlist-equiv envs envs-equiv) (equal (lhprobe-eval x envs) (lhprobe-eval x envs-equiv))) :rule-classes :congruence)