Process the
(input-files-process-files files-presentp files) → (mv erp new-files)
Function:
(defun input-files-process-files (files-presentp files) (declare (xargs :guard (booleanp files-presentp))) (let ((__function__ 'input-files-process-files)) (declare (ignorable __function__)) (b* (((reterr) nil) ((unless files-presentp) (reterr (msg "The :FILES input must be supplied, ~ but it was not supplied."))) ((unless (string-listp files)) (reterr (msg "The :FILES input must evaluate to a list of strings, ~ but it evaluates to ~x0 instead." files))) ((unless (no-duplicatesp-equal files)) (reterr (msg "The :FILES input must be a list without duplicates, ~ but the supplied ~x0 has duplicates." files))) ((unless (consp files)) (reterr (msg "The :FILES input must contain at least one element, ~ but it does not contain any.")))) (retok files))))
Theorem:
(defthm string-listp-of-input-files-process-files.new-files (b* (((mv acl2::?erp ?new-files) (input-files-process-files files-presentp files))) (string-listp new-files)) :rule-classes :rewrite)