let s be State of SCMPDS ; :: thesis: for I, J being Program of SCMPDS st I is_halting_on s & J is_closed_on IExec I,s & J is_halting_on IExec I,s holds
( J is_closed_on Computation (s +* (Initialized (stop I))),(LifeSpan (s +* (Initialized (stop I)))) & J is_halting_on Computation (s +* (Initialized (stop I))),(LifeSpan (s +* (Initialized (stop I)))) )
let I, J be Program of SCMPDS ; :: thesis: ( I is_halting_on s & J is_closed_on IExec I,s & J is_halting_on IExec I,s implies ( J is_closed_on Computation (s +* (Initialized (stop I))),(LifeSpan (s +* (Initialized (stop I)))) & J is_halting_on Computation (s +* (Initialized (stop I))),(LifeSpan (s +* (Initialized (stop I)))) ) )
set s1 = s +* (Initialized (stop I));
set sm = Computation (s +* (Initialized (stop I))),(LifeSpan (s +* (Initialized (stop I))));
set sE = IExec I,s;
assume A1:
( I is_halting_on s & J is_closed_on IExec I,s & J is_halting_on IExec I,s )
; :: thesis: ( J is_closed_on Computation (s +* (Initialized (stop I))),(LifeSpan (s +* (Initialized (stop I)))) & J is_halting_on Computation (s +* (Initialized (stop I))),(LifeSpan (s +* (Initialized (stop I)))) )
A2:
dom (s | NAT ) = NAT
by SCMPDS_6:1;
A3:
s +* (Initialized (stop I)) is halting
by A1, SCMPDS_6:def 3;
DataPart (IExec I,s) =
DataPart (Result (s +* (Initialized (stop I))))
by A2, AMI_2:29, FUNCT_4:76, SCMPDS_2:100
.=
DataPart (Computation (s +* (Initialized (stop I))),(LifeSpan (s +* (Initialized (stop I)))))
by A3, AMI_1:122
;
hence
( J is_closed_on Computation (s +* (Initialized (stop I))),(LifeSpan (s +* (Initialized (stop I)))) & J is_halting_on Computation (s +* (Initialized (stop I))),(LifeSpan (s +* (Initialized (stop I)))) )
by A1, SCMPDS_6:37; :: thesis: verum