Transform a translation unit.
(simpadd0-transunit tunit) → (mv new-tunit events)
Function:
(defun simpadd0-transunit (tunit) (declare (xargs :guard (transunitp tunit))) (declare (xargs :guard (transunit-unambp tunit))) (let ((__function__ 'simpadd0-transunit)) (declare (ignorable __function__)) (b* (((transunit tunit) tunit) ((mv new-decls events-decls) (simpadd0-extdecl-list tunit.decls))) (mv (make-transunit :decls new-decls :info tunit.info) events-decls))))
Theorem:
(defthm transunitp-of-simpadd0-transunit.new-tunit (b* (((mv ?new-tunit ?events) (simpadd0-transunit tunit))) (transunitp new-tunit)) :rule-classes :rewrite)
Theorem:
(defthm pseudo-event-form-listp-of-simpadd0-transunit.events (b* (((mv ?new-tunit ?events) (simpadd0-transunit tunit))) (pseudo-event-form-listp events)) :rule-classes :rewrite)
Theorem:
(defthm transunit-unambp-of-simpadd0-transunit (b* (((mv ?new-tunit ?events) (simpadd0-transunit tunit))) (transunit-unambp new-tunit)))
Theorem:
(defthm simpadd0-transunit-of-transunit-fix-tunit (equal (simpadd0-transunit (c$::transunit-fix tunit)) (simpadd0-transunit tunit)))
Theorem:
(defthm simpadd0-transunit-transunit-equiv-congruence-on-tunit (implies (c$::transunit-equiv tunit tunit-equiv) (equal (simpadd0-transunit tunit) (simpadd0-transunit tunit-equiv))) :rule-classes :congruence)