Completeness property for parse-alt-rest.
Theorem:
(defthm pred-alt-rest-necc (implies (pred-alt-rest input) (implies (and (tree-list-match-repetition-p trees (*_ (!_ (/_ (*_ *c-wsp*) "/" (*_ *c-wsp*) *concatenation*))) *grammar*) (tree-list-terminatedp trees) (nat-listp rest-input) (mv-nth 0 (parse-alt-rest-comp rest-input)) (mv-nth 0 (parse-conc-rest-comp rest-input)) (mv-nth 0 (parse-alpha/digit/dash rest-input)) (mv-nth 0 (parse-bit rest-input)) (mv-nth 0 (parse-digit rest-input)) (mv-nth 0 (parse-hexdig rest-input)) (mv-nth 0 (parse-ichar #\. rest-input)) (mv-nth 0 (parse-ichar #\- rest-input)) (equal input (append (tree-list->string trees) rest-input))) (equal (parse-alt-rest (append (tree-list->string trees) rest-input)) (mv nil (tree-list-fix trees) rest-input)))))
Theorem:
(defthm booleanp-of-pred-alt-rest (b* ((bool (pred-alt-rest input))) (booleanp bool)) :rule-classes :type-prescription)