Abstract an
(abs-ascii-character-escape tree) → char
Function:
(defun abs-ascii-character-escape (tree) (declare (xargs :guard (abnf::treep tree))) (let ((__function__ 'abs-ascii-character-escape)) (declare (ignorable __function__)) (b* (((okf (abnf::tree-list-tuple3 sub)) (abnf::check-tree-nonleaf-3 tree "ascii-character-escape")) ((okf x-tree) (abnf::check-tree-list-1 sub.1st)) ((okf &) (abnf::check-tree-schars x-tree "\\x")) ((okf oct-tree) (abnf::check-tree-list-1 sub.2nd)) ((okf hi) (abs-octal-digit-to-nat oct-tree)) ((okf hex-tree) (abnf::check-tree-list-1 sub.3rd)) ((okf lo) (abs-hexadecimal-digit-to-nat hex-tree))) (char (+ (* 16 hi) lo)))))
Theorem:
(defthm char-resultp-of-abs-ascii-character-escape (b* ((char (abs-ascii-character-escape tree))) (char-resultp char)) :rule-classes :rewrite)
Theorem:
(defthm abs-ascii-character-escape-of-tree-fix-tree (equal (abs-ascii-character-escape (abnf::tree-fix tree)) (abs-ascii-character-escape tree)))
Theorem:
(defthm abs-ascii-character-escape-tree-equiv-congruence-on-tree (implies (abnf::tree-equiv tree tree-equiv) (equal (abs-ascii-character-escape tree) (abs-ascii-character-escape tree-equiv))) :rule-classes :congruence)