reserve m,n for Nat,
  a for Int_position,
  i,j for Instruction of SCMPDS,
  s,s1,s2 for State of SCMPDS,
  k1 for Integer,
  loc for Nat,
  I,J,K for Program of SCMPDS;
reserve P,P1,P2 for Instruction-Sequence of SCMPDS;

theorem Th82:
  for s being State of SCMPDS,I being Program of SCMPDS,a being
Int_position, k1 being Integer st s.DataLoc(s.a,k1) > 0
 holds IExec(if<=0(a,k1,I),P,Initialize s)
  = s +* Start-At((card I+2),SCMPDS)
proof
  let s be State of SCMPDS,I be Program of SCMPDS,a be Int_position, k1 be
  Integer;
  set b=DataLoc(s.a,k1);
  set IF=if<=0(a,k1,I), pIF=stop IF, s3 = Initialize s,
  P3 = P +* pIF,
  s4 = Comput(P3,s3,1), s5 = Comput(P3,s3,2), P4 = P3, P5 = P3;
  set i = (a,k1)<=0_goto 2, j = goto (card I + 1);
  set SAl=Start-At((card I+2),SCMPDS);
A1: IF =i ';' (j ';' I) by SCMPDS_4:16;
A2: not b in dom Start-At(0,SCMPDS) by SCMPDS_4:18;
  not a in dom Start-At(0,SCMPDS) by SCMPDS_4:18;
  then
A3: s3.DataLoc(s3.a,k1)=s3.b by FUNCT_4:11
    .= s.b by A2,FUNCT_4:11;
A4: IC s3 = 0 by MEMSTR_0:47;
A5: pIF c= P3 by FUNCT_4:25;
  then
A6: pIF c= P4;
A7: pIF c= P5 by A5;
A8: Comput(P3, s3,0 + 1) = Following(P3,Comput(P3,s3,0)) by EXTPRO_1:3
    .= Following(P3,s3) by EXTPRO_1:2
    .= Exec(i,s3) by A1,Th3;
  assume
  s.b > 0;
  then
A9: IC s4 = IC s3 + 1 by A8,A3,SCMPDS_2:56
    .= (0+1) by A4;
A10:  1 in dom IF by Lm9;
  then  1 in dom pIF by COMPOS_1:62;
  then
A11: P4.1 = pIF. 1 by A6,GRFUNC_1:2
    .=IF. 1 by A10,COMPOS_1:63
    .=j by Lm10;
A12:  P3/.IC s4
 = P3.IC s4 by PBOOLE:143;
A13: Comput(P3, s3,1 + 1) = Following(P3,s4) by EXTPRO_1:3
    .= Exec(j,s4) by A9,A11,A12;
  then
A14: IC s5 = ICplusConst(s4,card I+1) by SCMPDS_2:54
    .= (card I+1+1) by A9,Th4
    .= (card I+(1+1));
A15:  (P3)/.IC s5
 = P3.IC s5 by PBOOLE:143;
A16: card IF=card I+2 by Lm8;
  then (card I+2) in dom pIF by COMPOS_1:64;
  then P5.(card I+2) = pIF.(card I+2) by A7,GRFUNC_1:2
    .=halt SCMPDS by A16,COMPOS_1:64;
  then
A17: CurInstr(P3,s5) = halt SCMPDS by A14,A15;
  then
A18: P3 halts_on s3 by EXTPRO_1:29;
A19: CurInstr(P3,s3) = i by A1,Th3;
  now
    let l be Nat;
    assume
    l < 1+1;
    then
A20: l <= 1 by NAT_1:13;
A21: Comput(P3,s3,0) = s3 by EXTPRO_1:2;
A22: P3/.IC Comput(P3,s3,l)
 = P3.IC Comput(P3,s3,l) by PBOOLE:143;
    per cases by A20,NAT_1:25;
    suppose
      l=0;
      then CurInstr(P3,Comput(P3,s3,l))
       = CurInstr(P3,s3)
       by A21;
      hence CurInstr(P3,Comput(P3,s3,l))
       <> halt SCMPDS by A19;
    end;
    suppose
      l=1;
      hence CurInstr(P3,Comput(P3,s3,l))
       <> halt SCMPDS by A9,A11,A22;
    end;
  end;
  then for l be Nat st CurInstr(P3,
  Comput(P3,s3,l)) = halt SCMPDS
  holds 2 <= l;
  then LifeSpan(P3,s3) = 2 by A17,A18,EXTPRO_1:def 15;
  then
A23: s5 = Result(P3,s3) by A18,EXTPRO_1:23;
A24: now
A25: dom SAl = {IC SCMPDS} by FUNCOP_1:13;
    let x be object;
    assume
A26: x in dom IExec(IF,P,Initialize s);
    per cases by A26,SCMPDS_4:6;
    suppose
A27:  x is Int_position;
      then x <> IC SCMPDS by SCMPDS_2:43;
      then
A28:  not x in dom SAl by A25,TARSKI:def 1;
A29:   not x in dom Start-At(0,SCMPDS) by A27,SCMPDS_4:18;
      thus IExec(IF,P,Initialize s).x = s5.x by A23
        .= s4.x by A13,A27,SCMPDS_2:54
        .= s3.x by A8,A27,SCMPDS_2:56
        .= s.x by A29,FUNCT_4:11
        .= (s +* SAl).x by A28,FUNCT_4:11;
    end;
    suppose
A30:  x = IC SCMPDS;
      hence IExec(IF,P,Initialize s).x = (card I + 2) by A14,A23
        .= (s +* Start-At((card I+2),SCMPDS)).x by A30,FUNCT_4:113;
    end;
  end;
  dom IExec(IF,P,Initialize s) = the carrier of SCMPDS by PARTFUN1:def 2
    .= dom (s +* SAl) by PARTFUN1:def 2;
  hence thesis by A24,FUNCT_1:2;
end;
