set i1 = (F3(),F4()) <=0_goto ((card F2()) + 3);
set J = F2() ';' (AddTo (F3(),F4(),(- F5())));
set i3 = goto (- ((card F2()) + 2));
set b = DataLoc ((F1() . F3()),F4());
set FOR = for-down (F3(),F4(),F5(),F2());
set pFOR = stop (for-down (F3(),F4(),F5(),F2()));
set pJ = stop (F2() ';' (AddTo (F3(),F4(),(- F5()))));
defpred S1[ Nat] means for t being State of SCMPDS st t . (DataLoc ((F1() . F3()),F4())) <= $1 & P1[ Dstate t] & t . F3() = F1() . F3() holds
( for-down (F3(),F4(),F5(),F2()) is_closed_on t & for-down (F3(),F4(),F5(),F2()) is_halting_on t );
A4: for k being Element of NAT st S1[k] holds
S1[k + 1]
proof
let k be Element of NAT ; :: thesis: ( S1[k] implies S1[k + 1] )
assume A5: S1[k] ; :: thesis: S1[k + 1]
now
let t be State of SCMPDS; :: thesis: ( t . (DataLoc ((F1() . F3()),F4())) <= k + 1 & P1[ Dstate t] & t . F3() = F1() . F3() implies ( for-down (F3(),F4(),F5(),F2()) is_closed_on b1 & for-down (F3(),F4(),F5(),F2()) is_halting_on b1 ) )
assume A6: t . (DataLoc ((F1() . F3()),F4())) <= k + 1 ; :: thesis: ( P1[ Dstate t] & t . F3() = F1() . F3() implies ( for-down (F3(),F4(),F5(),F2()) is_closed_on b1 & for-down (F3(),F4(),F5(),F2()) is_halting_on b1 ) )
assume A7: P1[ Dstate t] ; :: thesis: ( t . F3() = F1() . F3() implies ( for-down (F3(),F4(),F5(),F2()) is_closed_on b1 & for-down (F3(),F4(),F5(),F2()) is_halting_on b1 ) )
assume A8: t . F3() = F1() . F3() ; :: thesis: ( for-down (F3(),F4(),F5(),F2()) is_closed_on b1 & for-down (F3(),F4(),F5(),F2()) is_halting_on b1 )
per cases ( t . (DataLoc ((F1() . F3()),F4())) <= 0 or t . (DataLoc ((F1() . F3()),F4())) > 0 ) ;
suppose t . (DataLoc ((F1() . F3()),F4())) <= 0 ; :: thesis: ( for-down (F3(),F4(),F5(),F2()) is_closed_on b1 & for-down (F3(),F4(),F5(),F2()) is_halting_on b1 )
hence ( for-down (F3(),F4(),F5(),F2()) is_closed_on t & for-down (F3(),F4(),F5(),F2()) is_halting_on t ) by A8, SCMPDS_7:63; :: thesis: verum
end;
suppose A9: t . (DataLoc ((F1() . F3()),F4())) > 0 ; :: thesis: ( for-down (F3(),F4(),F5(),F2()) is_closed_on b1 & for-down (F3(),F4(),F5(),F2()) is_halting_on b1 )
A10: dom (ProgramPart t) = NAT by COMPOS_1:34;
A11: not F3() in dom (t | NAT) by A10, SCMPDS_2:53;
A12: not DataLoc ((F1() . F3()),F4()) in dom (t | NAT) by A10, SCMPDS_2:53;
A13: 0 in dom (stop (for-down (F3(),F4(),F5(),F2()))) by COMPOS_1:135;
- (- F5()) > 0 by A1;
then - F5() < 0 ;
then - F5() <= - 1 by INT_1:21;
then A14: (- F5()) + (t . (DataLoc ((F1() . F3()),F4()))) <= (- 1) + (t . (DataLoc ((F1() . F3()),F4()))) by XREAL_1:8;
(t . (DataLoc ((F1() . F3()),F4()))) - 1 <= k by A6, XREAL_1:22;
then A15: (- F5()) + (t . (DataLoc ((F1() . F3()),F4()))) <= k by A14, XXREAL_0:2;
set t2 = (Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5())))));
set t3 = (Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2())));
set t4 = Comput ((ProgramPart ((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2()))))),((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2())))),1);
set Jt = IExec ((F2() ';' (AddTo (F3(),F4(),(- F5())))),t);
I1: (Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5()))))) = t +* (Initialize (stop (F2() ';' (AddTo (F3(),F4(),(- F5())))))) by COMPOS_1:125;
I2: (Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2()))) = t +* (Initialize (stop (for-down (F3(),F4(),F5(),F2())))) by COMPOS_1:125;
A16: Initialize (stop (F2() ';' (AddTo (F3(),F4(),(- F5()))))) c= (Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5()))))) by I1, FUNCT_4:26;
B17: for-down (F3(),F4(),F5(),F2()) = ((F3(),F4()) <=0_goto ((card F2()) + 3)) ';' ((F2() ';' (AddTo (F3(),F4(),(- F5())))) ';' (goto (- ((card F2()) + 2)))) by Lm3;
A18: Comput ((ProgramPart ((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2()))))),((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2())))),(0 + 1)) = Following ((ProgramPart ((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2()))))),(Comput ((ProgramPart ((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2()))))),((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2())))),0))) by EXTPRO_1:4
.= Following ((ProgramPart ((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2()))))),((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2()))))) by EXTPRO_1:3
.= Exec (((F3(),F4()) <=0_goto ((card F2()) + 3)),((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2()))))) by B17, I2, SCMPDS_6:22 ;
A19: DataPart ((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5())))))) = DataPart ((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2())))) by COMPOS_1:138, FUNCT_7:134;
now
let x be Int_position ; :: thesis: ((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5())))))) . x = (Comput ((ProgramPart ((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2()))))),((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2())))),1)) . x
thus ((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5())))))) . x = ((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2())))) . x by A19, SCMPDS_4:23
.= (Comput ((ProgramPart ((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2()))))),((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2())))),1)) . x by A18, SCMPDS_2:68 ; :: thesis: verum
end;
then A20: DataPart ((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5())))))) = DataPart (Comput ((ProgramPart ((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2()))))),((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2())))),1)) by SCMPDS_4:23;
A21: (IExec ((F2() ';' (AddTo (F3(),F4(),(- F5())))),t)) . (DataLoc ((F1() . F3()),F4())) = (t . (DataLoc ((F1() . F3()),F4()))) - F5() by A3, A7, A8, A9;
A22: (IExec ((F2() ';' (AddTo (F3(),F4(),(- F5())))),t)) . F3() = t . F3() by A3, A7, A8, A9;
set m2 = LifeSpan ((ProgramPart ((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5()))))))),((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5())))))));
set t5 = Comput ((ProgramPart (Comput ((ProgramPart ((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2()))))),((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2())))),1))),(Comput ((ProgramPart ((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2()))))),((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2())))),1)),(LifeSpan ((ProgramPart ((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5()))))))),((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5())))))))));
set l1 = (card (F2() ';' (AddTo (F3(),F4(),(- F5()))))) + 1;
A23: card (F2() ';' (AddTo (F3(),F4(),(- F5())))) = (card F2()) + 1 by SCMP_GCD:8;
A24: dom (ProgramPart t) = NAT by COMPOS_1:34;
A25: not DataLoc ((F1() . F3()),F4()) in dom (Initialize (stop (for-down (F3(),F4(),F5(),F2())))) by SCMPDS_4:31;
not F3() in dom (Initialize (stop (for-down (F3(),F4(),F5(),F2())))) by SCMPDS_4:31;
then A26: ((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2())))) . (DataLoc ((((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2())))) . F3()),F4())) = ((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2())))) . (DataLoc ((F1() . F3()),F4())) by A8, I2, FUNCT_4:12
.= t . (DataLoc ((F1() . F3()),F4())) by A25, I2, FUNCT_4:12 ;
A27: IC ((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2())))) = 0 by SCMPDS_6:21;
A28: ( F2() is_closed_on t & F2() is_halting_on t ) by A3, A7, A8, A9;
then A29: F2() ';' (AddTo (F3(),F4(),(- F5()))) is_closed_on t by Th6;
then A30: F2() ';' (AddTo (F3(),F4(),(- F5()))) is_closed_on (Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5()))))) by SCMPDS_6:38;
(card F2()) + 2 < (card F2()) + 3 by XREAL_1:8;
then A31: (card (F2() ';' (AddTo (F3(),F4(),(- F5()))))) + 1 in dom (for-down (F3(),F4(),F5(),F2())) by A23, SCMPDS_7:61;
set m3 = (LifeSpan ((ProgramPart ((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5()))))))),((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5())))))))) + 1;
set t6 = Comput ((ProgramPart ((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2()))))),((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2())))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5()))))))),((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5())))))))) + 1));
ProgramPart ((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2())))) = ProgramPart (Comput ((ProgramPart ((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2()))))),((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2())))),1)) by AMI_1:123;
then A32: Comput ((ProgramPart ((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2()))))),((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2())))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5()))))))),((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5())))))))) + 1)) = Comput ((ProgramPart (Comput ((ProgramPart ((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2()))))),((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2())))),1))),(Comput ((ProgramPart ((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2()))))),((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2())))),1)),(LifeSpan ((ProgramPart ((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5()))))))),((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5()))))))))) by EXTPRO_1:5;
I3: (Initialize ((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5()))))))) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5()))))) = ((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5())))))) +* (Initialize (stop (F2() ';' (AddTo (F3(),F4(),(- F5())))))) by COMPOS_1:125;
B33: F2() ';' (AddTo (F3(),F4(),(- F5()))) is_halting_on t by A28, Th6;
then A33: ProgramPart ((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5())))))) halts_on (Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5()))))) by SCMPDS_6:def 3;
(Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5()))))) = (Initialize ((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5()))))))) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5()))))) by A16, I3, FUNCT_4:79;
then ProgramPart ((Initialize ((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5()))))))) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5())))))) halts_on (Initialize ((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5()))))))) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5()))))) by B33, SCMPDS_6:def 3;
then A34: F2() ';' (AddTo (F3(),F4(),(- F5()))) is_halting_on (Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5()))))) by SCMPDS_6:def 3;
set m4 = ((LifeSpan ((ProgramPart ((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5()))))))),((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5())))))))) + 1) + 1;
set t7 = Comput ((ProgramPart ((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2()))))),((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2())))),(((LifeSpan ((ProgramPart ((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5()))))))),((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5())))))))) + 1) + 1));
A35: IExec ((F2() ';' (AddTo (F3(),F4(),(- F5())))),t) = (Result ((ProgramPart ((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5()))))))),((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5())))))))) +* (t | NAT) by SCMPDS_4:def 8;
( for-down (F3(),F4(),F5(),F2()) c= Initialize (stop (for-down (F3(),F4(),F5(),F2()))) & Initialize (stop (for-down (F3(),F4(),F5(),F2()))) c= (Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2()))) ) by I2, FUNCT_4:26, SCMPDS_6:17;
then A36: for-down (F3(),F4(),F5(),F2()) c= (Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2()))) by XBOOLE_1:1;
Shift ((F2() ';' (AddTo (F3(),F4(),(- F5())))),1) c= for-down (F3(),F4(),F5(),F2()) by Lm4;
then Shift ((F2() ';' (AddTo (F3(),F4(),(- F5())))),1) c= (Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2()))) by A36, XBOOLE_1:1;
then A37: Shift ((F2() ';' (AddTo (F3(),F4(),(- F5())))),1) c= Comput ((ProgramPart ((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2()))))),((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2())))),1) by AMI_1:81;
A38: IC (Comput ((ProgramPart ((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2()))))),((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2())))),1)) = (Comput ((ProgramPart ((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2()))))),((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2())))),1)) . (IC SCMPDS)
.= succ (IC ((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2()))))) by A9, A18, A26, SCMPDS_2:68
.= 0 + 1 by A27 ;
then A39: DataPart (Comput ((ProgramPart ((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5()))))))),((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5())))))),(LifeSpan ((ProgramPart ((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5()))))))),((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5())))))))))) = DataPart (Comput ((ProgramPart (Comput ((ProgramPart ((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2()))))),((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2())))),1))),(Comput ((ProgramPart ((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2()))))),((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2())))),1)),(LifeSpan ((ProgramPart ((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5()))))))),((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5())))))))))) by A23, A16, A34, A30, A20, A37, SCMPDS_7:36;
then A40: DataPart (Comput ((ProgramPart (Comput ((ProgramPart ((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2()))))),((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2())))),1))),(Comput ((ProgramPart ((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2()))))),((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2())))),1)),(LifeSpan ((ProgramPart ((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5()))))))),((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5())))))))))) = DataPart (Result ((ProgramPart ((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5()))))))),((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5())))))))) by A33, EXTPRO_1:23
.= DataPart ((Result ((ProgramPart ((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5()))))))),((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5())))))))) +* (t | NAT)) by A24, AMI_2:29, FUNCT_4:76, SCMPDS_2:100
.= DataPart (IExec ((F2() ';' (AddTo (F3(),F4(),(- F5())))),t)) by SCMPDS_4:def 8 ;
A41: IC (Comput ((ProgramPart (Comput ((ProgramPart ((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2()))))),((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2())))),1))),(Comput ((ProgramPart ((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2()))))),((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2())))),1)),(LifeSpan ((ProgramPart ((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5()))))))),((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5())))))))))) = (card (F2() ';' (AddTo (F3(),F4(),(- F5()))))) + 1 by A16, A34, A30, A38, A20, A37, SCMPDS_7:36;
then A42: CurInstr ((ProgramPart (Comput ((ProgramPart ((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2()))))),((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2())))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5()))))))),((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5())))))))) + 1)))),(Comput ((ProgramPart ((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2()))))),((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2())))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5()))))))),((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5())))))))) + 1)))) = (Comput ((ProgramPart (Comput ((ProgramPart ((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2()))))),((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2())))),1))),(Comput ((ProgramPart ((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2()))))),((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2())))),1)),(LifeSpan ((ProgramPart ((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5()))))))),((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5())))))))))) . ((card (F2() ';' (AddTo (F3(),F4(),(- F5()))))) + 1) by A32, COMPOS_1:38
.= (Comput ((ProgramPart ((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2()))))),((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2())))),1)) . ((card (F2() ';' (AddTo (F3(),F4(),(- F5()))))) + 1) by AMI_1:54
.= ((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2())))) . ((card (F2() ';' (AddTo (F3(),F4(),(- F5()))))) + 1) by AMI_1:54
.= (for-down (F3(),F4(),F5(),F2())) . ((card (F2() ';' (AddTo (F3(),F4(),(- F5()))))) + 1) by A31, A36, GRFUNC_1:8
.= goto (- ((card F2()) + 2)) by A23, SCMPDS_7:62 ;
A43: Comput ((ProgramPart ((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2()))))),((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2())))),(((LifeSpan ((ProgramPart ((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5()))))))),((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5())))))))) + 1) + 1)) = Following ((ProgramPart ((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2()))))),(Comput ((ProgramPart ((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2()))))),((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2())))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5()))))))),((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5())))))))) + 1)))) by EXTPRO_1:4
.= Exec ((goto (- ((card F2()) + 2))),(Comput ((ProgramPart ((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2()))))),((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2())))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5()))))))),((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5())))))))) + 1)))) by A42, AMI_1:123 ;
InsCode (goto (- ((card F2()) + 2))) = 0 by SCMPDS_2:21;
then InsCode (goto (- ((card F2()) + 2))) in {0,4,5,6} by ENUMSET1:def 2;
then Dstate (Comput ((ProgramPart ((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2()))))),((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2())))),(((LifeSpan ((ProgramPart ((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5()))))))),((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5())))))))) + 1) + 1))) = Dstate (Comput ((ProgramPart ((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2()))))),((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2())))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5()))))))),((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5())))))))) + 1))) by A43, SCMPDS_8:3
.= Dstate (IExec ((F2() ';' (AddTo (F3(),F4(),(- F5())))),t)) by A40, A32, SCMPDS_8:2 ;
then A44: P1[ Dstate (Comput ((ProgramPart ((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2()))))),((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2())))),(((LifeSpan ((ProgramPart ((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5()))))))),((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5())))))))) + 1) + 1)))] by A3, A7, A8, A9;
IC (Comput ((ProgramPart ((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2()))))),((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2())))),(((LifeSpan ((ProgramPart ((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5()))))))),((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5())))))))) + 1) + 1))) = (Comput ((ProgramPart ((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2()))))),((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2())))),(((LifeSpan ((ProgramPart ((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5()))))))),((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5())))))))) + 1) + 1))) . (IC SCMPDS)
.= ICplusConst ((Comput ((ProgramPart ((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2()))))),((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2())))),((LifeSpan ((ProgramPart ((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5()))))))),((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5())))))))) + 1))),(0 - ((card F2()) + 2))) by A43, SCMPDS_2:66
.= 0 by A23, A41, A32, SCMPDS_7:1 ;
then A45: (Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2()))))),((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2())))),(((LifeSpan ((ProgramPart ((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5()))))))),((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5())))))))) + 1) + 1)))) +* (stop (for-down (F3(),F4(),F5(),F2()))) = Comput ((ProgramPart ((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2()))))),((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2())))),(((LifeSpan ((ProgramPart ((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5()))))))),((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5())))))))) + 1) + 1)) by SCMPDS_7:37;
(Comput ((ProgramPart (Comput ((ProgramPart ((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2()))))),((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2())))),1))),(Comput ((ProgramPart ((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2()))))),((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2())))),1)),(LifeSpan ((ProgramPart ((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5()))))))),((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5())))))))))) . (DataLoc ((F1() . F3()),F4())) = (Comput ((ProgramPart ((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5()))))))),((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5())))))),(LifeSpan ((ProgramPart ((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5()))))))),((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5())))))))))) . (DataLoc ((F1() . F3()),F4())) by A39, SCMPDS_4:23
.= (Result ((ProgramPart ((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5()))))))),((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5())))))))) . (DataLoc ((F1() . F3()),F4())) by A33, EXTPRO_1:23
.= (t . (DataLoc ((F1() . F3()),F4()))) - F5() by A21, A35, A12, FUNCT_4:12 ;
then A46: (Comput ((ProgramPart ((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2()))))),((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2())))),(((LifeSpan ((ProgramPart ((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5()))))))),((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5())))))))) + 1) + 1))) . (DataLoc ((F1() . F3()),F4())) = (- F5()) + (t . (DataLoc ((F1() . F3()),F4()))) by A32, A43, SCMPDS_2:66;
(Comput ((ProgramPart (Comput ((ProgramPart ((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2()))))),((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2())))),1))),(Comput ((ProgramPart ((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2()))))),((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2())))),1)),(LifeSpan ((ProgramPart ((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5()))))))),((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5())))))))))) . F3() = (Comput ((ProgramPart ((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5()))))))),((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5())))))),(LifeSpan ((ProgramPart ((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5()))))))),((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5())))))))))) . F3() by A39, SCMPDS_4:23
.= (Result ((ProgramPart ((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5()))))))),((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5())))))))) . F3() by A33, EXTPRO_1:23
.= F1() . F3() by A8, A22, A35, A11, FUNCT_4:12 ;
then A47: (Comput ((ProgramPart ((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2()))))),((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2())))),(((LifeSpan ((ProgramPart ((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5()))))))),((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5())))))))) + 1) + 1))) . F3() = F1() . F3() by A32, A43, SCMPDS_2:66;
then A48: for-down (F3(),F4(),F5(),F2()) is_closed_on Comput ((ProgramPart ((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2()))))),((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2())))),(((LifeSpan ((ProgramPart ((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5()))))))),((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5())))))))) + 1) + 1)) by A5, A44, A46, A15;
now
let k be Element of NAT ; :: thesis: IC (Comput ((ProgramPart ((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2()))))),((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2())))),b1)) in dom (stop (for-down (F3(),F4(),F5(),F2())))
per cases ( k < ((LifeSpan ((ProgramPart ((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5()))))))),((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5())))))))) + 1) + 1 or k >= ((LifeSpan ((ProgramPart ((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5()))))))),((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5())))))))) + 1) + 1 ) ;
suppose k < ((LifeSpan ((ProgramPart ((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5()))))))),((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5())))))))) + 1) + 1 ; :: thesis: IC (Comput ((ProgramPart ((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2()))))),((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2())))),b1)) in dom (stop (for-down (F3(),F4(),F5(),F2())))
then A49: k <= (LifeSpan ((ProgramPart ((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5()))))))),((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5())))))))) + 1 by INT_1:20;
hereby :: thesis: verum
per cases ( k <= LifeSpan ((ProgramPart ((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5()))))))),((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5()))))))) or k = (LifeSpan ((ProgramPart ((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5()))))))),((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5())))))))) + 1 ) by A49, NAT_1:8;
suppose A50: k <= LifeSpan ((ProgramPart ((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5()))))))),((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5()))))))) ; :: thesis: IC (Comput ((ProgramPart ((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2()))))),((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2())))),k)) in dom (stop (for-down (F3(),F4(),F5(),F2())))
hereby :: thesis: verum
per cases ( k = 0 or k <> 0 ) ;
suppose k = 0 ; :: thesis: IC (Comput ((ProgramPart ((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2()))))),((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2())))),k)) in dom (stop (for-down (F3(),F4(),F5(),F2())))
hence IC (Comput ((ProgramPart ((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2()))))),((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2())))),k)) in dom (stop (for-down (F3(),F4(),F5(),F2()))) by A13, A27, EXTPRO_1:3; :: thesis: verum
end;
suppose k <> 0 ; :: thesis: IC (Comput ((ProgramPart ((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2()))))),((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2())))),k)) in dom (stop (for-down (F3(),F4(),F5(),F2())))
then consider kn being Nat such that
A51: k = kn + 1 by NAT_1:6;
reconsider kn = kn as Element of NAT by ORDINAL1:def 13;
reconsider lm = IC (Comput ((ProgramPart ((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5()))))))),((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5())))))),kn)) as Element of NAT ;
t: ProgramPart ((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2())))) = ProgramPart (Comput ((ProgramPart ((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2()))))),((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2())))),1)) by AMI_1:123;
kn < k by A51, XREAL_1:31;
then kn < LifeSpan ((ProgramPart ((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5()))))))),((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5()))))))) by A50, XXREAL_0:2;
then (IC (Comput ((ProgramPart ((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5()))))))),((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5())))))),kn))) + 1 = IC (Comput ((ProgramPart (Comput ((ProgramPart ((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2()))))),((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2())))),1))),(Comput ((ProgramPart ((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2()))))),((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2())))),1)),kn)) by A23, A16, A34, A30, A38, A20, A37, SCMPDS_7:34;
then A52: IC (Comput ((ProgramPart ((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2()))))),((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2())))),k)) = lm + 1 by A51, t, EXTPRO_1:5;
IC (Comput ((ProgramPart ((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5()))))))),((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5())))))),kn)) in dom (stop (F2() ';' (AddTo (F3(),F4(),(- F5()))))) by A29, SCMPDS_6:def 2;
then lm < card (stop (F2() ';' (AddTo (F3(),F4(),(- F5()))))) by AFINSQ_1:70;
then lm < (card (F2() ';' (AddTo (F3(),F4(),(- F5()))))) + 1 by SCMPDS_5:7;
then A53: lm + 1 <= (card (F2() ';' (AddTo (F3(),F4(),(- F5()))))) + 1 by INT_1:20;
(card F2()) + 2 < (card F2()) + 4 by XREAL_1:8;
then lm + 1 < (card F2()) + 4 by A23, A53, XXREAL_0:2;
then lm + 1 < card (stop (for-down (F3(),F4(),F5(),F2()))) by Lm2;
hence IC (Comput ((ProgramPart ((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2()))))),((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2())))),k)) in dom (stop (for-down (F3(),F4(),F5(),F2()))) by A52, AFINSQ_1:70; :: thesis: verum
end;
end;
end;
end;
suppose A54: k = (LifeSpan ((ProgramPart ((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5()))))))),((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5())))))))) + 1 ; :: thesis: IC (Comput ((ProgramPart ((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2()))))),((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2())))),k)) in dom (stop (for-down (F3(),F4(),F5(),F2())))
(card (F2() ';' (AddTo (F3(),F4(),(- F5()))))) + 1 in dom (stop (for-down (F3(),F4(),F5(),F2()))) by A31, SCMPDS_6:18;
hence IC (Comput ((ProgramPart ((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2()))))),((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2())))),k)) in dom (stop (for-down (F3(),F4(),F5(),F2()))) by A16, A34, A30, A38, A20, A37, A32, A54, SCMPDS_7:36; :: thesis: verum
end;
end;
end;
end;
suppose k >= ((LifeSpan ((ProgramPart ((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5()))))))),((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5())))))))) + 1) + 1 ; :: thesis: IC (Comput ((ProgramPart ((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2()))))),((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2())))),b1)) in dom (stop (for-down (F3(),F4(),F5(),F2())))
then consider nn being Nat such that
A55: k = (((LifeSpan ((ProgramPart ((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5()))))))),((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5())))))))) + 1) + 1) + nn by NAT_1:10;
reconsider nn = nn as Element of NAT by ORDINAL1:def 13;
ProgramPart ((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2())))) = ProgramPart (Comput ((ProgramPart ((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2()))))),((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2())))),(((LifeSpan ((ProgramPart ((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5()))))))),((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5())))))))) + 1) + 1))) by AMI_1:123;
then Comput ((ProgramPart ((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2()))))),((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2())))),k) = Comput ((ProgramPart ((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2()))))),((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2())))),(((LifeSpan ((ProgramPart ((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5()))))))),((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5())))))))) + 1) + 1)))) +* (stop (for-down (F3(),F4(),F5(),F2()))))),((Initialize (Comput ((ProgramPart ((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2()))))),((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2())))),(((LifeSpan ((ProgramPart ((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5()))))))),((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5())))))))) + 1) + 1)))) +* (stop (for-down (F3(),F4(),F5(),F2())))),nn) by A45, A55, EXTPRO_1:5;
hence IC (Comput ((ProgramPart ((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2()))))),((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2())))),k)) in dom (stop (for-down (F3(),F4(),F5(),F2()))) by A48, SCMPDS_6:def 2; :: thesis: verum
end;
end;
end;
hence for-down (F3(),F4(),F5(),F2()) is_closed_on t by SCMPDS_6:def 2; :: thesis: for-down (F3(),F4(),F5(),F2()) is_halting_on t
for-down (F3(),F4(),F5(),F2()) is_halting_on Comput ((ProgramPart ((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2()))))),((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2())))),(((LifeSpan ((ProgramPart ((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5()))))))),((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5())))))))) + 1) + 1)) by A5, A47, A44, A46, A15;
then ProgramPart (Comput ((ProgramPart ((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2()))))),((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2())))),(((LifeSpan ((ProgramPart ((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5()))))))),((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5())))))))) + 1) + 1))) halts_on Comput ((ProgramPart ((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2()))))),((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2())))),(((LifeSpan ((ProgramPart ((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5()))))))),((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5())))))))) + 1) + 1)) by A45, SCMPDS_6:def 3;
then ProgramPart ((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2())))) halts_on Comput ((ProgramPart ((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2()))))),((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2())))),(((LifeSpan ((ProgramPart ((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5()))))))),((Initialize t) +* (stop (F2() ';' (AddTo (F3(),F4(),(- F5())))))))) + 1) + 1)) by AMI_1:123;
then ProgramPart ((Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2())))) halts_on (Initialize t) +* (stop (for-down (F3(),F4(),F5(),F2()))) by EXTPRO_1:22;
hence for-down (F3(),F4(),F5(),F2()) is_halting_on t by SCMPDS_6:def 3; :: thesis: verum
end;
end;
end;
hence S1[k + 1] ; :: thesis: verum
end;
thus ( P1[F1()] or not P1[F1()] ) ; :: thesis: ( for-down (F3(),F4(),F5(),F2()) is_closed_on F1() & for-down (F3(),F4(),F5(),F2()) is_halting_on F1() )
A56: S1[ 0 ] by SCMPDS_7:63;
A57: for k being Element of NAT holds S1[k] from NAT_1:sch 1(A56, A4);
per cases ( F1() . (DataLoc ((F1() . F3()),F4())) <= 0 or F1() . (DataLoc ((F1() . F3()),F4())) > 0 ) ;
suppose F1() . (DataLoc ((F1() . F3()),F4())) <= 0 ; :: thesis: ( for-down (F3(),F4(),F5(),F2()) is_closed_on F1() & for-down (F3(),F4(),F5(),F2()) is_halting_on F1() )
hence ( for-down (F3(),F4(),F5(),F2()) is_closed_on F1() & for-down (F3(),F4(),F5(),F2()) is_halting_on F1() ) by SCMPDS_7:63; :: thesis: verum
end;
suppose F1() . (DataLoc ((F1() . F3()),F4())) > 0 ; :: thesis: ( for-down (F3(),F4(),F5(),F2()) is_closed_on F1() & for-down (F3(),F4(),F5(),F2()) is_halting_on F1() )
then reconsider m = F1() . (DataLoc ((F1() . F3()),F4())) as Element of NAT by INT_1:16;
S1[m] by A57;
hence ( for-down (F3(),F4(),F5(),F2()) is_closed_on F1() & for-down (F3(),F4(),F5(),F2()) is_halting_on F1() ) by A2; :: thesis: verum
end;
end;