Definition mkEE (m1 m1' m2 m3 m3':Mem.mem) (Ext12: Mem.extends m1 m2)
                (Fwd1: mem_forward m1 m1')
                (Ext23: Mem.extends m2 m3) (Fwd3: mem_forward m3 m3')
                (Ext13' : Mem.extends m1' m3')
                (UnchOn3: Mem.unchanged_on (loc_out_of_bounds m1) m3 m3')
              : Mem.mem'.

(* Specifications: *)
Lemma interpolate_EE: forall m1 m2 (Ext12: Mem.extends m1 m2) m1' (Fwd1: mem_forward m1 m1') m3 (Ext23: Mem.extends m2 m3) m3' (Fwd3: mem_forward m3 m3') (Ext13' : Mem.extends m1' m3') (UnchOn3: Mem.unchanged_on (loc_out_of_bounds m1) m3 m3'), exists m2', mem_forward m2 m2' /\ Mem.extends m1' m2' /\ Mem.extends m2' m3' /\ Mem.unchanged_on (loc_out_of_bounds m1) m2 m2'.
Lemma EE_ok': forall (m1 m1' m2 m3 m3':Mem.mem) (Ext12: Mem.extends m1 m2) (Fwd1: mem_forward m1 m1') (Ext23: Mem.extends m2 m3) (Fwd3: mem_forward m3 m3') (Ext13' : Mem.extends m1' m3') (UnchOn13 : Mem.unchanged_on (loc_out_of_bounds m1) m3 m3') m2' (NB: m2'.(Mem.nextblock)=m3'.(Mem.nextblock)) (CONT: Content_EE_Property' m1 m1' m2 (m2'.(Mem.mem_contents))) (ACCESS: AccessMap_EE_Property m1 m1' m2 (m2'.(Mem.mem_access))), mem_forward m2 m2' /\ Mem.extends m1' m2' /\ Mem.extends m2' m3' /\ Mem.unchanged_on (loc_out_of_bounds m1) m2 m2'.