(vl-namefactory-plain-name name factory) returns
(vl-namefactory-plain-name name factory) → (mv fresh-name new-factory)
Function:
(defun vl-namefactory-plain-name (name factory) (declare (xargs :guard (and (stringp name) (vl-namefactory-p factory)))) (let ((__function__ 'vl-namefactory-plain-name)) (declare (ignorable __function__)) (b* ((factory (vl-namefactory-maybe-initialize factory)) ((mv newname db-prime) (vl-namedb-plain-name name (vl-namefactory->namedb factory))) (factory (change-vl-namefactory factory :namedb db-prime))) (mv newname factory))))
Theorem:
(defthm stringp-of-vl-namefactory-plain-name.fresh-name (b* (((mv ?fresh-name ?new-factory) (vl-namefactory-plain-name name factory))) (stringp fresh-name)) :rule-classes :type-prescription)
Theorem:
(defthm vl-namefactory-p-of-vl-namefactory-plain-name.new-factory (b* (((mv ?fresh-name ?new-factory) (vl-namefactory-plain-name name factory))) (vl-namefactory-p new-factory)) :rule-classes :rewrite)
Theorem:
(defthm vl-namefactory-allnames-of-vl-namefactory-plain-name (b* (((mv fresh-name new-factory) (vl-namefactory-plain-name name factory))) (equal (vl-namefactory-allnames new-factory) (cons fresh-name (vl-namefactory-allnames factory)))))
Theorem:
(defthm vl-namefactory-plain-name-is-fresh (b* (((mv fresh-name ?new-factory) (vl-namefactory-plain-name name factory))) (not (member-equal fresh-name (vl-namefactory-allnames factory)))))
Theorem:
(defthm vl-namefactory-plain-name-of-str-fix-name (equal (vl-namefactory-plain-name (str-fix name) factory) (vl-namefactory-plain-name name factory)))
Theorem:
(defthm vl-namefactory-plain-name-streqv-congruence-on-name (implies (streqv name name-equiv) (equal (vl-namefactory-plain-name name factory) (vl-namefactory-plain-name name-equiv factory))) :rule-classes :congruence)
Theorem:
(defthm vl-namefactory-plain-name-of-vl-namefactory-fix-factory (equal (vl-namefactory-plain-name name (vl-namefactory-fix factory)) (vl-namefactory-plain-name name factory)))
Theorem:
(defthm vl-namefactory-plain-name-vl-namefactory-equiv-congruence-on-factory (implies (vl-namefactory-equiv factory factory-equiv) (equal (vl-namefactory-plain-name name factory) (vl-namefactory-plain-name name factory-equiv))) :rule-classes :congruence)