Check an input item.
(check-input-item initem intitle params env) → new-params
We ensure that the type of the input expression matches the input type.
The
Function:
(defun check-input-item (initem intitle params env) (declare (xargs :guard (and (input-itemp initem) (input-titlep intitle) (funparam-listp params) (senvp env)))) (let ((__function__ 'check-input-item)) (declare (ignorable __function__)) (b* (((input-item initem) initem) ((okf &) (check-input-type initem.type env)) ((okf type) (check-input-expression initem.value env)) (intype (input-type->get initem.type)) ((unless (equal type intype)) (reserrf (list :input-item-mistype :type initem.type :expression type))) ((when (member-equal initem.name (funparam-list->name-list params))) (reserrf (list :duplicate-input-name initem.name)))) (cons (make-funparam :name initem.name :type intype :sort (input-title->sort intitle)) (funparam-list-fix params)))))
Theorem:
(defthm funparam-list-resultp-of-check-input-item (b* ((new-params (check-input-item initem intitle params env))) (funparam-list-resultp new-params)) :rule-classes :rewrite)
Theorem:
(defthm check-input-item-of-input-item-fix-initem (equal (check-input-item (input-item-fix initem) intitle params env) (check-input-item initem intitle params env)))
Theorem:
(defthm check-input-item-input-item-equiv-congruence-on-initem (implies (input-item-equiv initem initem-equiv) (equal (check-input-item initem intitle params env) (check-input-item initem-equiv intitle params env))) :rule-classes :congruence)
Theorem:
(defthm check-input-item-of-input-title-fix-intitle (equal (check-input-item initem (input-title-fix intitle) params env) (check-input-item initem intitle params env)))
Theorem:
(defthm check-input-item-input-title-equiv-congruence-on-intitle (implies (input-title-equiv intitle intitle-equiv) (equal (check-input-item initem intitle params env) (check-input-item initem intitle-equiv params env))) :rule-classes :congruence)
Theorem:
(defthm check-input-item-of-funparam-list-fix-params (equal (check-input-item initem intitle (funparam-list-fix params) env) (check-input-item initem intitle params env)))
Theorem:
(defthm check-input-item-funparam-list-equiv-congruence-on-params (implies (funparam-list-equiv params params-equiv) (equal (check-input-item initem intitle params env) (check-input-item initem intitle params-equiv env))) :rule-classes :congruence)
Theorem:
(defthm check-input-item-of-senv-fix-env (equal (check-input-item initem intitle params (senv-fix env)) (check-input-item initem intitle params env)))
Theorem:
(defthm check-input-item-senv-equiv-congruence-on-env (implies (senv-equiv env env-equiv) (equal (check-input-item initem intitle params env) (check-input-item initem intitle params env-equiv))) :rule-classes :congruence)