Abstract an
(abs-input-type tree) → intype
Function:
(defun abs-input-type (tree) (declare (xargs :guard (abnf::treep tree))) (let ((__function__ 'abs-input-type)) (declare (ignorable __function__)) (b* (((okf tree) (abnf::check-tree-nonleaf-1-1 tree "input-type")) ((okf type) (abs-type tree))) (input-type type))))
Theorem:
(defthm input-type-resultp-of-abs-input-type (b* ((intype (abs-input-type tree))) (input-type-resultp intype)) :rule-classes :rewrite)
Theorem:
(defthm abs-input-type-of-tree-fix-tree (equal (abs-input-type (abnf::tree-fix tree)) (abs-input-type tree)))
Theorem:
(defthm abs-input-type-tree-equiv-congruence-on-tree (implies (abnf::tree-equiv tree tree-equiv) (equal (abs-input-type tree) (abs-input-type tree-equiv))) :rule-classes :congruence)