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