reserve i,j,k,n,m for Nat,
        X for set,
        b,s for bag of X,
        x for object;

theorem Th22:
  for b be bag of X holds
    b +*(x,i+k) = b +*(x,i) + (EmptyBag X) +* (x,k)
proof
  let b be bag of X;
  set EX= EmptyBag X;
A1: dom (b +*(x,i+k)) = X = dom b by PARTFUN1:def 2;
A2: dom (b +*(x,i) + EX +* (x,k)) =X =dom EX by PARTFUN1:def 2;
  for y be object st y in X holds (b +*(x,i+k)).y =(b +*(x,i) + EX +* (x,k)).y
  proof
    let y be object such that
A3: y in X;
    per cases;
    suppose
A4:   x=y;
      (b +*(x,i) + EX +* (x,k)).y = (b +*(x,i)).y + (EX +* (x,k)).y
      by PRE_POLY:def 5
      .= i + (EX +* (x,k)).y by A4,A1,A3,FUNCT_7:31
      .= i + k by A4,A2,A3,FUNCT_7:31;
      hence thesis by A4,A1,A3,FUNCT_7:31;
    end;
    suppose
A5:   x<>y;
A6:   (EX +* (x,k)).y = EX.y by A5,FUNCT_7:32
      .= 0;
A7:   (b +*(x,i)).y = b.y by A5,FUNCT_7:32;
      (b +*(x,i) + EX +* (x,k)).y = (b +*(x,i)).y + (EX +* (x,k)).y
      by PRE_POLY:def 5;
      hence thesis by A5,FUNCT_7:32,A7,A6;
    end;
  end;
  hence thesis by A1,PARTFUN1:def 2;
end;
