Completeness property for parse-element.
Theorem:
(defthm pred-element-necc (implies (pred-element input) (implies (and (tree-match-element-p tree (element-rulename *element*) *grammar*) (tree-terminatedp tree) (nat-listp 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->string tree) rest-input))) (equal (parse-element (append (tree->string tree) rest-input)) (mv nil (tree-fix tree) rest-input)))))
Theorem:
(defthm booleanp-of-pred-element (b* ((bool (pred-element input))) (booleanp bool)) :rule-classes :type-prescription)