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