reserve Al for QC-alphabet;
reserve a,b,c,d for object,
  i,j,k,m,n for Nat,
  p,q,r for Element of CQC-WFF(Al),
  x,y,y0 for bound_QC-variable of Al,
  X for Subset of CQC-WFF(Al),
  A for non empty set,
  J for interpretation of Al,A,
  v,w for Element of Valuations_in(Al,A),
  Sub for CQC_Substitution of Al,
  f,f1,g,h,h1 for FinSequence of CQC-WFF(Al);
reserve fin,fin1 for FinSequence;

theorem Th13:
  0 < len f implies f is_Subsequence_of Ant(f)^g^<*Suc(f)*>
proof
  set n = len Ant(f);
  set m = len g;
  set N = Seg n \/ {n+(m+1)};
  set f1 = Ant(f)^g^<*Suc(f)*>;
  reconsider f2 = f1|N as FinSubsequence;
  assume
A1: 0 < len f;
  take N;
  now
    now
      let b be object such that
A2:   b in N;
      reconsider i = b as Element of NAT by A2;
A3:   now
        assume i in {n+(m+1)};
        then
A4:     i = (n+m)+1 by TARSKI:def 1;
        then
A5:     1 <= i by NAT_1:11;
        len f1 = len (Ant(f)^g) + len <*Suc(f)*> by FINSEQ_1:22;
        then len f1 = n + m + len <*Suc(f)*> by FINSEQ_1:22;
        then i <= len f1 by A4,FINSEQ_1:39;
        hence i in dom f1 by A5,FINSEQ_3:25;
      end;
      now
        f1 = Ant(f)^(g^<*Suc(f)*>) by FINSEQ_1:32;
        then
A6:     n <= len f1 by Th6;
        assume
A7:     i in Seg n;
        then
A8:     1 <= i by FINSEQ_1:1;
        i <= n by A7,FINSEQ_1:1;
        then i <= len f1 by A6,XXREAL_0:2;
        hence i in dom f1 by A8,FINSEQ_3:25;
      end;
      hence b in dom f1 by A2,A3,XBOOLE_0:def 3;
    end;
    then
A9: N c= dom f1;
    dom f2 = dom f1 /\ N by RELAT_1:61;
    then
A10: dom f2 = N by A9,XBOOLE_1:28;
    then
A11: dom Sgm (dom f2) = Seg (n+1) by Th12;
    now
      let i;

      i in dom f iff 1 <= i & i <= len f by FINSEQ_3:25;
      then i in dom f iff 1 <= i & i <= n+1 by A1,Th2;
      hence i in dom f iff i in Seg (n+1) by FINSEQ_1:1;
    end;
    then for b being object holds b in dom f iff b in Seg (n+1);
    then
A12: dom Sgm (dom f2) = dom f by A11,TARSKI:2;
A13: now
      let i,j such that
A14:  i in Seg n and
A15:  j in {n+(m+1)};
A16:  i <= n by A14,FINSEQ_1:1;
      n+1 <= n+1+m by NAT_1:11;
      then n < n+(m+1) by NAT_1:13;
      then n < j by A15,TARSKI:def 1;
      hence i < j by A16,XXREAL_0:2;
    end;
    let b be object such that
A17: b in f;
    consider c,d being object such that
A18: b = [c,d] by A17,RELAT_1:def 1;
A19: c in dom f by A17,A18,FUNCT_1:1;
    then reconsider i = c as Element of NAT;
    Sgm (dom f2) = Sgm(Seg n)^Sgm{n+(m+1)} by A10,A13,FINSEQ_3:42;
    then Sgm (dom f2) = Sgm(Seg n)^<*n+(m+1)*> by FINSEQ_3:44;
    then
A20: Sgm (dom f2) = (idseq n)^<*n+(m+1)*> by FINSEQ_3:48;
A21: now
      assume
A22:  i in Seg n;
      then
A23:  i in dom Ant(f) by FINSEQ_1:def 3;
      i in dom idseq n by A22;
      then Sgm (dom f2).i = (idseq n).i by A20,FINSEQ_1:def 7;
      then
A24:  Sgm (dom f2).i = i by A22,FUNCT_1:18;
      i in dom Sgm (dom f2) & Seq f2 = f2 * Sgm (dom f2) by A17,A18,A12,
FINSEQ_1:def 15,FUNCT_1:1;
      then Seq f2.i = f2.i by A24,FUNCT_1:13;
      then Seq f2.i = (f2|Seg n).i by A22,FUNCT_1:49;
      then
A25:  Seq f2.i = (f1|Seg n).i by RELAT_1:74,XBOOLE_1:7;
      f1 = Ant(f)^(g^<*Suc(f)*>) & Seg len Ant f = dom Ant f by FINSEQ_1:32
,def 3;
      then
A26:  Seq f2.i = (Ant(f)).i by A25,FINSEQ_1:21;
      f = Ant(f)^<*Suc(f)*> by A1,Th3;
      hence Seq f2.i = f.i by A26,A23,FINSEQ_1:def 7;
    end;
    rng Sgm (dom (f1|N)) = dom (f1|N) by FINSEQ_1:50;
    then dom f = dom ((f1|N) * Sgm (dom (f1|N))) by A12,RELAT_1:27;
    then
A27: dom f = dom Seq f2 by FINSEQ_1:def 15;
A28: now
      1 in Seg 1 by FINSEQ_1:1;
      then
A29:  len (Ant(f)^g) = n + m & 1 in dom <*Suc(f)*> by FINSEQ_1:22,38;
A30:  i in dom Sgm (dom f2) & Seq f2 = f2 * Sgm (dom f2) by A17,A18,A12,
FINSEQ_1:def 15,FUNCT_1:1;
      assume
A31:  i = n+1;
      len idseq n = n by CARD_1:def 7;
      then Sgm (dom f2).i = n+(m+1) by A20,A31,FINSEQ_1:42;
      then
A32:  Seq f2.i = f2.(n+(m+1)) by A30,FUNCT_1:13;
      n+(m+1) in {n+(m+1)} & {n+(m+1)} c= N by TARSKI:def 1,XBOOLE_1:7;
      then Seq f2.i = f1.((n+m)+1) by A32,FUNCT_1:49;
      then
A33:  Seq f2.i = <*Suc(f)*>.1 by A29,FINSEQ_1:def 7;
      f.i = f.(len f) by A1,A31,Th2;
      then f.i = Suc(f) by A1,Def2;
      hence Seq f2.i = f.i by A33;
    end;
    d = f.c by A17,A18,FUNCT_1:1;
    hence b in Seq f2 by A18,A19,A11,A12,A21,A28,A27,FINSEQ_2:7,FUNCT_1:1;
  end;
  hence thesis;
end;
