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