Converts a hierarchical identifier expression into a string like
Function:
(defun vl-flatten-hidexpr (x) (declare (xargs :guard (vl-expr-p x))) (declare (xargs :guard (and (vl-hidexpr-p x) (vl-hidexpr-resolved-p x)))) (let ((__function__ 'vl-flatten-hidexpr)) (declare (ignorable __function__)) (if (vl-hidexpr->endp x) (vl-hidname->name x) (cat (vl-flatten-hidindex (vl-hidexpr->first x)) "." (vl-flatten-hidexpr (vl-hidexpr->rest x))))))
Theorem:
(defthm stringp-of-vl-flatten-hidexpr (b* ((flat-string (vl-flatten-hidexpr x))) (stringp flat-string)) :rule-classes :type-prescription)
Theorem:
(defthm vl-flatten-hidexpr-of-vl-expr-fix-x (equal (vl-flatten-hidexpr (vl-expr-fix x)) (vl-flatten-hidexpr x)))
Theorem:
(defthm vl-flatten-hidexpr-vl-expr-equiv-congruence-on-x (implies (vl-expr-equiv x x-equiv) (equal (vl-flatten-hidexpr x) (vl-flatten-hidexpr x-equiv))) :rule-classes :congruence)