Filtering...

compress11

books/kestrel/acl2-arrays/compress11

Included Books

other
(in-package "ACL2")
local
(local (include-book "kestrel/alists-light/assoc-equal" :dir :system))
local
(local (include-book "bounded-integer-alistp"))
in-theory
(in-theory (disable compress11))
local
(local (defthm not-equal-of-car-of-assoc-equal
    (implies (and (not (equal val key)) val)
      (not (equal val (car (assoc-equal key array)))))
    :hints (("Goal" :in-theory (enable assoc-equal)))))
assoc-equal-of-header-and-compress11theorem
(defthm assoc-equal-of-header-and-compress11
  (implies (integerp i)
    (equal (assoc-equal :header (compress11 name l i n default))
      nil))
  :hints (("Goal" :in-theory (enable compress11))))
header-of-compress11theorem
(defthm header-of-compress11
  (implies (integerp i)
    (equal (header name (compress11 name2 array i n default))
      nil))
  :hints (("Goal" :in-theory (enable compress11))))
dimensions-of-compress11theorem
(defthm dimensions-of-compress11
  (implies (integerp i)
    (equal (dimensions name (compress11 name2 array i n default))
      nil))
  :hints (("Goal" :in-theory (enable compress11))))
default-of-compress11theorem
(defthm default-of-compress11
  (implies (integerp i)
    (equal (default name (compress11 name2 array i n default))
      nil))
  :hints (("Goal" :in-theory (enable compress11))))
alistp-of-compress11theorem
(defthm alistp-of-compress11
  (implies (or (alistp array) (not default))
    (alistp (compress11 name array i n default)))
  :hints (("Goal" :induct t :in-theory (enable compress11))))
assoc-equal-of-compress11-when-too-smalltheorem
(defthm assoc-equal-of-compress11-when-too-small
  (implies (< index i)
    (equal (assoc-equal index (compress11 name l i n default))
      nil))
  :hints (("Goal" :in-theory (enable compress11))))
bounded-integer-alistp-of-compress11theorem
(defthm bounded-integer-alistp-of-compress11
  (implies (and (bounded-integer-alistp array n))
    (bounded-integer-alistp (compress11 name array i index default)
      n))
  :hints (("Goal" :in-theory (e/d (compress11 bounded-integer-alistp
         assoc-equal-forward-when-bounded-integer-alistp)
       (car-of-assoc-equal-cheap)))))
local
(local (defthmd assoc-equal-of-compress11
    (implies (and (<= i index) (< index n) (integerp i) (integerp index))
      (equal (assoc-equal index (compress11 name l i n default))
        (if (or (not (integerp (- n i)))
            (equal default (cdr (assoc-equal index l))))
          nil
          (assoc-equal index l))))
    :hints (("Goal" :do-not '(generalize eliminate-destructors)
       :in-theory (enable compress11)))))
local
(local (defthmd assoc-equal-of-compress11-too-high
    (implies (and (<= n index)
        (<= i index)
        (integerp i)
        (integerp index))
      (equal (assoc-equal index (compress11 name l i n default))
        nil))
    :hints (("Goal" :do-not '(generalize eliminate-destructors)
       :in-theory (enable compress11)))))
assoc-equal-of-compress11-boththeorem
(defthm assoc-equal-of-compress11-both
  (implies (and (integerp i) (integerp index))
    (equal (assoc-equal index (compress11 name l i n default))
      (if (or (< index i) (<= n index) (not (integerp (- n i))))
        nil
        (if (equal default (cdr (assoc-equal index l)))
          nil
          (assoc-equal index l)))))
  :hints (("Goal" :use (assoc-equal-of-compress11-too-high assoc-equal-of-compress11)
     :in-theory (disable assoc-equal))))
normalize-compress11-nametheorem
(defthmd normalize-compress11-name
  (implies (syntaxp (not (equal name '':fake-name)))
    (equal (compress11 name l i n default)
      (compress11 :fake-name l i n default)))
  :hints (("Goal" :in-theory (enable compress11))))
no-duplicatesp-of-strip-cars-of-compress11theorem
(defthm no-duplicatesp-of-strip-cars-of-compress11
  (implies (integerp i)
    (no-duplicatesp (strip-cars (compress11 name l i n default))))
  :hints (("Goal" :in-theory (enable compress11
       member-equal-of-strip-cars-iff-assoc-equal))))