reserve m,j,p,q,n,l for Element of NAT;
reserve e1,e2 for ExtReal;
reserve i for Nat,
        k,k1,k2,j1 for Element of NAT,
        x,x1,x2,y for set;
reserve p1,p2 for FinSequence;
reserve q,q1,q2,q3,q4 for FinSubsequence,
        p1,p2 for FinSequence;
reserve l1 for Nat,
        j2 for Element of NAT;

theorem Th60:
  for p being FinSequence, q1,q2 being FinSubsequence st q1 c= p
  ex ss being FinSubsequence st ss = q1 \/ Shift(q2,len p)
proof
  let p be FinSequence, q1,q2 be FinSubsequence;
  assume q1 c= p;
  then
A1: dom q1 c= dom p by GRFUNC_1:2;
  dom p misses dom Shift(q2,len p) by Th47;
  then reconsider ss = q1 \/ Shift(q2,len p) as Function by A1,GRFUNC_1:13
,XBOOLE_1:63;
A2: dom p = Seg len p by FINSEQ_1:def 3;
  consider k be Nat such that
A3: dom q2 c= Seg k by FINSEQ_1:def 12;
  k in NAT by ORDINAL1:def 12;
  then
A4: dom Shift(q2,len p) c= Seg (len p + k) by A3,Th59;
  len p + (0 qua Nat) <= len p + k by XREAL_1:7;
  then Seg len p c= Seg (len p + k) by FINSEQ_1:5;
  then dom q1 c= Seg (len p + k) by A1,A2;
  then dom q1 \/ dom Shift(q2,len p) c= Seg (len p + k) by A4,XBOOLE_1:8;
  then dom (q1 \/ Shift(q2,len p)) c= Seg (len p + k) by XTUPLE_0:23;
  then reconsider ss as FinSubsequence by FINSEQ_1:def 12;
  take ss;
  thus thesis;
end;
