
theorem ConcatIsIncreasing:
  for f being increasing FinSequence of NAT,
      x being Nat st
    (for i being Nat st i in dom f holds f.i < x) holds
   f ^ <*x*> is increasing
  proof
    let f be increasing FinSequence of NAT,
        x be Nat;
    assume
A1: for i being Nat st i in dom f holds f.i < x;
    consider k being Nat such that
A2: dom f = Seg k by FINSEQ_1:def 2;
    Seg len f = Seg k by A2,FINSEQ_1:def 3; then
B2: len f = k by FINSEQ_1:6;
    set fn = f ^ <*x*>;
    dom fn = Seg (len f + len <*x*>) by FINSEQ_1:def 7
          .= Seg (k + 1) by B2,FINSEQ_1:39; then
C4: dom fn = Seg k \/ {k + 1} by FINSEQ_1:9;
    for m,n being Nat st m in dom fn & n in dom fn & m < n holds fn.m < fn.n
    proof
      let m,n be Nat;
      assume
C1:   m in dom fn & n in dom fn & m < n;
      per cases;
      suppose
C2:     m in dom f & n in dom f; then
        f.m = fn.m & f.n = fn.n by FINSEQ_1:def 7;
        hence thesis by C2,C1,SEQM_3:def 1;
      end;
      suppose
D1:     m in dom f & not n in dom f; then
        n in {k + 1} by A2,C1,C4,XBOOLE_0:def 3; then
c3:     n = k + 1 by TARSKI:def 1;
        f.m = fn.m by D1,FINSEQ_1:def 7;
        hence thesis by c3,B2,A1,D1;
      end;
      suppose not m in dom f & not n in dom f; then
        m in {k + 1} & n in {k + 1} by A2,C1,C4,XBOOLE_0:def 3; then
        m = k + 1 & n = k + 1 by TARSKI:def 1;
        hence thesis by C1;
      end;
      suppose
D1:     not m in dom f & n in dom f; then
        m in {k + 1} by A2,C1,C4,XBOOLE_0:def 3; then
C4:     m = k + 1 by TARSKI:def 1;
        n <= k by A2,D1,FINSEQ_1:1;
        hence thesis by C1,C4,NAT_1:13;
      end;
    end;
    hence thesis by SEQM_3:def 1;
  end;
