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