Lexing of Identifiers.
(identifier-lexp tree) → yes/no
The ambiguity, mentioned in longest-lexp,
deriving from the fact that, grammatically,
keywords and boolean literals are also identifiers,
and that identifiers may be or start with
Theorem:
(defthm return-type-of-identifier-lexp.yes/no (b* ((?yes/no (identifier-lexp tree))) (booleanp yes/no)) :rule-classes :rewrite)
Theorem:
(defthm return-type-of-identifier-lexp-list.yes/no (b* ((?yes/no (identifier-lexp-list trees))) (booleanp yes/no)) :rule-classes :rewrite)
Theorem:
(defthm return-type-of-identifier-lexp-list-list.yes/no (b* ((?yes/no (identifier-lexp-list-list treess))) (booleanp yes/no)) :rule-classes :rewrite)
Theorem:
(defthm identifier-lexp-of-tree-fix-tree (equal (identifier-lexp (abnf::tree-fix tree)) (identifier-lexp tree)))
Theorem:
(defthm identifier-lexp-list-of-tree-list-fix-trees (equal (identifier-lexp-list (abnf::tree-list-fix trees)) (identifier-lexp-list trees)))
Theorem:
(defthm identifier-lexp-list-list-of-tree-list-list-fix-treess (equal (identifier-lexp-list-list (abnf::tree-list-list-fix treess)) (identifier-lexp-list-list treess)))
Theorem:
(defthm identifier-lexp-tree-equiv-congruence-on-tree (implies (abnf::tree-equiv tree tree-equiv) (equal (identifier-lexp tree) (identifier-lexp tree-equiv))) :rule-classes :congruence)
Theorem:
(defthm identifier-lexp-list-tree-list-equiv-congruence-on-trees (implies (abnf::tree-list-equiv trees trees-equiv) (equal (identifier-lexp-list trees) (identifier-lexp-list trees-equiv))) :rule-classes :congruence)
Theorem:
(defthm identifier-lexp-list-list-tree-list-list-equiv-congruence-on-treess (implies (abnf::tree-list-list-equiv treess treess-equiv) (equal (identifier-lexp-list-list treess) (identifier-lexp-list-list treess-equiv))) :rule-classes :congruence)