(vl-remove-illegitimate-tnames x state) → (mv legitimate state)
Function:
(defun vl-remove-illegitimate-tnames (x state) (declare (xargs :stobjs (state))) (declare (xargs :guard (vl-tnamelist-p x))) (let ((__function__ 'vl-remove-illegitimate-tnames)) (declare (ignorable __function__)) (b* (((when (atom x)) (mv nil state)) ((mv car-legitp state) (vl-looks-like-legitimate-tname-p (car x) state)) ((mv cdr-prime state) (vl-remove-illegitimate-tnames (cdr x) state)) ((when car-legitp) (mv (cons (vl-tname-fix (car x)) cdr-prime) state))) (mv cdr-prime state))))
Theorem:
(defthm vl-tnamelist-p-of-vl-remove-illegitimate-tnames.legitimate (b* (((mv ?legitimate acl2::?state) (vl-remove-illegitimate-tnames x state))) (vl-tnamelist-p legitimate)) :rule-classes :rewrite)
Theorem:
(defthm state-p1-of-vl-remove-illegitimate-tnames.state (implies (force (state-p1 state)) (b* (((mv ?legitimate acl2::?state) (vl-remove-illegitimate-tnames x state))) (state-p1 state))) :rule-classes :rewrite)