For instance,
Function:
(defun vl-hidindex->name (x) (declare (xargs :guard (vl-expr-p x))) (declare (xargs :guard (vl-hidindex-p x))) (let ((__function__ 'vl-hidindex->name)) (declare (ignorable __function__)) (b* (((when (vl-atom-p x)) (vl-hidname->name x)) ((vl-nonatom x) x)) (vl-hidindex->name (first x.args)))))
Theorem:
(defthm stringp-of-vl-hidindex->name (b* ((name (vl-hidindex->name x))) (stringp name)) :rule-classes :type-prescription)
Theorem:
(defthm vl-hidindex->name-of-vl-expr-fix-x (equal (vl-hidindex->name (vl-expr-fix x)) (vl-hidindex->name x)))
Theorem:
(defthm vl-hidindex->name-vl-expr-equiv-congruence-on-x (implies (vl-expr-equiv x x-equiv) (equal (vl-hidindex->name x) (vl-hidindex->name x-equiv))) :rule-classes :congruence)