reserve x,A for set, i,j,k,m,n, l, l1, l2 for Nat;
reserve D for non empty set, z for Nat;
reserve S for COM-Struct;
reserve ins for Element of the InstructionsF of S;
reserve k, m for Nat,
  x, x1, x2, x3, y, y1, y2, y3, X,Y,Z for set;
reserve i, j, k for Nat,
  n for Nat,
  l,il for Nat;
reserve
  i,j,k for Instruction of S,
  I,J,K for Program of S;
reserve k1,k2 for Integer;
reserve l,l1,loc for Nat;
reserve i1,i2 for Instruction of S;
reserve
  i,j,k for Instruction of S,
  I,J,K for Program of S;
reserve m for Nat;
reserve I,J for Program of S;
reserve i for Instruction of S,
        I for Program of S;
reserve loc for Nat;

theorem
 IncAddr(Macro i,n) = IncAddr(Load i,n) ^ Stop S
proof
A1: dom Macro i = {0,1} by Th45;
A2:   dom(IncAddr(Load i,n) ^ Stop S)
          = len(IncAddr(Load i,n) ^ Stop S)
         .= len IncAddr(Load i,n) + 1 by AFINSQ_1:75
         .= len Load i + 1 by Def9
         .= 1 + 1 by AFINSQ_1:34
         .= {0,1} by CARD_1:50
         .= dom Macro i by Th45;
  for m being Nat st m in dom Macro i
   holds (IncAddr(Load i,n) ^ Stop S).m = IncAddr((Macro i)/.m,n)
  proof let m be Nat;
   assume m in dom Macro i;
    then per cases by A1,TARSKI:def 2;
    suppose
A3:   m = 0;
A4:   0 in dom Load i by AFINSQ_1:65;
     then
A5:   (Load i)/.m = (Load i).m by A3,PARTFUN1:def 6;
     dom Load i c= dom(Load i ^ Stop S) by AFINSQ_1:21;
     then m in dom(Load i ^ Stop S) by A4,A3;
     then
A6:   (Load i ^ Stop S).m = (Load i ^ Stop S)/.m by PARTFUN1:def 6;
      m in dom IncAddr(Load i,n) by Def9,A4,A3;
     hence (IncAddr(Load i,n) ^ Stop S).m
       = IncAddr(Load i,n).m by AFINSQ_1:def 3
      .= IncAddr((Load i)/.m,n) by A4,Def9,A3
      .= IncAddr((stop Load i)/.m,n) by A6,A4,AFINSQ_1:def 3,A5,A3
      .= IncAddr((Macro i)/.m,n);
    end;
    suppose
A7:   m = 1;
A8:   len Load i = 1 by AFINSQ_1:34;
     then
A9:   len IncAddr(Load i,n) = 1 by Def9;
A10:   0 in dom Stop S by AFINSQ_1:65;

     len(Load i ^ Stop S)
          = len Load i + len Stop S by AFINSQ_1:def 3
         .= len Load i + 1 by AFINSQ_1:34
         .= 1 + 1 by AFINSQ_1:34
         .= {0,1} by CARD_1:50;
     then 1 in dom(Load i ^ Stop S) by TARSKI:def 2;
     then
A11:   (Load i ^ Stop S)/.m =  (Load i ^ Stop S).(1+0) by PARTFUN1:def 6,A7;
A12:   (Stop S)/.0 = (Stop S).0 by A10,PARTFUN1:def 6;
    thus (IncAddr(Load i,n) ^ Stop S).m
       = (IncAddr(Load i,n) ^ Stop S).(1+0) by A7
      .= IncAddr(Stop S,n).0 by AFINSQ_1:def 3,A9,A10
      .= IncAddr((Stop S)/.0,n) by A10,Def9
      .= IncAddr((stop Load i)/.m,n) by A11,A12,AFINSQ_1:def 3,A8,A10
      .= IncAddr((Macro i)/.m,n);
    end;
  end;
 hence thesis by A2,Def9;
end;
