Basic constructor macro for renaming structures.
(make-renaming [:list <list>])
This is the usual way to construct renaming structures. It simply conses together a structure with the specified fields.
This macro generates a new renaming structure from scratch. See also change-renaming, which can "change" an existing structure, instead.
This is an ordinary
Macro:
(defmacro make-renaming (&rest args) (std::make-aggregate 'renaming args '((:list)) 'make-renaming nil))
Function:
(defun renaming (list) (declare (xargs :guard (identifier-identifier-alistp list))) (declare (xargs :guard (and (no-duplicatesp-equal (strip-cars list)) (no-duplicatesp-equal (strip-cdrs list))))) (let ((__function__ 'renaming)) (declare (ignorable __function__)) (b* ((list (mbe :logic (identifier-identifier-alist-fix list) :exec list))) (let ((list (mbe :logic (if (and (no-duplicatesp-equal (strip-cars list)) (no-duplicatesp-equal (strip-cdrs list))) list nil) :exec list))) (list (cons 'list list))))))