reserve n for Nat;

theorem Th30:
  for f be FinSequence of TOP-REAL 2 st f is special for p be
  Point of TOP-REAL 2 st p in L~f holds R_Cut(f,p) is special
proof
  let f be FinSequence of TOP-REAL 2;
  assume
A1: f is special;
  let p be Point of TOP-REAL 2;
A2: mid(f,1,Index(p,f)) is special by A1,Th27;
  assume
A3: p in L~f;
  then
A4: Index(p,f) < len f by JORDAN3:8;
  len f <> 0 by A3,TOPREAL1:22;
  then len f > 0 by NAT_1:3;
  then len f >= 0+1 by NAT_1:13;
  then
A5: 1 in dom f by FINSEQ_3:25;
A6: 1 <= Index(p,f) by A3,JORDAN3:8;
  then Index(p,f) in dom f by A4,FINSEQ_3:25;
  then
A7: mid(f,1,Index(p,f))/.len mid(f,1,Index(p,f)) = f/.Index(p,f) by A5,
SPRECT_2:9;
  Index(p,f)+1 <= len f by A4,NAT_1:13;
  then
A8: LSeg(f,Index(p,f)) = LSeg(f/.Index(p,f), f/.(Index(p,f)+1)) by A6,
TOPREAL1:def 3;
A9: now
    per cases by A1,SPPOL_1:19;
    case
      LSeg(f,Index(p,f)) is vertical;
      hence p`1=(f/.Index(p,f))`1 by A3,A8,JORDAN5B:29,SPPOL_1:41;
    end;
    case
      LSeg(f,Index(p,f)) is horizontal;
      hence p`2=(f/.Index(p,f))`2 by A3,A8,JORDAN5B:29,SPPOL_1:40;
    end;
  end;
A10: <*p*>/.1 = p by FINSEQ_4:16;
A11: <*p*> is special;
  per cases;
  suppose
    p <> f.1;
    then R_Cut(f,p) = mid(f,1,Index(p,f))^<*p*> by JORDAN3:def 4;
    hence thesis by A2,A10,A7,A9,GOBOARD2:8;
  end;
  suppose
    p = f.1;
    hence thesis by A11,JORDAN3:def 4;
  end;
end;
