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