Abstract a
(abs-string-literal-element tree) → char
Function:
(defun abs-string-literal-element (tree) (declare (xargs :guard (abnf::treep tree))) (let ((__function__ 'abs-string-literal-element)) (declare (ignorable __function__)) (b* (((okf tree) (abnf::check-tree-nonleaf-1-1 tree "string-literal-element")) ((okf rulename?) (abnf::check-tree-nonleaf? tree))) (cond ((equal rulename? "not-double-quote-or-backslash-or-line-feed-or-carriage-return") (abs-not-double-quote-or-backslash-or-line-feed-or-carriage-return tree)) ((equal rulename? "simple-character-escape") (abs-simple-character-escape tree)) ((equal rulename? "ascii-character-escape") (abs-ascii-character-escape tree)) ((equal rulename? "unicode-character-escape") (abs-unicode-character-escape tree)) (t (reserrf (list :found-subtree (abnf::tree-info-for-error tree))))))))
Theorem:
(defthm char-resultp-of-abs-string-literal-element (b* ((char (abs-string-literal-element tree))) (char-resultp char)) :rule-classes :rewrite)
Theorem:
(defthm abs-string-literal-element-of-tree-fix-tree (equal (abs-string-literal-element (abnf::tree-fix tree)) (abs-string-literal-element tree)))
Theorem:
(defthm abs-string-literal-element-tree-equiv-congruence-on-tree (implies (abnf::tree-equiv tree tree-equiv) (equal (abs-string-literal-element tree) (abs-string-literal-element tree-equiv))) :rule-classes :congruence)