reserve P,Q for Instruction-Sequence of SCM+FSA;
reserve m, n for Nat;
reserve f for FinSeq-Location,
  c for Int-Location;
reserve s for State of SCM+FSA,
  I for MacroInstruction of SCM+FSA,
  a for read-write Int-Location;
reserve i,k,m,n for Nat;
reserve s for State of SCM+FSA,
  I for MacroInstruction of SCM+FSA,
  a for read-write Int-Location;

theorem
  for I being parahalting really-closed MacroInstruction of SCM+FSA,
      a being read-write
  Int-Location st ex f being Function of product the_Values_of SCM+FSA,NAT
st (for s being State of SCM+FSA,P holds (f.(StepWhile>0(a,I,P,s).1) < f.s
 or f.s =
  0) & ( f.s =0 iff s.a <= 0 )) holds while>0(a,I) is parahalting
proof
  let I be parahalting really-closed MacroInstruction of SCM+FSA,
      a be read-write Int-Location;
  given f being Function of product the_Values_of SCM+FSA,NAT such that
A1: for s being State of SCM+FSA,P holds (f.(StepWhile>0(a,I,P,s).1) < f.s
  or f.s = 0) & ( f.s =0 iff s.a <= 0 );
  now
    let t be State of SCM+FSA;
    let Q;
    now
      let k be Nat;
      f.(StepWhile>0(a,I,Q,StepWhile>0(a,I,Q,t).k).1)
       < f.(StepWhile>0(a,I,Q,t).
      k) or f.(StepWhile>0(a,I,Q,t).k) = 0 by A1;
      hence (f.(StepWhile>0(a,I,Q,t).(k+1)) < f.(StepWhile>0(a,I,Q,t).k) or f.(
StepWhile>0(a,I,Q,t).k) = 0) & ( f.(StepWhile>0(a,I,Q,t).k)=0
 iff (StepWhile>0(a,I,Q,
      t).k).a <= 0 ) by A1,Th16;
    end;
    hence while>0(a,I) is_halting_on t,Q by Th20;
  end;
  hence thesis by SCMFSA7B:19;
end;
