Filtering...

aset1

books/kestrel/acl2-arrays/aset1

Included Books

other
(in-package "ACL2")
in-theory
(in-theory (disable aset1))
include-book
(include-book "alen1")
local
(local (include-book "compress1"))
local
(local (include-book "dimensions"))
local
(local (include-book "default"))
local
(local (include-book "header"))
local
(local (include-book "maximum-length"))
dimensions-of-aset1theorem
(defthm dimensions-of-aset1
  (equal (dimensions array-name (aset1 array-name array n val))
    (if (eq :header n)
      (cadr (assoc-keyword :dimensions val))
      (dimensions array-name array)))
  :hints (("Goal" :in-theory (enable aset1))))
default-of-aset1theorem
(defthm default-of-aset1
  (implies (integerp n)
    (equal (default array-name (aset1 array-name array n val))
      (default array-name array)))
  :hints (("Goal" :in-theory (enable aset1))))
array1p-of-aset1-simpletheorem
(defthm array1p-of-aset1-simple
  (implies (and (natp index)
      (< index (car (dimensions array-name array)))
      (array1p array-name array))
    (array1p array-name (aset1 array-name array index val)))
  :hints (("Goal" :in-theory (e/d (aset1 dimensions header)
       (dimensions-intro header-intro)))))
header-of-aset1theorem
(defthm header-of-aset1
  (implies (integerp n)
    (equal (header name (aset1 name l n val)) (header name l)))
  :hints (("Goal" :in-theory (enable aset1))))
normalize-aset1-nametheorem
(defthmd normalize-aset1-name
  (implies (syntaxp (not (equal name '':fake-name)))
    (equal (aset1 name l n val) (aset1 :fake-name l n val)))
  :hints (("Goal" :in-theory (enable aset1
       normalize-compress1-name
       normalize-header-name
       normalize-maximum-length-name))))
alen1-of-aset1theorem
(defthm alen1-of-aset1
  (equal (alen1 array-name (aset1 array-name array n val))
    (if (eq :header n)
      (car (cadr (assoc-keyword :dimensions val)))
      (alen1 array-name array)))
  :hints (("Goal" :in-theory (e/d (alen1) (alen1-intro alen1-intro2)))))
array1p-of-aset1theorem
(defthm array1p-of-aset1
  (implies (and (natp index)
      (< index (alen1 array-name array))
      (array1p array-name array))
    (array1p array-name (aset1 array-name array index val)))
  :hints (("Goal" :in-theory (enable aset1
       maximum-length-intro
       header-intro
       normalize-alen1-name))))