Filter strings into datestrs and non-datestrs. (See vls-datestr-ps).
(vls-filter-datestrs x dates others) → (mv dates others)
Function:
(defun vls-filter-datestrs (x dates others) (declare (xargs :guard (and (string-listp x) (string-listp dates) (string-listp others)))) (let ((__function__ 'vls-filter-datestrs)) (declare (ignorable __function__)) (cond ((atom x) (mv dates others)) ((vls-datestr-p (car x)) (vls-filter-datestrs (cdr x) (cons (car x) dates) others)) (t (vls-filter-datestrs (cdr x) dates (cons (car x) others))))))
Theorem:
(defthm string-listp-of-vls-filter-datestrs.dates (implies (and (force (string-listp x)) (force (string-listp dates)) (force (string-listp others))) (b* (((mv ?dates ?others) (vls-filter-datestrs x dates others))) (string-listp dates))) :rule-classes :rewrite)
Theorem:
(defthm string-listp-of-vls-filter-datestrs.others (implies (and (force (string-listp x)) (force (string-listp dates)) (force (string-listp others))) (b* (((mv ?dates ?others) (vls-filter-datestrs x dates others))) (string-listp others))) :rule-classes :rewrite)