Are all of these paths
(directories-p paths &key (state 'state)) → (mv err ans new-state)
Function:
(defun directories-p-fn (paths state) (declare (xargs :stobjs (state))) (declare (xargs :guard (string-listp paths))) (let ((__function__ 'directories-p)) (declare (ignorable __function__)) (b* (((when (atom paths)) (mv nil t state)) ((mv err ans1 state) (directory-p (car paths))) ((when err) (mv err nil state)) ((unless ans1) (mv nil nil state))) (directories-p (cdr paths)))))
Theorem:
(defthm booleanp-of-directories-p.ans (b* (((mv ?err ?ans ?new-state) (directories-p-fn paths state))) (booleanp ans)) :rule-classes :type-prescription)
Theorem:
(defthm state-p1-of-directories-p.new-state (implies (force (state-p1 state)) (b* (((mv ?err ?ans ?new-state) (directories-p-fn paths state))) (state-p1 new-state))) :rule-classes :rewrite)
Theorem:
(defthm w-state-of-directories-p (b* (((mv ?err ?ans ?new-state) (directories-p-fn paths state))) (equal (w new-state) (w state))))