let s be State of SCMPDS ; for I being Program of SCMPDS
for J being shiftable Program of SCMPDS st I is_closed_on s & I is_halting_on s & J is_closed_on IExec I,s & J is_halting_on IExec I,s holds
( I ';' J is_closed_on s & I ';' J is_halting_on s )
let I be Program of SCMPDS ; for J being shiftable Program of SCMPDS st I is_closed_on s & I is_halting_on s & J is_closed_on IExec I,s & J is_halting_on IExec I,s holds
( I ';' J is_closed_on s & I ';' J is_halting_on s )
let J be shiftable Program of SCMPDS ; ( I is_closed_on s & I is_halting_on s & J is_closed_on IExec I,s & J is_halting_on IExec I,s implies ( I ';' J is_closed_on s & I ';' J is_halting_on s ) )
set sE = IExec I,s;
assume that
A1:
I is_closed_on s
and
A2:
I is_halting_on s
and
A3:
J is_closed_on IExec I,s
and
A4:
J is_halting_on IExec I,s
; ( I ';' J is_closed_on s & I ';' J is_halting_on s )
set IJ = I ';' J;
set sIJ = stop (I ';' J);
set IsIJ = Initialized (stop (I ';' J));
set spI = stop I;
set IsI = Initialized (stop I);
set ss = s +* (Initialized (stop (I ';' J)));
set spJ = stop J;
set IsJ = Initialized (stop J);
set s1 = s +* (Initialized (stop I));
set m1 = LifeSpan (s +* (Initialized (stop I)));
set sm = Comput (ProgramPart (s +* (Initialized (stop I)))),(s +* (Initialized (stop I))),(LifeSpan (s +* (Initialized (stop I))));
set s3 = (Comput (ProgramPart (s +* (Initialized (stop I)))),(s +* (Initialized (stop I))),(LifeSpan (s +* (Initialized (stop I))))) +* (Initialized (stop J));
set m3 = LifeSpan ((Comput (ProgramPart (s +* (Initialized (stop I)))),(s +* (Initialized (stop I))),(LifeSpan (s +* (Initialized (stop I))))) +* (Initialized (stop J)));
A5:
dom (DataPart (Initialized (stop J))) = (dom (Initialized (stop J))) /\ SCM-Data-Loc
by RELAT_1:90, SCMPDS_2:100;
J is_halting_on Comput (ProgramPart (s +* (Initialized (stop I)))),(s +* (Initialized (stop I))),(LifeSpan (s +* (Initialized (stop I))))
by A2, A3, A4, Th42;
then A6:
ProgramPart ((Comput (ProgramPart (s +* (Initialized (stop I)))),(s +* (Initialized (stop I))),(LifeSpan (s +* (Initialized (stop I))))) +* (Initialized (stop J))) halts_on (Comput (ProgramPart (s +* (Initialized (stop I)))),(s +* (Initialized (stop I))),(LifeSpan (s +* (Initialized (stop I))))) +* (Initialized (stop J))
by SCMPDS_6:def 3;
A7:
J is_closed_on Comput (ProgramPart (s +* (Initialized (stop I)))),(s +* (Initialized (stop I))),(LifeSpan (s +* (Initialized (stop I))))
by A2, A3, A4, Th42;
then A8:
J is_closed_on (Comput (ProgramPart (s +* (Initialized (stop I)))),(s +* (Initialized (stop I))),(LifeSpan (s +* (Initialized (stop I))))) +* (Initialized (stop J))
by SCMPDS_6:38;
set s4 = Comput (ProgramPart (s +* (Initialized (stop (I ';' J))))),(s +* (Initialized (stop (I ';' J)))),(LifeSpan (s +* (Initialized (stop I))));
A14:
DataPart ((Comput (ProgramPart (s +* (Initialized (stop I)))),(s +* (Initialized (stop I))),(LifeSpan (s +* (Initialized (stop I))))) +* (Initialized (stop J))) = (DataPart (Comput (ProgramPart (s +* (Initialized (stop I)))),(s +* (Initialized (stop I))),(LifeSpan (s +* (Initialized (stop I)))))) +* (DataPart (Initialized (stop J)))
by FUNCT_4:75;
A15:
Initialized (stop J) c= (Comput (ProgramPart (s +* (Initialized (stop I)))),(s +* (Initialized (stop I))),(LifeSpan (s +* (Initialized (stop I))))) +* (Initialized (stop J))
by FUNCT_4:26;
then
dom (Initialized (stop J)) c= dom ((Comput (ProgramPart (s +* (Initialized (stop I)))),(s +* (Initialized (stop I))),(LifeSpan (s +* (Initialized (stop I))))) +* (Initialized (stop J)))
by GRFUNC_1:8;
then
dom (Initialized (stop J)) c= the carrier of SCMPDS
by PARTFUN1:def 4;
then
dom (DataPart (Initialized (stop J))) c= the carrier of SCMPDS /\ SCM-Data-Loc
by A5, XBOOLE_1:26;
then
dom (DataPart (Initialized (stop J))) c= (dom (Comput (ProgramPart (s +* (Initialized (stop I)))),(s +* (Initialized (stop I))),(LifeSpan (s +* (Initialized (stop I)))))) /\ SCM-Data-Loc
by PARTFUN1:def 4;
then
dom (DataPart (Initialized (stop J))) c= dom (DataPart (Comput (ProgramPart (s +* (Initialized (stop I)))),(s +* (Initialized (stop I))),(LifeSpan (s +* (Initialized (stop I))))))
by RELAT_1:90, SCMPDS_2:100;
then
DataPart (Initialized (stop J)) c= DataPart (Comput (ProgramPart (s +* (Initialized (stop I)))),(s +* (Initialized (stop I))),(LifeSpan (s +* (Initialized (stop I)))))
by A9, GRFUNC_1:8;
then A16:
DataPart (Comput (ProgramPart (s +* (Initialized (stop I)))),(s +* (Initialized (stop I))),(LifeSpan (s +* (Initialized (stop I))))) = DataPart ((Comput (ProgramPart (s +* (Initialized (stop I)))),(s +* (Initialized (stop I))),(LifeSpan (s +* (Initialized (stop I))))) +* (Initialized (stop J)))
by A14, LATTICE2:8;
s +* (Initialized (stop (I ';' J))) = s +* ((I ';' (J ';' (Stop SCMPDS ))) +* (Start-At 0 ,SCMPDS ))
by SCMPDS_4:46;
then A17:
DataPart (Comput (ProgramPart (s +* (Initialized (stop (I ';' J))))),(s +* (Initialized (stop (I ';' J)))),(LifeSpan (s +* (Initialized (stop I))))) = DataPart ((Comput (ProgramPart (s +* (Initialized (stop I)))),(s +* (Initialized (stop I))),(LifeSpan (s +* (Initialized (stop I))))) +* (Initialized (stop J)))
by A1, A2, A16, Th38, SCMPDS_4:24;
stop (I ';' J) =
I ';' (J ';' (Stop SCMPDS ))
by SCMPDS_4:46
.=
I +* (Shift (stop J),(card I))
;
then A18:
Shift (stop J),(card I) c= stop (I ';' J)
by FUNCT_4:26;
stop (I ';' J) c= s +* (Initialized (stop (I ';' J)))
by FUNCT_4:26, SCMPDS_4:57;
then
Shift (stop J),(card I) c= s +* (Initialized (stop (I ';' J)))
by A18, XBOOLE_1:1;
then A19:
Shift (stop J),(card I) c= Comput (ProgramPart (s +* (Initialized (stop (I ';' J))))),(s +* (Initialized (stop (I ';' J)))),(LifeSpan (s +* (Initialized (stop I))))
by AMI_1:81;
A20:
dom (stop I) c= dom (stop (I ';' J))
by SCMPDS_5:16;
now let k be
Element of
NAT ;
IC (Comput (ProgramPart (s +* (Initialized (stop (I ';' J))))),(s +* (Initialized (stop (I ';' J)))),b1) in dom (stop (I ';' J))T:
ProgramPart (s +* (Initialized (stop (I ';' J)))) = ProgramPart (Comput (ProgramPart (s +* (Initialized (stop (I ';' J))))),(s +* (Initialized (stop (I ';' J)))),(LifeSpan (s +* (Initialized (stop I)))))
by AMI_1:144;
per cases
( k <= LifeSpan (s +* (Initialized (stop I))) or k > LifeSpan (s +* (Initialized (stop I))) )
;
suppose A21:
k > LifeSpan (s +* (Initialized (stop I)))
;
IC (Comput (ProgramPart (s +* (Initialized (stop (I ';' J))))),(s +* (Initialized (stop (I ';' J)))),b1) in dom (stop (I ';' J))A22:
IC (Comput (ProgramPart (s +* (Initialized (stop (I ';' J))))),(s +* (Initialized (stop (I ';' J)))),(LifeSpan (s +* (Initialized (stop I))))) in dom (stop I)
by A1, A2, Th17, Th40;
hereby verum
per cases
( IC (Comput (ProgramPart (s +* (Initialized (stop (I ';' J))))),(s +* (Initialized (stop (I ';' J)))),(LifeSpan (s +* (Initialized (stop I))))) = card I or CurInstr (ProgramPart (Comput (ProgramPart (s +* (Initialized (stop (I ';' J))))),(s +* (Initialized (stop (I ';' J)))),(LifeSpan (s +* (Initialized (stop I)))))),(Comput (ProgramPart (s +* (Initialized (stop (I ';' J))))),(s +* (Initialized (stop (I ';' J)))),(LifeSpan (s +* (Initialized (stop I))))) = halt SCMPDS )
by A1, A2, Th17, Th41;
suppose A23:
IC (Comput (ProgramPart (s +* (Initialized (stop (I ';' J))))),(s +* (Initialized (stop (I ';' J)))),(LifeSpan (s +* (Initialized (stop I))))) = card I
;
IC (Comput (ProgramPart (s +* (Initialized (stop (I ';' J))))),(s +* (Initialized (stop (I ';' J)))),k) in dom (stop (I ';' J))consider ii being
Nat such that A24:
k = (LifeSpan (s +* (Initialized (stop I)))) + ii
by A21, NAT_1:10;
reconsider ii =
ii as
Element of
NAT by ORDINAL1:def 13;
reconsider nn =
IC (Comput (ProgramPart ((Comput (ProgramPart (s +* (Initialized (stop I)))),(s +* (Initialized (stop I))),(LifeSpan (s +* (Initialized (stop I))))) +* (Initialized (stop J)))),((Comput (ProgramPart (s +* (Initialized (stop I)))),(s +* (Initialized (stop I))),(LifeSpan (s +* (Initialized (stop I))))) +* (Initialized (stop J))),ii) as
Element of
NAT ;
(IC (Comput (ProgramPart ((Comput (ProgramPart (s +* (Initialized (stop I)))),(s +* (Initialized (stop I))),(LifeSpan (s +* (Initialized (stop I))))) +* (Initialized (stop J)))),((Comput (ProgramPart (s +* (Initialized (stop I)))),(s +* (Initialized (stop I))),(LifeSpan (s +* (Initialized (stop I))))) +* (Initialized (stop J))),ii)) + (card I) = IC (Comput (ProgramPart (Comput (ProgramPart (s +* (Initialized (stop (I ';' J))))),(s +* (Initialized (stop (I ';' J)))),(LifeSpan (s +* (Initialized (stop I)))))),(Comput (ProgramPart (s +* (Initialized (stop (I ';' J))))),(s +* (Initialized (stop (I ';' J)))),(LifeSpan (s +* (Initialized (stop I))))),ii)
by A15, A17, A8, A19, A23, SCMPDS_6:45;
then A25:
IC (Comput (ProgramPart (Comput (ProgramPart (s +* (Initialized (stop (I ';' J))))),(s +* (Initialized (stop (I ';' J)))),(LifeSpan (s +* (Initialized (stop I)))))),(s +* (Initialized (stop (I ';' J)))),k) =
nn + (card I)
by A24, AMI_1:51, T
.=
nn + (card I)
;
nn in dom (stop J)
by A7, SCMPDS_6:def 2;
then
nn < card (stop J)
by SCMPDS_4:1;
then
nn < (card J) + 1
by SCMPDS_5:7;
then A26:
(card I) + nn < (card I) + ((card J) + 1)
by XREAL_1:8;
card (stop (I ';' J)) =
(card (I ';' J)) + 1
by SCMPDS_5:7
.=
((card I) + (card J)) + 1
by SCMPDS_4:45
;
hence
IC (Comput (ProgramPart (s +* (Initialized (stop (I ';' J))))),(s +* (Initialized (stop (I ';' J)))),k) in dom (stop (I ';' J))
by A26, A25, SCMPDS_4:1, T;
verum end; end;
end; end; end; end;
hence
I ';' J is_closed_on s
by SCMPDS_6:def 2; I ';' J is_halting_on s
T:
ProgramPart (s +* (Initialized (stop (I ';' J)))) = ProgramPart (Comput (ProgramPart (s +* (Initialized (stop (I ';' J))))),(s +* (Initialized (stop (I ';' J)))),(LifeSpan (s +* (Initialized (stop I)))))
by AMI_1:144;
x:
Comput (ProgramPart (s +* (Initialized (stop (I ';' J))))),(s +* (Initialized (stop (I ';' J)))),((LifeSpan (s +* (Initialized (stop I)))) + (LifeSpan ((Comput (ProgramPart (s +* (Initialized (stop I)))),(s +* (Initialized (stop I))),(LifeSpan (s +* (Initialized (stop I))))) +* (Initialized (stop J))))) = Comput (ProgramPart (s +* (Initialized (stop (I ';' J))))),(Comput (ProgramPart (s +* (Initialized (stop (I ';' J))))),(s +* (Initialized (stop (I ';' J)))),(LifeSpan (s +* (Initialized (stop I))))),(LifeSpan ((Comput (ProgramPart (s +* (Initialized (stop I)))),(s +* (Initialized (stop I))),(LifeSpan (s +* (Initialized (stop I))))) +* (Initialized (stop J))))
by AMI_1:51;
per cases
( CurInstr (ProgramPart (Comput (ProgramPart (s +* (Initialized (stop (I ';' J))))),(s +* (Initialized (stop (I ';' J)))),(LifeSpan (s +* (Initialized (stop I)))))),(Comput (ProgramPart (s +* (Initialized (stop (I ';' J))))),(s +* (Initialized (stop (I ';' J)))),(LifeSpan (s +* (Initialized (stop I))))) = halt SCMPDS or IC (Comput (ProgramPart (s +* (Initialized (stop (I ';' J))))),(s +* (Initialized (stop (I ';' J)))),(LifeSpan (s +* (Initialized (stop I))))) = card I )
by A1, A2, Th17, Th41;
suppose
IC (Comput (ProgramPart (s +* (Initialized (stop (I ';' J))))),(s +* (Initialized (stop (I ';' J)))),(LifeSpan (s +* (Initialized (stop I))))) = card I
;
I ';' J is_halting_on sthen
CurInstr (ProgramPart (Comput (ProgramPart ((Comput (ProgramPart (s +* (Initialized (stop I)))),(s +* (Initialized (stop I))),(LifeSpan (s +* (Initialized (stop I))))) +* (Initialized (stop J)))),((Comput (ProgramPart (s +* (Initialized (stop I)))),(s +* (Initialized (stop I))),(LifeSpan (s +* (Initialized (stop I))))) +* (Initialized (stop J))),(LifeSpan ((Comput (ProgramPart (s +* (Initialized (stop I)))),(s +* (Initialized (stop I))),(LifeSpan (s +* (Initialized (stop I))))) +* (Initialized (stop J)))))),
(Comput (ProgramPart ((Comput (ProgramPart (s +* (Initialized (stop I)))),(s +* (Initialized (stop I))),(LifeSpan (s +* (Initialized (stop I))))) +* (Initialized (stop J)))),((Comput (ProgramPart (s +* (Initialized (stop I)))),(s +* (Initialized (stop I))),(LifeSpan (s +* (Initialized (stop I))))) +* (Initialized (stop J))),(LifeSpan ((Comput (ProgramPart (s +* (Initialized (stop I)))),(s +* (Initialized (stop I))),(LifeSpan (s +* (Initialized (stop I))))) +* (Initialized (stop J))))) = CurInstr (ProgramPart (Comput (ProgramPart (Comput (ProgramPart (s +* (Initialized (stop (I ';' J))))),(s +* (Initialized (stop (I ';' J)))),(LifeSpan (s +* (Initialized (stop I)))))),(Comput (ProgramPart (s +* (Initialized (stop (I ';' J))))),(s +* (Initialized (stop (I ';' J)))),(LifeSpan (s +* (Initialized (stop I))))),(LifeSpan ((Comput (ProgramPart (s +* (Initialized (stop I)))),(s +* (Initialized (stop I))),(LifeSpan (s +* (Initialized (stop I))))) +* (Initialized (stop J)))))),
(Comput (ProgramPart (Comput (ProgramPart (s +* (Initialized (stop (I ';' J))))),(s +* (Initialized (stop (I ';' J)))),(LifeSpan (s +* (Initialized (stop I)))))),(Comput (ProgramPart (s +* (Initialized (stop (I ';' J))))),(s +* (Initialized (stop (I ';' J)))),(LifeSpan (s +* (Initialized (stop I))))),(LifeSpan ((Comput (ProgramPart (s +* (Initialized (stop I)))),(s +* (Initialized (stop I))),(LifeSpan (s +* (Initialized (stop I))))) +* (Initialized (stop J)))))
by A15, A17, A8, A19, SCMPDS_6:45;
then CurInstr (ProgramPart (Comput (ProgramPart (s +* (Initialized (stop (I ';' J))))),(s +* (Initialized (stop (I ';' J)))),((LifeSpan (s +* (Initialized (stop I)))) + (LifeSpan ((Comput (ProgramPart (s +* (Initialized (stop I)))),(s +* (Initialized (stop I))),(LifeSpan (s +* (Initialized (stop I))))) +* (Initialized (stop J))))))),
(Comput (ProgramPart (s +* (Initialized (stop (I ';' J))))),(s +* (Initialized (stop (I ';' J)))),((LifeSpan (s +* (Initialized (stop I)))) + (LifeSpan ((Comput (ProgramPart (s +* (Initialized (stop I)))),(s +* (Initialized (stop I))),(LifeSpan (s +* (Initialized (stop I))))) +* (Initialized (stop J)))))) =
CurInstr (ProgramPart (Comput (ProgramPart ((Comput (ProgramPart (s +* (Initialized (stop I)))),(s +* (Initialized (stop I))),(LifeSpan (s +* (Initialized (stop I))))) +* (Initialized (stop J)))),((Comput (ProgramPart (s +* (Initialized (stop I)))),(s +* (Initialized (stop I))),(LifeSpan (s +* (Initialized (stop I))))) +* (Initialized (stop J))),(LifeSpan ((Comput (ProgramPart (s +* (Initialized (stop I)))),(s +* (Initialized (stop I))),(LifeSpan (s +* (Initialized (stop I))))) +* (Initialized (stop J)))))),
(Comput (ProgramPart ((Comput (ProgramPart (s +* (Initialized (stop I)))),(s +* (Initialized (stop I))),(LifeSpan (s +* (Initialized (stop I))))) +* (Initialized (stop J)))),((Comput (ProgramPart (s +* (Initialized (stop I)))),(s +* (Initialized (stop I))),(LifeSpan (s +* (Initialized (stop I))))) +* (Initialized (stop J))),(LifeSpan ((Comput (ProgramPart (s +* (Initialized (stop I)))),(s +* (Initialized (stop I))),(LifeSpan (s +* (Initialized (stop I))))) +* (Initialized (stop J)))))
by x, T
.=
halt SCMPDS
by A6, AMI_1:def 46
;
then
ProgramPart (s +* (Initialized (stop (I ';' J)))) halts_on s +* (Initialized (stop (I ';' J)))
by AMI_1:146;
hence
I ';' J is_halting_on s
by SCMPDS_6:def 3;
verum end; end;