(vl-blamealist-count x) → count
Function:
(defun vl-blamealist-count (x) (declare (xargs :guard (vl-blamealist-p x))) (let ((__function__ 'vl-blamealist-count)) (declare (ignorable __function__)) (let ((x (mbe :logic (vl-blamealist-fix x) :exec x))) (if (atom x) 1 (+ 1 (vl-blamealist-count (cdr x)))))))
Theorem:
(defthm natp-of-vl-blamealist-count (b* ((count (vl-blamealist-count x))) (natp count)) :rule-classes :type-prescription)
Theorem:
(defthm vl-blamealist-count-of-vl-blamealist-fix-x (equal (vl-blamealist-count (vl-blamealist-fix x)) (vl-blamealist-count x)))
Theorem:
(defthm vl-blamealist-count-vl-blamealist-equiv-congruence-on-x (implies (vl-blamealist-equiv x x-equiv) (equal (vl-blamealist-count x) (vl-blamealist-count x-equiv))) :rule-classes :congruence)
Theorem:
(defthm vl-blamealist-count-of-cons (>= (vl-blamealist-count (cons acl2::a acl2::b)) (vl-blamealist-count acl2::b)) :rule-classes :linear)
Theorem:
(defthm vl-blamealist-count-of-cdr (<= (vl-blamealist-count (cdr x)) (vl-blamealist-count x)) :rule-classes :linear)
Theorem:
(defthm vl-blamealist-count-of-cdr-strong (implies (and (vl-blamealist-p x) (consp x)) (< (vl-blamealist-count (cdr x)) (vl-blamealist-count x))) :rule-classes :linear)