Abstract a
(abs-print-call tree) → cons
Function:
(defun abs-print-call (tree) (declare (xargs :guard (abnf::treep tree))) (let ((__function__ 'abs-print-call)) (declare (ignorable __function__)) (b* (((okf (abnf::tree-list-tuple2 sub)) (abnf::check-tree-nonleaf-2 tree "print-call")) ((okf tree) (abnf::check-tree-list-1 sub.2nd)) ((okf (chars+exprs chars+exprs)) (abs-print-arguments tree)) ((okf tree) (abnf::check-tree-list-1 sub.1st)) ((okf tree) (abnf::check-tree-nonleaf-1-1 tree "print-function")) ((okf nats) (abnf::check-tree-leafterm tree))) (cond ((abnf::nats-match-sensitive-chars-p nats (acl2::explode "error")) (console-error chars+exprs.chars chars+exprs.exprs)) ((abnf::nats-match-sensitive-chars-p nats (acl2::explode "log")) (console-log chars+exprs.chars chars+exprs.exprs)) (t (reserrf (list :found-console-function nats)))))))
Theorem:
(defthm console-resultp-of-abs-print-call (b* ((cons (abs-print-call tree))) (console-resultp cons)) :rule-classes :rewrite)
Theorem:
(defthm abs-print-call-of-tree-fix-tree (equal (abs-print-call (abnf::tree-fix tree)) (abs-print-call tree)))
Theorem:
(defthm abs-print-call-tree-equiv-congruence-on-tree (implies (abnf::tree-equiv tree tree-equiv) (equal (abs-print-call tree) (abs-print-call tree-equiv))) :rule-classes :congruence)