Matches
(match-cons-nest x) → (mv matchp args)
Function:
(defun match-cons-nest (x) (declare (xargs :guard (ute-term-p x))) (let ((__function__ 'match-cons-nest)) (declare (ignorable __function__)) (if (and (consp x) (eq (car x) 'cons)) (mv-let (matchp acc) (match-cons-nest-aux x nil) (mv matchp (rev acc))) (mv nil nil))))
Theorem:
(defthm booleanp-of-match-cons-nest.matchp (b* (((mv ?matchp ?args) (match-cons-nest x))) (booleanp matchp)) :rule-classes :type-prescription)
Theorem:
(defthm ute-termlist-p-of-match-cons-nest.args (implies (and (ute-term-p x)) (b* (((mv ?matchp ?args) (match-cons-nest x))) (ute-termlist-p args))) :rule-classes :rewrite)