Non-guard-verified functions called by a term.
(all-non-gv-ffn-symbs term ans wrld) → final-ans
The name of this function is consistent with
the name of
Note that if any function
inside the
Function:
(defun all-non-gv-ffn-symbs (term ans wrld) (declare (xargs :guard (and (pseudo-termp term) (symbol-listp ans) (plist-worldp wrld)))) (let ((__function__ 'all-non-gv-ffn-symbs)) (declare (ignorable __function__)) (b* (((when (variablep term)) ans) ((when (fquotep term)) ans) (fn/lambda (ffn-symb term)) (ans (if (flambdap fn/lambda) (all-non-gv-ffn-symbs (lambda-body fn/lambda) ans wrld) (if (guard-verified-p fn/lambda wrld) ans (add-to-set-eq fn/lambda ans))))) (all-non-gv-ffn-symbs-lst (fargs term) ans wrld))))
Function:
(defun all-non-gv-ffn-symbs-lst (terms ans wrld) (declare (xargs :guard (and (pseudo-term-listp terms) (symbol-listp ans) (plist-worldp wrld)))) (let ((__function__ 'all-non-gv-ffn-symbs-lst)) (declare (ignorable __function__)) (b* (((when (endp terms)) ans) (ans (all-non-gv-ffn-symbs (car terms) ans wrld))) (all-non-gv-ffn-symbs-lst (cdr terms) ans wrld))))
Theorem:
(defthm return-type-of-all-non-gv-ffn-symbs.final-ans (implies (and (pseudo-termp term) (symbol-listp ans) (plist-worldp wrld)) (b* ((?final-ans (all-non-gv-ffn-symbs term ans wrld))) (symbol-listp final-ans))) :rule-classes :rewrite)
Theorem:
(defthm return-type-of-all-non-gv-ffn-symbs-lst.final-ans (implies (and (pseudo-term-listp terms) (symbol-listp ans) (plist-worldp wrld)) (b* ((?final-ans (all-non-gv-ffn-symbs-lst terms ans wrld))) (symbol-listp final-ans))) :rule-classes :rewrite)