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 Th49:
  Exec(Divide(a,k1,b,k2), s).IC SCMPDS = IC s + 1 & (DataLoc(s.a,
k1) <> DataLoc(s.b,k2) implies Exec(Divide(a,k1,b,k2), s).DataLoc(s.a,k1) = s.
DataLoc(s.a,k1) div s.DataLoc(s.b,k2)) & Exec(Divide(a,k1,b,k2), s).DataLoc(s.b
,k2) = s.DataLoc(s.a,k1) mod s.DataLoc(s.b,k2) & for c st c <> DataLoc(s.a,k1)
  & c <> DataLoc(s.b,k2) holds Exec(Divide(a,k1,b,k2),s).c = s.c
proof
  reconsider S = s as SCM-State by CARD_3:107;
  reconsider da = a,db=b as Element of SCM-Data-Loc by AMI_2:def 16;
  reconsider I = Divide(a,k1,b,k2) as Element of SCMPDS-Instr;
  set A2=Address_Add(S,I P41address,I P43const), A4=Address_Add(S,I P42address
,I P44const), S1 = SCM-Chg(S, A2,S.A2 div S.A4), S2 = SCM-Chg(S1,A4,S.A2 mod S.
  A4);
  reconsider i = 12 as Element of Segm 15 by NAT_1:44;
  set Da=DataLoc(s.a,k1), Db=DataLoc(s.b,k2);
A1: I = [ i,{}, <*da,db,k1,k2*>];
  then
A2: I P41address = da & I P43const = k1 by SCMPDS_I:7;
A3: InsCode(I) = 12;
A4: Exec(Divide(a,k1,b,k2), s) = SCM-Exec-Res(I,S) by SCMPDS_1:def 23
    .= SCM-Chg(S2, IC S + 1) by A3,SCMPDS_1:def 22;
  hence Exec(Divide(a,k1,b,k2), s).IC SCMPDS = IC s + 1 by Th1,AMI_2:11;
A5: I P42address = db & I P44const = k2 by A1,SCMPDS_I:7;
  hereby
    reconsider mn = Da as Element of SCM-Data-Loc by AMI_2:def 16;
    assume
A6: Da <> DataLoc(s.b,k2);
    thus Exec(Divide(a,k1,b,k2), s).Da = S2.mn by A4,AMI_2:12
      .= S1.A2 by A2,A5,A6,AMI_2:16
      .= s.Da div s.Db by A2,A5,AMI_2:15;
  end;
  thus Exec(Divide(a,k1,b,k2), s).DataLoc(s.b,k2) = S2.A4 by A4,A5,AMI_2:12
    .= s.Da mod s.Db by A2,A5,AMI_2:15;
  let c;
  reconsider mn = c as Element of SCM-Data-Loc by AMI_2:def 16;
  assume that
A7: c <> Da and
A8: c <> Db;
  thus Exec(Divide(a,k1,b,k2), s).c = S2.mn by A4,AMI_2:12
    .= S1.mn by A5,A8,AMI_2:16
    .= s.c by A2,A7,AMI_2:16;
end;
