Initialization type of an initialization value.
(init-type-of-init-value ival) → itype
An init-type is the static counterpart of an init-value.
Function:
(defun init-type-of-init-value (ival) (declare (xargs :guard (init-valuep ival))) (let ((__function__ 'init-type-of-init-value)) (declare (ignorable __function__)) (init-value-case ival :single (init-type-single (type-of-value ival.get)) :list (init-type-list (type-list-of-value-list ival.get)))))
Theorem:
(defthm init-typep-of-init-type-of-init-value (b* ((itype (init-type-of-init-value ival))) (init-typep itype)) :rule-classes :rewrite)
Theorem:
(defthm init-type-of-init-value-of-init-value-fix-ival (equal (init-type-of-init-value (init-value-fix ival)) (init-type-of-init-value ival)))
Theorem:
(defthm init-type-of-init-value-init-value-equiv-congruence-on-ival (implies (init-value-equiv ival ival-equiv) (equal (init-type-of-init-value ival) (init-type-of-init-value ival-equiv))) :rule-classes :congruence)