Create a pre-order list of values from a tree.
(tree-pre-order tree) → list
Function:
(defun tree-pre-order (tree) (declare (xargs :guard (binary-tree-p tree))) (let ((__function__ 'tree-pre-order)) (declare (ignorable __function__)) (if (tree-emptyp tree) nil (cons (tree-head tree) (append (tree-pre-order (tree-left tree)) (tree-pre-order (tree-right tree)))))))
Theorem:
(defthm true-listp-of-tree-pre-order (b* ((list (tree-pre-order tree))) (true-listp list)) :rule-classes :rewrite)