reserve a,x,y for object, A,B for set,
  l,m,n for Nat;
reserve X,Y for set, x for object,
  p,q for Function-yielding FinSequence,
  f,g,h for Function;
reserve m,n,k for Nat, R for Relation;
reserve i,j for Nat;
reserve F for Function,
  e,x,y,z for object;
reserve a,b,c for set;

theorem Th124:
  (a,b) followed_by c = (a followed_by c) +* (1,b)
proof
  set f = (a,b) followed_by c, g = (a followed_by c) +* (1,b);
A1: dom(a followed_by c) = NAT by Th117;
A2: dom f = NAT by Th120;
  hence dom f = dom g by A1,Th29;
  let x be object;
  assume x in dom f;
  then reconsider n=x as Nat by A2;
  per cases by NAT_1:25;
  suppose
A3: n = 0;
    hence f.x = a by Th121
      .= (a followed_by c).x by A3,Th118
      .= g.x by A3,Th31;
  end;
  suppose
A4: n = 1;
    hence f.x = b by Th122
      .= g.x by A1,A4,Th30;
  end;
  suppose
A5: n > 1;
    hence f.x = c by Th123
      .= (a followed_by c).x by A5,Th119
      .= g.x by A5,Th31;
  end;
end;
