reserve i,j,k,m,n for Nat,
  D for non empty set,
  p for Element of D,
  f for FinSequence of D;
reserve D for non empty set,
  p for Element of D,
  f for FinSequence of D;
reserve f for circular FinSequence of D;
reserve f,g for FinSequence of TOP-REAL 2;
reserve p for Point of TOP-REAL 2,
  f for FinSequence of TOP-REAL 2;
reserve f for circular FinSequence of TOP-REAL 2;

theorem Th35:
  for f being non constant standard special_circular_sequence, p,k
st p in rng f & 1 <= k & k < p..f holds left_cell(f,k) = left_cell(Rotate(f,p),
  k + len f -' p..f)
proof
  let f be non constant standard special_circular_sequence, p,k such that
A1: p in rng f and
A2: 1 <= k and
A3: k < p..f;
  set n = k + len f -' p..f;
A4: p..f <= len f by A1,FINSEQ_4:21;
  then k < len f by A3,XXREAL_0:2;
  then
A5: k+1 <= len f by NAT_1:13;
  0 < k by A2;
  then
A6: 0+1 < k+1 by XREAL_1:6;
  len f <= k + len f by NAT_1:11;
  then
A7: n+1 = k + len f + 1 -' p..f by A4,NAT_D:38,XXREAL_0:2;
A8: k+1 <= p..f by A3,NAT_1:13;
  then k + 1 + len f <= len f + p..f by XREAL_1:6;
  then n+1 <= len f by A7,NAT_D:53;
  then
A9: n+1 <= len Rotate(f,p) by Th14;
A10: n+1 = k + 1 + len f -' p..f by A7;
A11: for i1,j1,i2,j2 being Nat st [i1,j1] in Indices GoB Rotate(f
,p) & [i2,j2] in Indices GoB Rotate(f,p) & (Rotate(f,p))/.n = (GoB Rotate(f,p))
*(i1,j1) & (Rotate(f,p))/.(n+1) = (GoB Rotate(f,p))*(i2,j2) holds i1 = i2 & j1+
1 = j2 & left_cell(f,k) = cell(GoB Rotate(f,p),i1-'1,j1) or i1+1 = i2 & j1 = j2
  & left_cell(f,k) = cell(GoB Rotate(f,p),i1,j1) or i1 = i2+1 & j1 = j2 &
  left_cell(f,k) = cell(GoB Rotate(f,p),i2,j2-'1) or i1 = i2 & j1 = j2+1 &
  left_cell(f,k) = cell(GoB Rotate(f,p),i1,j2)
  proof
A12: left_cell(f,k) = left_cell(f,k);
    let i1,j1,i2,j2 be Nat such that
A13: [i1,j1] in Indices GoB Rotate(f,p) & [i2,j2] in Indices GoB
    Rotate(f,p) and
A14: (Rotate(f,p))/.n = (GoB Rotate(f,p))*(i1,j1) & (Rotate(f,p))/.(n+
    1) = (GoB Rotate(f,p))*(i2,j2);
A15: GoB Rotate(f,p) = GoB f by Th28;
    then
A16: f/.k = (GoB f)*(i1,j1) & f/.(k+1) = (GoB f)*(i2,j2) by A1,A2,A3,A6,A8,A10
,A14,Th18;
    then
A17: i1 = i2 & j1+1 = j2 & left_cell(f,k) = cell(GoB f,i1-'1,j1) or i1+1 =
    i2 & j1 = j2 & left_cell(f,k) = cell(GoB f,i1,j1) or i1 = i2+1 & j1 = j2 &
left_cell(f,k) = cell(GoB f,i2,j2-'1) or i1 = i2 & j1 = j2+1 & left_cell(f,k) =
    cell(GoB f,i1,j2) by A2,A5,A13,A15,A12,GOBOARD5:def 7;
    per cases by A2,A5,A13,A15,A16,A12,GOBOARD5:def 7;
    case
      i1 = i2 & j1+1 = j2;
      hence thesis by A17,Th28;
    end;
    case
      i1+1 = i2 & j1 = j2;
      hence thesis by A17,Th28;
    end;
    case
      i1 = i2+1 & j1 = j2;
      hence thesis by A17,Th28;
    end;
    case
      i1 = i2 & j1 = j2+1;
      hence thesis by A17,Th28;
    end;
  end;
  1 + p..f <= k + len f by A2,A4,XREAL_1:7;
  then 1 <= n by NAT_D:55;
  hence thesis by A9,A11,GOBOARD5:def 7;
end;
