Preservation of variable visibility under execution.
Theorem:
(defthm var-visible-of-exec-fun (b* (((mv result compst1) (exec-fun fun args compst fenv limit))) (implies (and (not (errorp result)) (objdesign-of-var var compst)) (objdesign-of-var var compst1))))
Theorem:
(defthm var-visible-of-exec-expr (b* (((mv result compst1) (exec-expr e compst fenv limit))) (implies (and (not (errorp result)) (objdesign-of-var var compst)) (objdesign-of-var var compst1))))
Theorem:
(defthm var-visible-of-exec-stmt (b* (((mv result compst1) (exec-stmt s compst fenv limit))) (implies (and (> (compustate-frames-number compst) 0) (not (errorp result)) (objdesign-of-var var compst)) (objdesign-of-var var compst1))))
Theorem:
(defthm var-visible-of-exec-stmt-while (b* (((mv result compst1) (exec-stmt-while test body compst fenv limit))) (implies (and (> (compustate-frames-number compst) 0) (not (errorp result)) (objdesign-of-var var compst)) (objdesign-of-var var compst1))))
Theorem:
(defthm var-visible-of-exec-stmt-dowhile (b* (((mv result compst1) (exec-stmt-dowhile body test compst fenv limit))) (implies (and (> (compustate-frames-number compst) 0) (not (errorp result)) (objdesign-of-var var compst)) (objdesign-of-var var compst1))))
Theorem:
(defthm var-visible-of-exec-initer (b* (((mv result compst1) (exec-initer initer compst fenv limit))) (implies (and (> (compustate-frames-number compst) 0) (not (errorp result)) (objdesign-of-var var compst)) (objdesign-of-var var compst1))))
Theorem:
(defthm var-visible-of-exec-obj-declon (b* ((compst1 (exec-obj-declon declon compst fenv limit))) (implies (and (> (compustate-frames-number compst) 0) (not (errorp compst1)) (objdesign-of-var var compst)) (objdesign-of-var var compst1))))
Theorem:
(defthm var-visible-of-exec-block-item (b* (((mv result compst1) (exec-block-item item compst fenv limit))) (implies (and (> (compustate-frames-number compst) 0) (not (errorp result)) (objdesign-of-var var compst)) (objdesign-of-var var compst1))))
Theorem:
(defthm var-visible-of-exec-block-item-list (b* (((mv result compst1) (exec-block-item-list items compst fenv limit))) (implies (and (> (compustate-frames-number compst) 0) (not (errorp result)) (objdesign-of-var var compst)) (objdesign-of-var var compst1))))