Invariance of read-object under pop-frame, provided that the object is not in the popped frame.
Theorem:
(defthm read-object-top-static/alloc-of-pop-frame (implies (and (member-equal (objdesign-kind (objdesign-top objdes)) '(:static :alloc)) (not (errorp (read-object objdes compst)))) (equal (read-object objdes (pop-frame compst)) (read-object objdes compst))))
Theorem:
(defthm read-object-top-auto-of-pop-frame (implies (and (equal (objdesign-kind (objdesign-top objdes)) :auto) (not (errorp (read-object objdes compst))) (not (equal (objdesign-auto->frame (objdesign-top objdes)) (1- (compustate-frames-number compst))))) (equal (read-object objdes (pop-frame compst)) (read-object objdes compst))))
Theorem:
(defthm read-object-of-pop-frame (implies (and (not (errorp (read-object objdes compst))) (or (member-equal (objdesign-kind (objdesign-top objdes)) '(:static :alloc)) (not (equal (objdesign-auto->frame (objdesign-top objdes)) (1- (compustate-frames-number compst)))))) (equal (read-object objdes (pop-frame compst)) (read-object objdes compst))))