Generate the parameters of the factory method of the mv class for the given types.
(atj-gen-shallow-mv-params types) → params
As explained in atj-gen-shallow-mv-class-name, we generate Java classes that represent mv values. Each such class has a static factory method that re-uses a singleton instance of the class. The names of this method's parameter are the same as the corresponding fields.
Function:
(defun atj-gen-shallow-mv-params-aux (types index) (declare (xargs :guard (and (atj-type-listp types) (natp index)))) (let ((__function__ 'atj-gen-shallow-mv-params-aux)) (declare (ignorable __function__)) (b* (((when (endp types)) nil) (type (car types)) (param (make-jparam :final? nil :type (atj-type-to-jitype type) :name (atj-gen-shallow-mv-field-name index))) (params (atj-gen-shallow-mv-params-aux (cdr types) (1+ index)))) (cons param params))))
Theorem:
(defthm jparam-listp-of-atj-gen-shallow-mv-params-aux (b* ((params (atj-gen-shallow-mv-params-aux types index))) (jparam-listp params)) :rule-classes :rewrite)
Function:
(defun atj-gen-shallow-mv-params (types) (declare (xargs :guard (atj-type-listp types))) (let ((__function__ 'atj-gen-shallow-mv-params)) (declare (ignorable __function__)) (atj-gen-shallow-mv-params-aux types 0)))
Theorem:
(defthm jparam-listp-of-atj-gen-shallow-mv-params (b* ((params (atj-gen-shallow-mv-params types))) (jparam-listp params)) :rule-classes :rewrite)