reserve i,j,k,n,m for Nat,
  x,y,z,y1,y2 for object, X,Y,D for set,
  p,q for XFinSequence;
reserve k1,k2 for Nat;

theorem
  1<=k1 & k2<=len p implies mid(p,k1,k2) = (p/^(k1-'1))|(k2+1-'k1)
proof
  assume that
A1: 1<=k1 and
A2: k2<=len p;
  set k11=k1,k21=k2;
A3: len (p|k21)=k21 by A2,AFINSQ_1:54;
  k1<k1+1 by NAT_1:13;
  then k1-1<k1+1-1 by XREAL_1:9;
  then
A4: k1-'1<k1 by A1,XREAL_1:233;
  per cases;
  suppose
A5: k1<=k2;
A6: k2<k2+1 by XREAL_1:29;
    then
A7: k2+1-'k1 =k2+1-k1 by A5,XREAL_1:233,XXREAL_0:2
      .=k2-(k1-1);
A8: k11-'1=k11-1 by A1,XREAL_1:233;
    k11-1<k11 by XREAL_1:44;
    then k11-1<k21 by A5,XXREAL_0:2;
    then
A9: len (mid(p,k1,k2))=k21-(k11-1) by A3,A8,Th7;
    then
A10: len (mid(p,k1,k2))=k21+1-k11;
    k1-'1<k2 by A4,A5,XXREAL_0:2;
    then k1-'1<len p by A2,XXREAL_0:2;
    then len (p/^(k1-'1))=len p -(k1-'1) by Th7;
    then
A11: k2+1-'k1<= len (p/^(k1-'1)) by A2,A8,A7,XREAL_1:9;
A12:  i<len (mid(p,k1,k2)) implies (mid(p,k1,k2
    )).i=((p/^(k1-'1))|(k2+1-'k1)).i
    proof
      assume
A13:  i<len (mid(p,k1,k2));
      then
A14:  (i+(k11-'1)) in Segm k21 by NAT_1:44,A8,A9,XREAL_1:20;
      i+(k1-'1)<k21-(k11-1)+(k1-'1) by A9,A13,XREAL_1:6;
      then
A15:  i+(k1-'1)<len p by A2,A8,XXREAL_0:2;
      i+(k11-1)<k21 by A9,A13,XREAL_1:20;
      then
A16:  ((p|k21)/^(k11-'1)).i=(p|k21).(i+(k11-'1)) by A3,A8,Th8;
      i in k2+1-'k1 by A7,A9,A13,AFINSQ_1:86;
      then ((p/^(k1-'1))|(k2+1-'k1)).i=(p/^(k1-'1)).i by A11,AFINSQ_1:53
        .=p.(i+(k1-'1)) by A15,Th8;
      hence thesis by A2,A16,A14,AFINSQ_1:53;
    end;
    len ((p/^(k1-'1))|(k2+1-'k1))=k2+1-'k1 by A11,AFINSQ_1:54;
    then len (mid(p,k1,k2))= len ((p/^(k1-'1))|(k2+1-'k1)) by A5,A6,A10,
XREAL_1:233,XXREAL_0:2;
    hence thesis by A12,AFINSQ_1:9;
  end;
  suppose
A17: k1>k2;
    then k2+1<=k1 by NAT_1:13;
    then
A18: k2+1-'k1=0 by NAT_2:8;
    mid(p,k1,k2)={} by A17,Th14;
    hence thesis by A18;
  end;
end;
