(flexprod-fields-direct-dependencies flexprod-fields fty-table) → dependencies
Function:
(defun flexprod-fields-direct-dependencies (flexprod-fields fty-table) (declare (xargs :guard (and (flexprod-field-listp flexprod-fields) (alistp fty-table)))) (let ((__function__ 'flexprod-fields-direct-dependencies)) (declare (ignorable __function__)) (if (consp flexprod-fields) (b* ((recog (flexprod-field->type (first flexprod-fields))) ((unless (symbolp recog)) (raise "Internal error: malformed type recognizer ~x0." recog)) (name? (name-of-flextypes-containing-recognizer recog fty-table)) (names (flexprod-fields-direct-dependencies (rest flexprod-fields) fty-table))) (if (or (not name?) (member-eq name? names)) names (cons name? names))) nil)))
Theorem:
(defthm symbol-listp-of-flexprod-fields-direct-dependencies (b* ((dependencies (flexprod-fields-direct-dependencies flexprod-fields fty-table))) (symbol-listp dependencies)) :rule-classes :rewrite)
Theorem:
(defthm true-listp-of-flexprod-fields-direct-dependencies (b* ((dependencies (flexprod-fields-direct-dependencies flexprod-fields fty-table))) (true-listp dependencies)) :rule-classes :type-prescription)