Abstract an
(abs-address-literal tree) → lit
Function:
(defun abs-address-literal (tree) (declare (xargs :guard (abnf::treep tree))) (let ((__function__ 'abs-address-literal)) (declare (ignorable __function__)) (b* (((okf (abnf::tree-list-tuple2 sub)) (abnf::check-tree-nonleaf-2 tree "address-literal")) ((okf aleo1-tree) (abnf::check-tree-list-1 sub.1st)) ((okf &) (abnf::check-tree-schars aleo1-tree "aleo1")) ((okf chars) (abs-*-lowercaseletter/decimaldigit sub.2nd)) ((unless (= (len chars) 58)) (reserrf (list :found chars))) (chars (append (acl2::explode "aleo1") chars))) (literal-address (address (acl2::implode chars))))))
Theorem:
(defthm literal-resultp-of-abs-address-literal (b* ((lit (abs-address-literal tree))) (literal-resultp lit)) :rule-classes :rewrite)
Theorem:
(defthm abs-address-literal-of-tree-fix-tree (equal (abs-address-literal (abnf::tree-fix tree)) (abs-address-literal tree)))
Theorem:
(defthm abs-address-literal-tree-equiv-congruence-on-tree (implies (abnf::tree-equiv tree tree-equiv) (equal (abs-address-literal tree) (abs-address-literal tree-equiv))) :rule-classes :congruence)