let s1, s2 be State of SCMPDS ; for I being Program of SCMPDS st I is_closed_on s1 & Initialize (stop I) c= s1 & Initialize (stop I) c= s2 & s1,s2 equal_outside NAT holds
for k being Element of NAT holds
( Comput (ProgramPart s1),s1,k, Comput (ProgramPart s2),s2,k equal_outside NAT & CurInstr (ProgramPart s1),(Comput (ProgramPart s1),s1,k) = CurInstr (ProgramPart s2),(Comput (ProgramPart s2),s2,k) )
let I be Program of SCMPDS ; ( I is_closed_on s1 & Initialize (stop I) c= s1 & Initialize (stop I) c= s2 & s1,s2 equal_outside NAT implies for k being Element of NAT holds
( Comput (ProgramPart s1),s1,k, Comput (ProgramPart s2),s2,k equal_outside NAT & CurInstr (ProgramPart s1),(Comput (ProgramPart s1),s1,k) = CurInstr (ProgramPart s2),(Comput (ProgramPart s2),s2,k) ) )
set iI = Initialize (stop I);
I1:
s1 +* (Initialize (stop I)) = (Initialize s1) +* (stop I)
by SCMPDS_4:5;
I2:
s2 +* (Initialize (stop I)) = (Initialize s2) +* (stop I)
by SCMPDS_4:5;
assume that
A1:
I is_closed_on s1
and
A2:
Initialize (stop I) c= s1
and
A3:
Initialize (stop I) c= s2
and
A4:
s1,s2 equal_outside NAT
; for k being Element of NAT holds
( Comput (ProgramPart s1),s1,k, Comput (ProgramPart s2),s2,k equal_outside NAT & CurInstr (ProgramPart s1),(Comput (ProgramPart s1),s1,k) = CurInstr (ProgramPart s2),(Comput (ProgramPart s2),s2,k) )
A5:
s2 = s2 +* (Initialize (stop I))
by A3, FUNCT_4:79;
A6:
DataPart s1 = DataPart s2
by A4, SCMPDS_6:4;
s1 = s1 +* (Initialize (stop I))
by A2, FUNCT_4:79;
hence
for k being Element of NAT holds
( Comput (ProgramPart s1),s1,k, Comput (ProgramPart s2),s2,k equal_outside NAT & CurInstr (ProgramPart s1),(Comput (ProgramPart s1),s1,k) = CurInstr (ProgramPart s2),(Comput (ProgramPart s2),s2,k) )
by A1, A5, A6, Th25, I1, I2; verum