Construct a nonempty binary-tree.
(tree-node head left right) → tree
Function:
(defun tree-node$inline (head left right) (declare (xargs :guard (and (binary-tree-p left) (binary-tree-p right)))) (declare (xargs :type-prescription (consp (tree-node head left right)))) (list* head (tree-fix left) (tree-fix right)))
Theorem:
(defthm binary-tree-p-of-tree-node (b* ((tree (tree-node$inline head left right))) (binary-tree-p tree)) :rule-classes :rewrite)