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