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