(vl-read-time-unit echars) → (mv prefix remainder)
Function:
(defun vl-read-time-unit$inline (echars) (declare (xargs :guard (vl-echarlist-p echars))) (let ((__function__ 'vl-read-time-unit)) (declare (ignorable __function__)) (vl-read-some-literal '("s" "ms" "us" "ns" "ps" "fs") echars)))
Theorem:
(defthm prefix-of-vl-read-time-unit (and (true-listp (mv-nth 0 (vl-read-time-unit echars))) (implies (force (vl-echarlist-p echars)) (vl-echarlist-p (mv-nth 0 (vl-read-time-unit echars))))) :rule-classes ((:rewrite) (:type-prescription :corollary (true-listp (mv-nth 0 (vl-read-time-unit echars))))))
Theorem:
(defthm remainder-of-vl-read-time-unit (and (equal (true-listp (mv-nth 1 (vl-read-time-unit echars))) (true-listp echars)) (implies (force (vl-echarlist-p echars)) (vl-echarlist-p (mv-nth 1 (vl-read-time-unit echars))))) :rule-classes ((:rewrite) (:type-prescription :corollary (implies (true-listp echars) (true-listp (mv-nth 1 (vl-read-time-unit echars)))))))
Theorem:
(defthm append-of-vl-read-time-unit (equal (append (mv-nth 0 (vl-read-time-unit echars)) (mv-nth 1 (vl-read-time-unit echars))) echars))
Theorem:
(defthm no-change-loser-of-vl-read-time-unit (implies (not (mv-nth 0 (vl-read-time-unit echars))) (equal (mv-nth 1 (vl-read-time-unit echars)) echars)))
Theorem:
(defthm acl2-count-of-vl-read-time-unit-weak (<= (acl2-count (mv-nth 1 (vl-read-time-unit echars))) (acl2-count echars)) :rule-classes ((:rewrite) (:linear)))
Theorem:
(defthm acl2-count-of-vl-read-time-unit-strong (implies (mv-nth 0 (vl-read-time-unit echars)) (< (acl2-count (mv-nth 1 (vl-read-time-unit echars))) (acl2-count echars))) :rule-classes ((:rewrite) (:linear)))
Theorem:
(defthm vl-timeunit-lookup-of-vl-read-time-unit (b* (((mv prefix ?remainder) (vl-read-time-unit echars))) (implies prefix (vl-timeunit-lookup (implode (vl-echarlist->chars prefix))))))