All the IMF grammar rules, including the referenced ABNF core rules.
These are obtained by plugging the core rules into the IMF rules.
The resulting rules are well-formed and closed. They generate terminal strings consisting only of ASCII codes
We keep this constant unexpanded in output.
Definition:
(defconst *all-imf-grammar-rules* (plug-rules *imf-grammar-rules* *core-rules*))
Function:
(defun untranslate-preprocess-*all-imf-grammar-rules* (acl2::term acl2::wrld) (if (equal acl2::term (list 'quote *all-imf-grammar-rules*)) '*all-imf-grammar-rules* (untranslate-preprocess-*imf-grammar-rules* acl2::term acl2::wrld)))
Theorem:
(defthm rulelist-wfp-of-*all-imf-grammar-rules* (rulelist-wfp *all-imf-grammar-rules*))
Theorem:
(defthm rulelist-closedp-of-*all-imf-grammar-rules* (rulelist-closedp *all-imf-grammar-rules*))
Theorem:
(defthm ascii-only-*all-imf-grammar-rules* (rulelist-in-termset-p *all-imf-grammar-rules* (integers-from-to 0 127)))
Theorem:
(defthm abnf-core-rules-in-*all-imf-grammar-rules* (implies (member-equal core-rule *core-rules*) (iff (member-equal core-rule *all-imf-grammar-rules*) (member-equal core-rule (list *rule_alpha* *rule_cr* *rule_crlf* *rule_digit* *rule_dquote* *rule_htab* *rule_lf* *rule_sp* *rule_vchar* *rule_wsp*)))) :rule-classes nil)