A topological ordering of type (clique) based on type dependencies.
(topo-dependencies name fty-table) → dependencies
This is the topological ordering of depgraph, obtained via depgraph::toposort.
Function:
(defun topo-dependencies (name fty-table) (declare (xargs :guard (and (symbolp name) (alistp fty-table)))) (let ((__function__ 'topo-dependencies)) (declare (ignorable __function__)) (b* ((depgraph (depgraph name fty-table)) ((mv successp result) (depgraph::toposort depgraph)) ((unless successp) (raise "Internal error: assembled graph is not a DAG ~x0" depgraph)) ((unless (symbol-listp result)) (raise "Internal error: result is not a symbol-list ~x0" result))) result)))
Theorem:
(defthm symbol-listp-of-topo-dependencies (b* ((dependencies (topo-dependencies name fty-table))) (symbol-listp dependencies)) :rule-classes :rewrite)