Main if-merging rewrite.
(vl-stmt-ifmerge x outer-cond warnings elem) → (mv warnings flat-stmts)
Theorem:
(defthm return-type-of-vl-stmt-ifmerge.warnings (b* (((mv ?warnings ?flat-stmts) (vl-stmt-ifmerge x outer-cond warnings elem))) (vl-warninglist-p warnings)) :rule-classes :rewrite)
Theorem:
(defthm return-type-of-vl-stmt-ifmerge.flat-stmts (b* (((mv ?warnings ?flat-stmts) (vl-stmt-ifmerge x outer-cond warnings elem))) (vl-stmtlist-p flat-stmts)) :rule-classes :rewrite)
Theorem:
(defthm return-type-of-vl-stmtlist-ifmerge.warnings (b* (((mv ?warnings ?flat-stmts) (vl-stmtlist-ifmerge x outer-cond warnings elem))) (vl-warninglist-p warnings)) :rule-classes :rewrite)
Theorem:
(defthm return-type-of-vl-stmtlist-ifmerge.flat-stmts (b* (((mv ?warnings ?flat-stmts) (vl-stmtlist-ifmerge x outer-cond warnings elem))) (vl-stmtlist-p flat-stmts)) :rule-classes :rewrite)