Get the fn field from a svex-call.
This is an ordinary field accessor created by defprod.
Function:
(defun svex-call->fn$inline (x) (declare (xargs :guard (svex-p x))) (declare (xargs :guard (equal (svex-kind x) :call))) (let ((__function__ 'svex-call->fn)) (declare (ignorable __function__)) (mbe :logic (b* ((x (and (equal (svex-kind x) :call) x))) (fnsym-fix (car x))) :exec (car x))))
Theorem:
(defthm fnsym-p-of-svex-call->fn (b* ((fn (svex-call->fn$inline x))) (fnsym-p fn)) :rule-classes :rewrite)
Theorem:
(defthm svex-call->fn$inline-of-svex-fix-x (equal (svex-call->fn$inline (svex-fix x)) (svex-call->fn$inline x)))
Theorem:
(defthm svex-call->fn$inline-svex-equiv-congruence-on-x (implies (svex-equiv x x-equiv) (equal (svex-call->fn$inline x) (svex-call->fn$inline x-equiv))) :rule-classes :congruence)
Theorem:
(defthm svex-call->fn-when-wrong-kind (implies (not (equal (svex-kind x) :call)) (equal (svex-call->fn x) (fnsym-fix nil))))