reserve x for set,
  k for Element of NAT;
reserve s for State of SCMPDS;
reserve d1,d2,d3,d4,d5 for Element of SCM-Data-Loc,
  k1,k2,k3,k4,k5,k6 for Integer;
reserve I for Instruction of SCMPDS;
reserve a,b,c for Int_position;

theorem Th52:
  ( s.DataLoc(s.a,k1) <> 0 implies Exec((a,k1)<>0_goto k2, s).IC
  SCMPDS = ICplusConst(s,k2)) & ( s.DataLoc(s.a,k1) = 0 implies Exec((a,k1)
  <>0_goto k2, s).IC SCMPDS = IC s + 1 ) & Exec((a,k1)<>0_goto k2, s).b = s.b
proof
  reconsider mn = b as Element of SCM-Data-Loc by AMI_2:def 16;
  reconsider S = s as SCM-State by CARD_3:107;
A1: ex n be Element of NAT st n=IC s & ICplusConst(s,k2)=|.n+k2.| by Def17;
  reconsider da = a as Element of SCM-Data-Loc by AMI_2:def 16;
  reconsider I = (a,k1)<>0_goto k2 as Element of SCMPDS-Instr;
  set A2=Address_Add(S,I P31address,I P32const), JP=jump_address(S,I P33const)
  , IF=IFEQ(S.A2, 0, IC S + 1,JP), Da=DataLoc(s.a,k1);
  reconsider i = 4 as Element of Segm 15 by NAT_1:44;
A2: I = [ i,{}, <*da,k1,k2*>];
  then
A3: I P31address = da & I P32const = k1 by SCMPDS_I:6;
A4: InsCode(I) = 4;
A5: Exec((a,k1)<>0_goto k2, s) = SCM-Exec-Res(I,S) by SCMPDS_1:def 23
    .=SCM-Chg(S,IF) by A4,SCMPDS_1:def 22;
A6: I P33const = k2 by A2,SCMPDS_I:6;
  thus s.Da <> 0 implies Exec((a,k1)<>0_goto k2,s).IC SCMPDS = ICplusConst(s,
  k2)
  proof
    assume
A7: s.Da <> 0;
    thus Exec((a,k1)<>0_goto k2, s).IC SCMPDS = IF by A5,Th1,AMI_2:11
      .=ICplusConst(s,k2) by A3,A6,A1,A7,Th1,FUNCOP_1:def 8;
  end;
  thus s.Da = 0 implies Exec((a,k1)<>0_goto k2,s).IC SCMPDS = IC s + 1
  proof
    assume
A8: s.Da = 0;
    thus Exec((a,k1)<>0_goto k2, s).IC SCMPDS = IF by A5,Th1,AMI_2:11
      .= IC S + 1 by A3,A8,FUNCOP_1:def 8
      .= IC s + 1 by AMI_2:22,SUBSET_1:def 8;
  end;
  thus Exec((a,k1)<>0_goto k2, s).b = S.mn by A5,AMI_2:12
    .= s.b;
end;
