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;

theorem Th25:
 for S being COM-Struct
  for p,q being
   finite NAT-defined (the InstructionsF of S)-valued Function
    holds IncAddr(p +* q, n) = IncAddr(p,n) +* IncAddr(q,n)
proof
 let S be COM-Struct;
  let p,q be
   finite NAT-defined (the InstructionsF of S)-valued Function;
A1: dom IncAddr(q,n) = dom q by Def9;
A2: now
    let m be Nat such that
A3:  m in dom(p +* q);
    per cases;
    suppose
A4:    m in dom q;
A5:   (p+*q)/.m = (p +* q). m by A3,PARTFUN1:def 6
        .= q. m by A4,FUNCT_4:13
        .= q/.m by A4,PARTFUN1:def 6;
      thus (IncAddr(p,n) +* IncAddr(q,n)). m = IncAddr(q,n). m by A1,A4,
FUNCT_4:13
        .= IncAddr((p+*q)/.m,n) by A4,A5,Def9;
    end;
    suppose
A6:   not  m in dom q;
       m in dom p \/ dom q by A3,FUNCT_4:def 1;
      then
A7:    m in dom p by A6,XBOOLE_0:def 3;
A8:   (p+*q)/.m = (p +* q). m by A3,PARTFUN1:def 6
        .= p. m by A6,FUNCT_4:11
        .= p/.m by A7,PARTFUN1:def 6;
      thus (IncAddr(p,n) +* IncAddr(q,n)). m = IncAddr(p,n). m by A1,A6,
FUNCT_4:11
        .= IncAddr((p+*q)/.m,n) by A7,A8,Def9;
    end;
  end;
  dom IncAddr(p,n) = dom p by Def9;
  then dom(IncAddr(p,n) +* IncAddr(q,n)) = dom p \/ dom q by A1,FUNCT_4:def 1
    .= dom(p +* q) by FUNCT_4:def 1;
  hence IncAddr(p +* q, n) = IncAddr(p,n) +* IncAddr(q,n)
   by A2,Def9;
end;
