scheme :: SCPISORT:sch 3
ForDownEnd{ P1[ set ], F1() -> 0 -started State of SCMPDS, F2() -> halt-free shiftable Program of SCMPDS, F3() -> Instruction-Sequence of SCMPDS, F4() -> Int_position, F5() -> Integer, F6() -> Nat } :
( (IExec ((for-down (F4(),F5(),F6(),F2())),F3(),F1())) . (DataLoc ((F1() . F4()),F5())) <= 0 & P1[ Initialize (IExec ((for-down (F4(),F5(),F6(),F2())),F3(),F1()))] )
provided
A1: F6() > 0 and
A2: P1[F1()] and
A3: for Q being Instruction-Sequence of SCMPDS
for t being 0 -started State of SCMPDS st P1[t] & t . F4() = F1() . F4() & t . (DataLoc ((F1() . F4()),F5())) > 0 holds
( (IExec ((F2() ';' (AddTo (F4(),F5(),(- F6())))),Q,t)) . F4() = t . F4() & (IExec ((F2() ';' (AddTo (F4(),F5(),(- F6())))),Q,t)) . (DataLoc ((F1() . F4()),F5())) = (t . (DataLoc ((F1() . F4()),F5()))) - F6() & F2() is_closed_on t,Q & F2() is_halting_on t,Q & P1[ Initialize (IExec ((F2() ';' (AddTo (F4(),F5(),(- F6())))),Q,t))] )