reserve r1,r2 for Real;
reserve n,i,i1,i2,j for Nat;
reserve D for non empty set;
reserve f for FinSequence of D;

theorem Th22:
  for f being FinSequence of TOP-REAL 2, p being Point of TOP-REAL
  2 st f is being_S-Seq & p in L~f holds L_Cut(Rev f,p) = Rev R_Cut(f,p)
proof
  let f be FinSequence of TOP-REAL 2, p be Point of TOP-REAL 2 such that
A1: f is being_S-Seq and
A2: p in L~f;
A3: len f = len Rev f by FINSEQ_5:def 3;
A4: p in L~Rev f by A2,SPPOL_2:22;
A5: 1 <= Index(p,f) by A2,Th8;
A6: Rev f is being_S-Seq by A1;
A7: Rev Rev f = f;
A8: Index(p,f) < len f by A2,Th8;
  L~f = L~Rev f by SPPOL_2:22;
  then Index(p, Rev f) < len Rev f by A2,Th8;
  then
A9: Index(p, Rev f) + 1 <= len f by A3,NAT_1:13;
  1 <= Index(p, Rev f)+1 by NAT_1:11;
  then
A10: Index(p, Rev f)+1 in dom f by A9,FINSEQ_3:25;
A11: 1+1 <= len f by A1,TOPREAL1:def 8;
  then
A12: 1 < len f by NAT_1:13;
  then
A13: 1 in dom f by FINSEQ_3:25;
A14: len f in dom f by A12,FINSEQ_3:25;
A15: 2 in dom f by A11,FINSEQ_3:25;
A16: dom Rev f = dom f by FINSEQ_5:57;
  per cases;
  suppose
A17: p = f.len f;
    then
A18: p<>f.1 by A1,A12,A13,A14,FUNCT_1:def 4;
A19: p = (Rev f).1 by A17,FINSEQ_5:62;
    then
A20: p <> (Rev f).(1+1) by A1,A16,A13,A15,FUNCT_1:def 4;
    p = (Rev f)/.1 by A16,A13,A19,PARTFUN1:def 6;
    then
A21: Index(p,Rev f) = 1 by A3,A11,Th11;
    then Index(p,Rev f) + Index(p,f) = len f by A6,A4,A7,A3,A20,Th21;
    then
A22: Index(p,Rev f) = len f - Index(p,f);
    thus L_Cut(Rev f,p) = <*p*>^mid(Rev f,Index(p,Rev f)+1,len f) by A3,A21,A20
,Def3
      .= <*p*>^mid(Rev f,len f -'Index(p,f)+1,len f) by A8,A22,XREAL_1:233
      .= <*p*>^mid(Rev f,len f -'Index(p,f)+1,len f -' 1 + 1) by A12,
XREAL_1:235
      .= <*p*>^Rev mid(f,1,Index(p,f)) by A12,A5,A8,FINSEQ_6:113
      .= Rev(mid(f,1,Index(p,f))^<*p*>) by FINSEQ_5:63
      .= Rev R_Cut(f,p) by A18,Def4;
  end;
  suppose
A23: p = f.1;
A24: len Rev f-'1+1=len Rev f by A3,A12,XREAL_1:235;
    then
A25: (Rev f/^(len Rev f-'1)).1=Rev f.len Rev f by FINSEQ_6:114;
A26: len (Rev f/^(len Rev f-'1))=len Rev f-'(len Rev f-'1) by RFINSEQ:29;
    1<=len Rev f-(len Rev f-'1) by A24;
    then
A27: 1<=len (Rev f/^(len Rev f-'1)) by A26,NAT_D:39;
    len Rev f-'len Rev f+1=len Rev f-len Rev f+1 by XREAL_1:233
      .=1;
    then
A28: mid(Rev f,len Rev f,len Rev f)=(Rev f/^(len Rev f-'1))|1 by FINSEQ_6:def 3
      .=<*(Rev f/^(len Rev f-'1)).1 *> by A27,CARD_1:27,FINSEQ_5:20
      .=<*Rev f.len Rev f*> by A25;
A29: p = (Rev f).len f by A23,FINSEQ_5:62;
    then Index(p,Rev f) + 1 = len f by A1,A3,A12,Th12;
    hence L_Cut(Rev f,p) = <*p*> by A3,A29,A28,Def3
      .= Rev <*p*> by FINSEQ_5:60
      .= Rev R_Cut(f,p) by A23,Def4;
  end;
  suppose that
A30: p <> f.1 and
A31: p <> f.len f and
A32: p = f.(Index(p,f)+1);
A33: len f = Index(p,Rev f) + Index(p,f) + 1 by A1,A2,A31,A32,Th20
      .= Index(p,f) + (Index(p,Rev f) + 1);
    len f = Index(p,Rev f) + Index(p,f) + 1 by A1,A2,A31,A32,Th20
      .= Index(p,Rev f) + (Index(p,f) + 1);
    then
A34: p = f.(len f - (Index(p, Rev f)+1) + 1) by A32
      .= (Rev f).(Index(p, Rev f)+1) by A10,FINSEQ_5:58;
A35: len f -' Index(p,f) = len f - Index(p,f) by A8,XREAL_1:233
      .= Index(p,Rev f)+1 by A33;
    p <> (Rev f).len f by A30,FINSEQ_5:62;
    then
A36: Index(p, Rev f)+1 < len f by A9,A34,XXREAL_0:1;
    thus L_Cut(Rev f,p) = mid(Rev f,Index(p,Rev f)+1,len f) by A3,A34,Def3
      .= <*p*>^mid(Rev f,len f -' Index(p,f)+1, len f) by A16,A10,A34,A35,A36,
FINSEQ_6:126
      .= <*p*>^mid(Rev f,len f -' Index(p,f)+1, len f-'1+1) by A12,XREAL_1:235
      .= <*p*>^Rev mid(f,1,Index(p,f)) by A12,A5,A8,FINSEQ_6:113
      .= Rev (mid(f,1,Index(p,f))^<*p*>) by FINSEQ_5:63
      .= Rev R_Cut(f,p) by A30,Def4;
  end;
  suppose that
A37: p <> f.1 and
A38: p <> f.(Index(p,f)+1);
A39: p <> (Rev f).len f by A37,FINSEQ_5:62;
A40: now
      assume
A41:  p = (Rev f).(Index(p, Rev f)+1);
      then
A42:  len Rev f = Index(p,Rev Rev f) + Index(p,Rev f) + 1 by A1,A4,A3,A39,Th20
        .= Index(p,f) + 1 + Index(p,Rev f);
      p = f.(len f - (Index(p, Rev f)+1) + 1) by A10,A41,FINSEQ_5:58
        .= f.(Index(p,f)+1) by A3,A42;
      hence contradiction by A38;
    end;
A43: Index(p, f) < len f by A2,Th8;
    len f = Index(p,Rev f) + Index(p,f) by A1,A2,A38,Th21;
    then Index(p,Rev f) = len f - Index(p,f)
      .= len f -' Index(p,f) by A43,XREAL_1:233;
    hence
    L_Cut(Rev f,p) = <*p*>^mid(Rev f,len f -' Index(p,f)+1, len f) by A3,A40
,Def3
      .= <*p*>^mid(Rev f,len f -' Index(p,f)+1, len f-'1+1) by A12,XREAL_1:235
      .= <*p*>^Rev mid(f,1,Index(p,f)) by A12,A5,A8,FINSEQ_6:113
      .= Rev (mid(f,1,Index(p,f))^<*p*>) by FINSEQ_5:63
      .= Rev R_Cut(f,p) by A37,Def4;
  end;
end;
