Recognizer for character-any-map.
(character-any-mapp x) → *
Function:
(defun character-any-mapp (x) (declare (xargs :guard t)) (if (atom x) (null x) (and (consp (car x)) (characterp (caar x)) (any-p (cdar x)) (or (null (cdr x)) (and (consp (cdr x)) (consp (cadr x)) (fast-<< (caar x) (caadr x)) (character-any-mapp (cdr x)))))))
Theorem:
(defthm booleanp-of-character-any-mapp (booleanp (character-any-mapp x)))
Theorem:
(defthm mapp-when-character-any-mapp (implies (character-any-mapp x) (omap::mapp x)) :rule-classes (:rewrite :forward-chaining))
Theorem:
(defthm character-any-mapp-of-tail (implies (character-any-mapp x) (character-any-mapp (omap::tail x))))
Theorem:
(defthm characterp-of-head-key-when-character-any-mapp (implies (and (character-any-mapp x) (not (omap::emptyp x))) (characterp (mv-nth 0 (omap::head x)))))
Theorem:
(defthm any-p-of-head-val-when-character-any-mapp (implies (and (character-any-mapp x) (not (omap::emptyp x))) (any-p (mv-nth 1 (omap::head x)))))
Theorem:
(defthm character-any-mapp-of-update (implies (and (character-any-mapp x) (characterp k) (any-p v)) (character-any-mapp (omap::update k v x))))
Theorem:
(defthm character-any-mapp-of-update* (implies (and (character-any-mapp x) (character-any-mapp y)) (character-any-mapp (omap::update* x y))))
Theorem:
(defthm character-any-mapp-of-delete (implies (character-any-mapp x) (character-any-mapp (omap::delete k x))))
Theorem:
(defthm character-any-mapp-of-delete* (implies (character-any-mapp x) (character-any-mapp (omap::delete* k x))))
Theorem:
(defthm characterp-when-assoc-character-any-mapp-binds-free-x (implies (and (omap::assoc k x) (character-any-mapp x)) (characterp k)))
Theorem:
(defthm characterp-of-car-of-assoc-character-any-mapp (implies (and (character-any-mapp x) (omap::assoc k x)) (characterp (car (omap::assoc k x)))))
Theorem:
(defthm any-p-of-cdr-of-assoc-character-any-mapp (implies (and (character-any-mapp x) (omap::assoc k x)) (any-p (cdr (omap::assoc k x)))))
Theorem:
(defthm any-p-of-lookup-when-character-any-mapp (implies (and (character-any-mapp x) (omap::assoc k x)) (any-p (omap::lookup k x))))