• Top
  • Sint-array

Sint-array->elements

Get the elements field from a sint-array.

Signature
(sint-array->elements x) → elements
Arguments
x — Guard (sint-arrayp x).
Returns
elements — Type (sint-listp elements).

This is an ordinary field accessor created by fty::defprod.

Definitions and Theorems

Function: sint-array->elements$inline

(defun sint-array->elements$inline (x)
  (declare (xargs :guard (sint-arrayp x)))
  (declare (xargs :guard t))
  (let ((__function__ 'sint-array->elements))
    (declare (ignorable __function__))
    (mbe :logic
         (b* ((x (and t x))
              (elemtype (type-fix (std::da-nth 0 (cdr x))))
              (elements (sint-list-fix (std::da-nth 1 (cdr x)))))
           (if (consp elements)
               elements
             (list (sint-from-integer 0))))
         :exec (std::da-nth 1 (cdr x)))))

Theorem: sint-listp-of-sint-array->elements

(defthm sint-listp-of-sint-array->elements
  (b* ((elements (sint-array->elements$inline x)))
    (sint-listp elements))
  :rule-classes :rewrite)

Theorem: sint-array->elements$inline-of-sint-array-fix-x

(defthm sint-array->elements$inline-of-sint-array-fix-x
  (equal (sint-array->elements$inline (sint-array-fix x))
         (sint-array->elements$inline x)))

Theorem: sint-array->elements$inline-sint-array-equiv-congruence-on-x

(defthm sint-array->elements$inline-sint-array-equiv-congruence-on-x
  (implies (sint-array-equiv x x-equiv)
           (equal (sint-array->elements$inline x)
                  (sint-array->elements$inline x-equiv)))
  :rule-classes :congruence)