(vl-namefactory-p x) returns a list of all names that are considered to be used by the name factory.
(vl-namefactory-allnames factory) → names
This function is not particularly efficient, and probably should not ordinarily be executed in real programs. Its main purpose is to establish the freshness guarantee for name factories, described in vl-namefactory-p.
Function:
(defun vl-namefactory-allnames (factory) (declare (xargs :guard (vl-namefactory-p factory))) (let ((__function__ 'vl-namefactory-allnames)) (declare (ignorable __function__)) (mbe :logic (vl-namedb-allnames (vl-namefactory->namedb (vl-namefactory-maybe-initialize factory))) :exec (let ((mod (vl-namefactory->mod factory)) (namedb (vl-namefactory->namedb factory))) (cond ((vl-namedb->names namedb) (vl-namedb-allnames namedb)) (mod (vl-module->modnamespace mod)) (t nil))))))
Theorem:
(defthm string-listp-of-vl-namefactory-allnames (b* ((names (vl-namefactory-allnames factory))) (string-listp names)) :rule-classes :rewrite)
Theorem:
(defthm vl-namefactory-allnames-of-vl-namefactory-maybe-initialize (equal (vl-namefactory-allnames (vl-namefactory-maybe-initialize factory)) (vl-namefactory-allnames factory)))
Theorem:
(defthm vl-namefactory-allnames-of-vl-namefactory-fix-factory (equal (vl-namefactory-allnames (vl-namefactory-fix factory)) (vl-namefactory-allnames factory)))
Theorem:
(defthm vl-namefactory-allnames-vl-namefactory-equiv-congruence-on-factory (implies (vl-namefactory-equiv factory factory-equiv) (equal (vl-namefactory-allnames factory) (vl-namefactory-allnames factory-equiv))) :rule-classes :congruence)