Universally quantified formula
in the second case of the definition of
This is used (indirectly) in the definition of mmp-encode-c, hence the name.
Here
Instead of quantifying over the pairs in the map and projecting their key component [YP:(189)] as in [YP:(194)], here we directly quantify over the keys in the map. The values in the map are not referenced in this formula.
If this universally quantified formula holds,
the length of every key in the map is greater than or equal to
Theorem:
(defthm mmp-encode-c-forall-necc (implies (mmp-encode-c-forall map x l) (implies (omap::assoc key (nibblelist-bytelist-mfix map)) (equal (take x key) (nibble-list-fix l)))))
Theorem:
(defthm booleanp-of-mmp-encode-c-forall (b* ((yes/no (mmp-encode-c-forall map x l))) (booleanp yes/no)) :rule-classes :rewrite)
Theorem:
(defthm mmp-encode-c-forall-of-nibblelist-bytelist-mfix-map (equal (mmp-encode-c-forall (nibblelist-bytelist-mfix map) x l) (mmp-encode-c-forall map x l)))
Theorem:
(defthm mmp-encode-c-forall-nibblelist-bytelist-mequiv-congruence-on-map (implies (nibblelist-bytelist-mequiv map map-equiv) (equal (mmp-encode-c-forall map x l) (mmp-encode-c-forall map-equiv x l))) :rule-classes :congruence)
Theorem:
(defthm mmp-encode-c-forall-of-nfix-x (equal (mmp-encode-c-forall map (nfix x) l) (mmp-encode-c-forall map x l)))
Theorem:
(defthm mmp-encode-c-forall-nat-equiv-congruence-on-x (implies (acl2::nat-equiv x x-equiv) (equal (mmp-encode-c-forall map x l) (mmp-encode-c-forall map x-equiv l))) :rule-classes :congruence)
Theorem:
(defthm mmp-encode-c-forall-of-nibble-list-fix-l (equal (mmp-encode-c-forall map x (nibble-list-fix l)) (mmp-encode-c-forall map x l)))
Theorem:
(defthm mmp-encode-c-forall-nibble-list-equiv-congruence-on-l (implies (acl2::nibble-list-equiv l l-equiv) (equal (mmp-encode-c-forall map x l) (mmp-encode-c-forall map x l-equiv))) :rule-classes :congruence)
Theorem:
(defthm mmp-encode-c-forall-len-key-geq-x (implies (and (mmp-encode-c-forall map x l) (nibblelist-bytelist-mapp map) (natp x) (nibble-listp l) (omap::assoc key map)) (>= (len key) x)) :rule-classes nil)