reserve m,j,p,q,n,l for Element of NAT;

theorem :: SCMFSA_4:32
  for n,m being Nat
  for I being Function holds Shift(Shift(I,m),n) = Shift(I,m+n)
proof let n,m be Nat;
  let I be Function;
  set A = {l+m where l is Nat:l in dom I };
A1: dom Shift(I,m) = A by Def12;
A2: now
    let l be Nat;
    assume
A3: l in dom I;
    then
A4: l+m in dom Shift(I,m) by A1;
    thus Shift(Shift(I,m),n).(l+(m+n)) = Shift(Shift(I,m),n).(l+m+n)
      .= Shift(I,m).(l+m) by A4,Def12
      .= I.l by A3,Def12;
  end;
  {p+n where p is Nat: p in A } = { q+(m+n) where q is Nat: q in dom I}
  proof
    thus {p+n where p is Nat: p in A } c= { q+(m+n) where q is Nat: q in dom I}
    proof
      let x be object;
      assume x in {p+n where p is Nat: p in A };
      then consider p being Nat such that
A5:   x = p+n and
A6:   p in A;
      consider l being Nat such that
A7:   p = l+m and
A8:   l in dom I by A6;
      x = l+(m+n) by A5,A7;
      hence thesis by A8;
    end;
    let x be object;
    assume x in { q+(m+n) where q is Nat: q in dom I};
    then consider q being Nat such that
A9: x = q+(m+n) & q in dom I;
    x = (q+m)+n & q+m in A by A9;
    hence thesis;
  end;
  then dom Shift(Shift(I,m),n) =
   { l+(m+n) where l is Nat: l in dom I} by A1,Def12;
  hence thesis by A2,Def12;
end;
