Check an input file.
(check-input-file infile env) → params
Starting with the empty list of function parameters, we go through the file and collect all the function parameters corresponding to the input items. We also ensure that the sections have all distinct titles, i.e. that there are no repeated section titles. It is not required for all possible section titles to be present.
Function:
(defun check-input-file (infile env) (declare (xargs :guard (and (input-filep infile) (senvp env)))) (let ((__function__ 'check-input-file)) (declare (ignorable __function__)) (b* ((insecs (input-file->sections infile)) ((okf params) (check-input-section-list insecs nil env)) ((unless (no-duplicatesp-equal (input-section-list->title-list insecs))) (reserrf (list :duplicate-sections)))) params)))
Theorem:
(defthm funparam-list-resultp-of-check-input-file (b* ((params (check-input-file infile env))) (funparam-list-resultp params)) :rule-classes :rewrite)
Theorem:
(defthm check-input-file-of-input-file-fix-infile (equal (check-input-file (input-file-fix infile) env) (check-input-file infile env)))
Theorem:
(defthm check-input-file-input-file-equiv-congruence-on-infile (implies (input-file-equiv infile infile-equiv) (equal (check-input-file infile env) (check-input-file infile-equiv env))) :rule-classes :congruence)
Theorem:
(defthm check-input-file-of-senv-fix-env (equal (check-input-file infile (senv-fix env)) (check-input-file infile env)))
Theorem:
(defthm check-input-file-senv-equiv-congruence-on-env (implies (senv-equiv env env-equiv) (equal (check-input-file infile env) (check-input-file infile env-equiv))) :rule-classes :congruence)