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