(matchstatelist-min-index sts) → index
Function:
(defun matchstatelist-min-index (sts) (declare (xargs :guard (matchstatelist-p sts))) (declare (xargs :guard (consp sts))) (let ((__function__ 'matchstatelist-min-index)) (declare (ignorable __function__)) (if (atom (cdr sts)) (matchstate->index (car sts)) (min (matchstate->index (car sts)) (matchstatelist-min-index (cdr sts))))))
Theorem:
(defthm natp-of-matchstatelist-min-index (b* ((index (matchstatelist-min-index sts))) (natp index)) :rule-classes :type-prescription)
Theorem:
(defthm matchstatelist-min-index-of-append (implies (or (consp a) (consp b)) (equal (matchstatelist-min-index (append a b)) (if (consp a) (if (consp b) (min (matchstatelist-min-index a) (matchstatelist-min-index b)) (matchstatelist-min-index a)) (matchstatelist-min-index b)))))
Theorem:
(defthm matchstatelist-min-index-of-rev (equal (matchstatelist-min-index (rev x)) (matchstatelist-min-index x)))
Theorem:
(defthm matchstatelist-min-index-of-matches-add-backref (equal (matchstatelist-min-index (matches-add-backref name start-index matches)) (matchstatelist-min-index matches)))
Theorem:
(defthm matchstatelist-indices-gte-by-matchstatelist-min-index (implies (<= (nfix idx) (matchstatelist-min-index x)) (matchstatelist-indices-gte idx x)))
Theorem:
(defthm matchstatelist-min-index-of-matchstatelist-fix-sts (equal (matchstatelist-min-index (matchstatelist-fix sts)) (matchstatelist-min-index sts)))
Theorem:
(defthm matchstatelist-min-index-matchstatelist-equiv-congruence-on-sts (implies (matchstatelist-equiv sts sts-equiv) (equal (matchstatelist-min-index sts) (matchstatelist-min-index sts-equiv))) :rule-classes :congruence)