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