(svex-norm-call fn args) → call
Function:
(defun svex-norm-call (fn args) (declare (xargs :guard (and (fnsym-p fn) (svexlist-p args)))) (let ((__function__ 'svex-norm-call)) (declare (ignorable __function__)) (if (svexlist-quotesp args) (svex-quote (svex-apply fn (svexlist-unquote args))) (svex-call fn args))))
Theorem:
(defthm svex-p-of-svex-norm-call (b* ((call (svex-norm-call fn args))) (svex-p call)) :rule-classes :rewrite)
Theorem:
(defthm svex-norm-call-correct (equal (svex-eval (svex-norm-call fn args) env) (svex-apply fn (svexlist-eval args env))))
Theorem:
(defthm vars-of-svex-norm-call (implies (not (member v (svexlist-vars args))) (not (member v (svex-vars (svex-norm-call fn args))))))
Theorem:
(defthm svex-norm-call-of-fnsym-fix-fn (equal (svex-norm-call (fnsym-fix fn) args) (svex-norm-call fn args)))
Theorem:
(defthm svex-norm-call-fnsym-equiv-congruence-on-fn (implies (fnsym-equiv fn fn-equiv) (equal (svex-norm-call fn args) (svex-norm-call fn-equiv args))) :rule-classes :congruence)
Theorem:
(defthm svex-norm-call-of-svexlist-fix-args (equal (svex-norm-call fn (svexlist-fix args)) (svex-norm-call fn args)))
Theorem:
(defthm svex-norm-call-svexlist-equiv-congruence-on-args (implies (svexlist-equiv args args-equiv) (equal (svex-norm-call fn args) (svex-norm-call fn args-equiv))) :rule-classes :congruence)