reserve n for Nat;

theorem Th25:
  for C be Simple_closed_curve for i1,i2,j,k be Nat holds
  1 < i1 & i1 < len Gauge(C,n+1) & 1 < i2 & i2 < len Gauge(C,n+1) &
  1 <= j & j <= k & k <= width Gauge(C,n+1) &
  Gauge(C,n+1)*(i1,k) in Lower_Arc L~Cage(C,n+1) &
  Gauge(C,n+1)*(i2,j) in Upper_Arc L~Cage(C,n+1) implies
  LSeg(Gauge(C,n+1)*(i2,j),Gauge(C,n+1)*(i2,k)) \/
  LSeg(Gauge(C,n+1)*(i2,k),Gauge(C,n+1)*(i1,k)) meets Upper_Arc C
proof
  let C be Simple_closed_curve;
  let i1,i2,j,k be Nat;
  set G=Gauge(C,n+1);
  assume that
A1: 1 < i1 and
A2: i1 < len G and
A3: 1 < i2 and
A4: i2 < len G and
A5: 1 <= j and
A6: j <= k and
A7: k <= width G and
A8: G*(i1,k) in Lower_Arc L~Cage(C,n+1) and
A9: G*(i2,j) in Upper_Arc L~Cage(C,n+1);
A10: Lower_Arc L~Cage(C,n+1) = L~Lower_Seq(C,n+1) by JORDAN1G:56;
A11: Upper_Arc L~Cage(C,n+1) = L~Upper_Seq(C,n+1) by JORDAN1G:55;
A12: j <= width G by A6,A7,XXREAL_0:2;
  then
A13: [i2,j] in Indices G by A3,A4,A5,MATRIX_0:30;
A14: 1 <= k by A5,A6,XXREAL_0:2;
  then
A15: [i2,k] in Indices G by A3,A4,A7,MATRIX_0:30;
  G*(i2,j)`1 = G*(i2,1)`1 by A3,A4,A5,A12,GOBOARD5:2
    .= G*(i2,k)`1 by A3,A4,A7,A14,GOBOARD5:2;
  then
A16: LSeg(G*(i2,j),G*(i2,k)) is vertical by SPPOL_1:16;
  G*(i2,k)`2 = G*(1,k)`2 by A3,A4,A7,A14,GOBOARD5:1
    .= G*(i1,k)`2 by A1,A2,A7,A14,GOBOARD5:1;
  then
A17: LSeg(G*(i2,k),G*(i1,k)) is horizontal by SPPOL_1:15;
A18: [i2,k] in Indices G by A3,A4,A7,A14,MATRIX_0:30;
A19: [i1,k] in Indices G by A1,A2,A7,A14,MATRIX_0:30;
  now per cases;
    suppose
A20:  LSeg(G*(i2,j),G*(i2,k)) meets Lower_Arc L~Cage(C,n+1);
      then consider m be Nat such that
A21:  j <= m and
A22:  m <= k and
A23:  G*(i2,m)`2 = lower_bound(proj2.:(LSeg(G*(i2,j),G*(i2,k))
      /\ L~Lower_Seq(C,n+1))) by A6,A10,A13,A15,JORDAN1F:1,JORDAN1G:5;
A24:  1 <= m by A5,A21,XXREAL_0:2;
A25:  m <= width G by A7,A22,XXREAL_0:2;
      set X = LSeg(G*(i2,j),G*(i2,k)) /\ L~Lower_Seq(C,n+1);
  G*(i2,m)`1 = G*(i2,1)`1 by A3,A4,A24,A25,GOBOARD5:2;
      then
A27:  |[G*(i2,1)`1,lower_bound(proj2.:X)]| = G*(i2,m) by A23,EUCLID:53;
A28:  G*(i2,j)`1 = |[G*(i2,1)`1,lower_bound(proj2.:X)]|`1
      by A3,A4,A5,A12,GOBOARD5:2;
      ex x be object st x in LSeg(G*(i2,j),G*(i2,k)) &
      x in L~Lower_Seq(C,n+1) by A10,A20,XBOOLE_0:3;
      then reconsider X1=X as non empty compact Subset of TOP-REAL 2
      by XBOOLE_0:def 4;
      consider pp be object such that
A29:  pp in S-most X1 by XBOOLE_0:def 1;
      reconsider pp as Point of TOP-REAL 2 by A29;
A30:  pp in X by A29,XBOOLE_0:def 4;
      then
A31:  pp in L~Lower_Seq(C,n+1) by XBOOLE_0:def 4;
      pp in LSeg(G*(i2,j),G*(i2,k)) by A30,XBOOLE_0:def 4;
      then
A32:  pp`1 = |[G*(i2,1)`1,lower_bound(proj2.:X)]|`1 by A16,A28,SPPOL_1:41;
      |[G*(i2,1)`1,lower_bound(proj2.:X)]|`2 = S-bound X by SPRECT_1:44
        .= (S-min X)`2
        .= pp`2 by A29,PSCOMP_1:55;
      then G*(i2,m) in Lower_Arc L~Cage(C,n+1) by A10,A27,A31,A32,TOPREAL3:6;
      then
      LSeg(G*(i2,j),G*(i2,m)) meets Upper_Arc C by A3,A4,A5,A9,A21,A25,Th18;
      then LSeg(G*(i2,j),G*(i2,k)) meets Upper_Arc C by A3,A4,A5,A7,A21,A22,
JORDAN15:5,XBOOLE_1:63;
      hence thesis by XBOOLE_1:70;
    end;
    suppose
A33:  LSeg(G*(i2,k),G*(i1,k)) meets Upper_Arc L~Cage(C,n+1) & i2 <= i1;
      then consider m be Nat such that
A34:  i2 <= m and
A35:  m <= i1 and
A36:  G*(m,k)`1 = upper_bound(proj1.:(LSeg(G*(i2,k),G*(i1,k))
      /\ L~Upper_Seq(C,n+1))) by A11,A18,A19,JORDAN1F:4,JORDAN1G:4;
A37:  1 < m by A3,A34,XXREAL_0:2;
A38:  m < len G by A2,A35,XXREAL_0:2;
      set X = LSeg(G*(i2,k),G*(i1,k)) /\ L~Upper_Seq(C,n+1);
  G*(m,k)`2 = G*(1,k)`2 by A7,A14,A37,A38,GOBOARD5:1;
      then
A40:  |[upper_bound(proj1.:X),G*(1,k)`2]| = G*(m,k) by A36,EUCLID:53;
A41:  G*(i2,k)`2 = |[upper_bound(proj1.:X),G*(1,k)`2]|`2
      by A3,A4,A7,A14,GOBOARD5:1;
      ex x be object st x in LSeg(G*(i2,k),G*(i1,k)) &
      x in L~Upper_Seq(C,n+1) by A11,A33,XBOOLE_0:3;
      then reconsider X1=X as non empty compact Subset of TOP-REAL 2
      by XBOOLE_0:def 4;
      consider pp be object such that
A42:  pp in E-most X1 by XBOOLE_0:def 1;
      reconsider pp as Point of TOP-REAL 2 by A42;
A43:  pp in X by A42,XBOOLE_0:def 4;
      then
A44:  pp in L~Upper_Seq(C,n+1) by XBOOLE_0:def 4;
      pp in LSeg(G*(i2,k),G*(i1,k)) by A43,XBOOLE_0:def 4;
      then
A45:  pp`2 = |[upper_bound(proj1.:X),G*(1,k)`2]|`2 by A17,A41,SPPOL_1:40;
      |[upper_bound(proj1.:X),G*(1,k)`2]|`1 = E-bound X by SPRECT_1:46
        .= (E-min X)`1
        .= pp`1 by A42,PSCOMP_1:47;
      then G*(m,k) in Upper_Arc L~Cage(C,n+1) by A11,A40,A44,A45,TOPREAL3:6;
      then LSeg(G*(m,k),G*(i1,k)) meets Upper_Arc C
      by A2,A7,A8,A14,A35,A37,JORDAN15:41;
      then LSeg(G*(i2,k),G*(i1,k)) meets Upper_Arc C by A2,A3,A7,A14,A34,A35,
JORDAN15:6,XBOOLE_1:63;
      hence thesis by XBOOLE_1:70;
    end;
    suppose
A46:  LSeg(G*(i2,k),G*(i1,k)) meets Upper_Arc L~Cage(C,n+1) & i1 < i2;
      then consider m be Nat such that
A47:  i1 <= m and
A48:  m <= i2 and
A49:  G*(m,k)`1 = lower_bound(proj1.:(LSeg(G*(i1,k),G*(i2,k))
      /\ L~Upper_Seq(C,n+1))) by A11,A18,A19,JORDAN1F:3,JORDAN1G:4;
A50:  1 < m by A1,A47,XXREAL_0:2;
A51:  m < len G by A4,A48,XXREAL_0:2;
      set X = LSeg(G*(i1,k),G*(i2,k)) /\ L~Upper_Seq(C,n+1);
  G*(m,k)`2 = G*(1,k)`2 by A7,A14,A50,A51,GOBOARD5:1;
      then
A53:  |[lower_bound(proj1.:X),G*(1,k)`2]| = G*(m,k) by A49,EUCLID:53;
A54:  G*(i1,k)`2 = |[lower_bound(proj1.:X),G*(1,k)`2]|`2
      by A1,A2,A7,A14,GOBOARD5:1;
      ex x be object st x in LSeg(G*(i1,k),G*(i2,k)) &
      x in L~Upper_Seq(C,n+1) by A11,A46,XBOOLE_0:3;
      then reconsider X1=X as non empty compact Subset of TOP-REAL 2
      by XBOOLE_0:def 4;
      consider pp be object such that
A55:  pp in W-most X1 by XBOOLE_0:def 1;
      reconsider pp as Point of TOP-REAL 2 by A55;
A56:  pp in X by A55,XBOOLE_0:def 4;
      then
A57:  pp in L~Upper_Seq(C,n+1) by XBOOLE_0:def 4;
      pp in LSeg(G*(i1,k),G*(i2,k)) by A56,XBOOLE_0:def 4;
      then
A58:  pp`2 = |[lower_bound(proj1.:X),G*(1,k)`2]|`2 by A17,A54,SPPOL_1:40;
      |[lower_bound(proj1.:X),G*(1,k)`2]|`1 = W-bound X by SPRECT_1:43
        .= (W-min X)`1
        .= pp`1 by A55,PSCOMP_1:31;
      then G*(m,k) in Upper_Arc L~Cage(C,n+1) by A11,A53,A57,A58,TOPREAL3:6;
      then LSeg(G*(i1,k),G*(m,k)) meets Upper_Arc C
      by A1,A7,A8,A14,A47,A51,JORDAN15:33;
      then LSeg(G*(i1,k),G*(i2,k)) meets Upper_Arc C by A1,A4,A7,A14,A47,A48,
JORDAN15:6,XBOOLE_1:63;
      hence thesis by XBOOLE_1:70;
    end;
    suppose
A59:  LSeg(G*(i2,j),G*(i2,k)) misses Lower_Arc L~Cage(C,n+1) &
      LSeg(Gauge(C,n+1)*(i2,k),Gauge(C,n+1)*(i1,k))
      misses Upper_Arc L~Cage(C,n+1);
      consider j1 be Nat such that
A60:  j <= j1 and
A61:  j1 <= k and
A62:  LSeg(G*(i2,j1),G*(i2,k)) /\ L~Upper_Seq(C,n+1) =
      {G*(i2,j1)} by A3,A4,A5,A6,A7,A9,A11,JORDAN15:15;
      G*(i2,j1) in LSeg(G*(i2,j1),G*(i2,k)) /\
      L~Upper_Seq(C,n+1) by A62,TARSKI:def 1;
      then
A63:  G*(i2,j1) in L~Upper_Seq(C,n+1) by XBOOLE_0:def 4;
A64:  1 <= j1 by A5,A60,XXREAL_0:2;
      now per cases;
        suppose i2 <= i1;
          then consider i3 be Nat such that
A65:      i2 <= i3 and
A66:      i3 <= i1 and
A67:      LSeg(G*(i2,k),G*(i3,k)) /\ L~Lower_Seq(C,n+1) = {G*(i3,k)}
          by A2,A3,A7,A8,A10,A14,JORDAN15:19;
A68:      i3 < len G by A2,A66,XXREAL_0:2;
          G*(i3,k) in LSeg(G*(i2,k),G*(i3,k)) /\ L~Lower_Seq(C,n+1)
          by A67,TARSKI:def 1;
          then
A69:      G*(i3,k) in L~Lower_Seq(C,n+1) by XBOOLE_0:def 4;
A70:      LSeg(G*(i2,j1),G*(i2,k)) c=
          LSeg(G*(i2,j),G*(i2,k)) by A3,A4,A5,A7,A60,A61,JORDAN15:5;
A71:      LSeg(G*(i2,k),G*(i3,k)) c= LSeg(G*(i2,k),G*(i1,k))
          by A2,A3,A7,A14,A65,A66,JORDAN15:6;
          then
A72:      LSeg(G*(i2,j1),G*(i2,k)) \/ LSeg(G*(i2,k),G*(i3,k)) c=
LSeg(G*(i2,j),G*(i2,k)) \/ LSeg(G*(i2,k),G*(i1,k)) by A70,XBOOLE_1:13;
A73:      (LSeg(G*(i2,j1),G*(i2,k)) \/
          LSeg(G*(i2,k),G*(i3,k))) /\ L~Lower_Seq(C,n+1) = {G*(i3,k)}
          proof
            thus (LSeg(G*(i2,j1),G*(i2,k)) \/
            LSeg(G*(i2,k),G*(i3,k))) /\ L~Lower_Seq(C,n+1) c= {G*(i3,k)}
            proof
              let x be object;
              assume
A74:          x in (LSeg(G*(i2,j1),G*(i2,k)) \/
              LSeg(G*(i2,k),G*(i3,k))) /\ L~Lower_Seq(C,n+1);
              then x in LSeg(G*(i2,j1),G*(i2,k)) \/ LSeg(G*(i2,k),G*(i3,k)) by
XBOOLE_0:def 4;
              then
A75:          x in LSeg(G*(i2,j1),G*(i2,k)) or x in LSeg(G*(i2,k),G*(i3,k)) by
XBOOLE_0:def 3;
              x in L~Lower_Seq(C,n+1) by A74,XBOOLE_0:def 4;
              hence thesis by A10,A59,A67,A70,A75,XBOOLE_0:def 4;
            end;
            let x be object;
            assume x in {G*(i3,k)};
            then
A76:        x = G*(i3,k) by TARSKI:def 1;
            G*(i3,k) in LSeg(G*(i2,k),G*(i3,k)) by RLTOPSP1:68;
            then G*(i3,k) in LSeg(G*(i2,j1),G*(i2,k)) \/
            LSeg(G*(i2,k),G*(i3,k)) by XBOOLE_0:def 3;
            hence thesis by A69,A76,XBOOLE_0:def 4;
          end;
          (LSeg(G*(i2,j1),G*(i2,k)) \/ LSeg(G*(i2,k),G*(i3,k))) /\
          L~Upper_Seq(C,n+1) = {G*(i2,j1)}
          proof
            thus
            (LSeg(G*(i2,j1),G*(i2,k)) \/ LSeg(G*(i2,k),G*(i3,k))) /\
            L~Upper_Seq(C,n+1) c= {G*(i2,j1)}
            proof
              let x be object;
              assume
A77:          x in (LSeg(G*(i2,j1),G*(i2,k)) \/
              LSeg(G*(i2,k),G*(i3,k))) /\ L~Upper_Seq(C,n+1);
              then x in LSeg(G*(i2,j1),G*(i2,k)) \/ LSeg(G*(i2,k),G*(i3,k)) by
XBOOLE_0:def 4;
              then
A78:          x in LSeg(G*(i2,j1),G*(i2,k)) or x in LSeg(G*(i2,k),G*(i3,k)) by
XBOOLE_0:def 3;
              x in L~Upper_Seq(C,n+1) by A77,XBOOLE_0:def 4;
              hence thesis by A11,A59,A62,A71,A78,XBOOLE_0:def 4;
            end;
            let x be object;
            assume x in {G*(i2,j1)};
            then
A79:        x = G*(i2,j1) by TARSKI:def 1;
            G*(i2,j1) in LSeg(G*(i2,j1),G*(i2,k)) by RLTOPSP1:68;
            then G*(i2,j1) in LSeg(G*(i2,j1),G*(i2,k)) \/
            LSeg(G*(i2,k),G*(i3,k)) by XBOOLE_0:def 3;
            hence thesis by A63,A79,XBOOLE_0:def 4;
          end;
          hence thesis by A3,A7,A61,A64,A65,A68,A72,A73,Th20,XBOOLE_1:63;
        end;
        suppose i1 < i2;
          then consider i3 be Nat such that
A80:      i1 <= i3 and
A81:      i3 <= i2 and
A82:      LSeg(G*(i3,k),G*(i2,k)) /\ L~Lower_Seq(C,n+1) = {G*(i3,k)}
          by A1,A4,A7,A8,A10,A14,JORDAN15:12;
A83:      1 < i3 by A1,A80,XXREAL_0:2;
          G*(i3,k) in LSeg(G*(i2,k),G*(i3,k)) /\ L~Lower_Seq(C,n+1)
          by A82,TARSKI:def 1;
          then
A84:      G*(i3,k) in L~Lower_Seq(C,n+1) by XBOOLE_0:def 4;
A85:      LSeg(G*(i2,j1),G*(i2,k)) c=
          LSeg(G*(i2,j),G*(i2,k)) by A3,A4,A5,A7,A60,A61,JORDAN15:5;
A86:      LSeg(G*(i2,k),G*(i3,k)) c= LSeg(G*(i2,k),G*(i1,k))
          by A1,A4,A7,A14,A80,A81,JORDAN15:6;
          then
A87:      LSeg(G*(i2,j1),G*(i2,k)) \/ LSeg(G*(i2,k),G*(i3,k)) c=
LSeg(G*(i2,j),G*(i2,k)) \/ LSeg(G*(i2,k),G*(i1,k)) by A85,XBOOLE_1:13;
A88:      (LSeg(G*(i2,j1),G*(i2,k)) \/
          LSeg(G*(i2,k),G*(i3,k))) /\ L~Lower_Seq(C,n+1) = {G*(i3,k)}
          proof
            thus (LSeg(G*(i2,j1),G*(i2,k)) \/
            LSeg(G*(i2,k),G*(i3,k))) /\ L~Lower_Seq(C,n+1) c= {G*(i3,k)}
            proof
              let x be object;
              assume
A89:          x in (LSeg(G*(i2,j1),G*(i2,k)) \/
              LSeg(G*(i2,k),G*(i3,k))) /\ L~Lower_Seq(C,n+1);
              then x in LSeg(G*(i2,j1),G*(i2,k)) \/ LSeg(G*(i2,k),G*(i3,k)) by
XBOOLE_0:def 4;
              then
A90:          x in LSeg(G*(i2,j1),G*(i2,k)) or x in LSeg(G*(i2,k),G*(i3,k)) by
XBOOLE_0:def 3;
              x in L~Lower_Seq(C,n+1) by A89,XBOOLE_0:def 4;
              hence thesis by A10,A59,A82,A85,A90,XBOOLE_0:def 4;
            end;
            let x be object;
            assume x in {G*(i3,k)};
            then
A91:        x = G*(i3,k) by TARSKI:def 1;
            G*(i3,k) in LSeg(G*(i2,k),G*(i3,k)) by RLTOPSP1:68;
            then G*(i3,k) in LSeg(G*(i2,j1),G*(i2,k)) \/
            LSeg(G*(i2,k),G*(i3,k)) by XBOOLE_0:def 3;
            hence thesis by A84,A91,XBOOLE_0:def 4;
          end;
          (LSeg(G*(i2,j1),G*(i2,k)) \/ LSeg(G*(i2,k),G*(i3,k))) /\
          L~Upper_Seq(C,n+1) = {G*(i2,j1)}
          proof
            thus
            (LSeg(G*(i2,j1),G*(i2,k)) \/ LSeg(G*(i2,k),G*(i3,k))) /\
            L~Upper_Seq(C,n+1) c= {G*(i2,j1)}
            proof
              let x be object;
              assume
              A92:          x
 in (LSeg(G*(i2,j1),G*(i2,k)) \/ LSeg(G*(i2,k),G*(i3,k )
              )) /\ L~Upper_Seq(C,n+1);
              then x in LSeg(G*(i2,j1),G*(i2,k)) \/ LSeg(G*(i2,k),G*(i3,k)) by
XBOOLE_0:def 4;
              then
A93:          x in LSeg(G*(i2,j1),G*(i2,k)) or x in LSeg(G*(i2,k),G*(i3,k)) by
XBOOLE_0:def 3;
              x in L~Upper_Seq(C,n+1) by A92,XBOOLE_0:def 4;
              hence thesis by A11,A59,A62,A86,A93,XBOOLE_0:def 4;
            end;
            let x be object;
            assume x in {G*(i2,j1)};
            then
A94:        x = G*(i2,j1) by TARSKI:def 1;
            G*(i2,j1) in LSeg(G*(i2,j1),G*(i2,k)) by RLTOPSP1:68;
            then G*(i2,j1) in LSeg(G*(i2,j1),G*(i2,k)) \/
            LSeg(G*(i2,k),G*(i3,k)) by XBOOLE_0:def 3;
            hence thesis by A63,A94,XBOOLE_0:def 4;
          end;
          hence thesis by A4,A7,A61,A64,A81,A83,A87,A88,Th22,XBOOLE_1:63;
        end;
      end;
      hence thesis;
    end;
  end;
  hence thesis;
end;
