Type of an optional value.
(type-of-value-option val?) → type
This is the type of the value if the value is present,
while it is
Function:
(defun type-of-value-option (val?) (declare (xargs :guard (value-optionp val?))) (let ((__function__ 'type-of-value-option)) (declare (ignorable __function__)) (value-option-case val? :some (type-of-value val?.val) :none (type-void))))
Theorem:
(defthm typep-of-type-of-value-option (b* ((type (type-of-value-option val?))) (typep type)) :rule-classes :rewrite)
Theorem:
(defthm type-of-value-option-of-value-option-fix-val? (equal (type-of-value-option (value-option-fix val?)) (type-of-value-option val?)))
Theorem:
(defthm type-of-value-option-value-option-equiv-congruence-on-val? (implies (value-option-equiv val? val?-equiv) (equal (type-of-value-option val?) (type-of-value-option val?-equiv))) :rule-classes :congruence)