Create a fresh unique identifier.
This simply increments the numerical value of the unique identifier.
Function:
(defun uid-increment (uid) (declare (xargs :guard (uidp uid))) (b* (((uid uid) uid)) (uid (1+ uid.uid))))
Theorem:
(defthm uidp-of-uid-increment (b* ((new-uid (uid-increment uid))) (uidp new-uid)) :rule-classes :rewrite)
Theorem:
(defthm uid-increment-of-uid-fix-uid (equal (uid-increment (uid-fix uid)) (uid-increment uid)))
Theorem:
(defthm uid-increment-uid-equiv-congruence-on-uid (implies (uid-equiv uid uid-equiv) (equal (uid-increment uid) (uid-increment uid-equiv))) :rule-classes :congruence)