Handler for
(vl-process-endif loc istack activep) → (mv successp new-istack new-activep)
Function:
(defun vl-process-endif (loc istack activep) (declare (xargs :guard (and (vl-location-p loc) (vl-istack-p istack) (booleanp activep)))) (let ((__function__ 'vl-process-endif)) (declare (ignorable __function__)) (b* (((when (atom istack)) (mv (cw "Preprocessor error (~s0): found an `endif, but no ifdef/ifndef ~ is open.~%" (vl-location-string loc)) istack activep)) (new-istack (cdr istack)) (new-activep (vl-iframe->initially-activep (car istack)))) (mv t new-istack (and new-activep t)))))
Theorem:
(defthm booleanp-of-vl-process-endif.successp (b* (((mv ?successp ?new-istack ?new-activep) (vl-process-endif loc istack activep))) (booleanp successp)) :rule-classes :type-prescription)
Theorem:
(defthm vl-istack-p-of-vl-process-endif.new-istack (implies (force (vl-istack-p istack)) (b* (((mv ?successp ?new-istack ?new-activep) (vl-process-endif loc istack activep))) (vl-istack-p new-istack))) :rule-classes :rewrite)
Theorem:
(defthm booleanp-of-vl-process-endif.new-activep (implies (booleanp activep) (b* (((mv ?successp ?new-istack ?new-activep) (vl-process-endif loc istack activep))) (booleanp new-activep))) :rule-classes :type-prescription)