Basic constructor macro for svtv-evaldata structures.
(make-svtv-evaldata [:nextstate <nextstate>] [:inputs <inputs>] [:initst <initst>])
This is the usual way to construct svtv-evaldata structures. It simply conses together a structure with the specified fields.
This macro generates a new svtv-evaldata structure from scratch. See also change-svtv-evaldata, which can "change" an existing structure, instead.
This is an ordinary
Macro:
(defmacro make-svtv-evaldata (&rest args) (std::make-aggregate 'svtv-evaldata args '((:nextstate) (:inputs) (:initst)) 'make-svtv-evaldata nil))
Function:
(defun svtv-evaldata (nextstate inputs initst) (declare (xargs :guard (and (svex-alist-p nextstate) (svex-envlist-p inputs) (svex-env-p initst)))) (declare (xargs :guard t)) (let ((__function__ 'svtv-evaldata)) (declare (ignorable __function__)) (b* ((nextstate (mbe :logic (svex-alist-fix nextstate) :exec nextstate)) (inputs (mbe :logic (svex-envlist-fix inputs) :exec inputs)) (initst (mbe :logic (svex-env-fix initst) :exec initst))) (cons nextstate (cons inputs initst)))))