reserve p,p1,p2,p3,q,q1,q2 for Point of TOP-REAL 2,
  i for Nat,
  lambda for Real;

theorem Th30:
  for a,b,c,d being Real st a <= b & c <= d holds
  LSeg(|[ a,c ]|, |[ a,d ]|) = { p1 : p1`1 = a & p1`2 <= d & p1`2 >= c}
  & LSeg(|[ a,d ]|, |[ b,d ]|) = { p2 : p2`1 <= b & p2`1 >= a & p2`2 = d}
  & LSeg(|[ a,c ]|, |[ b,c ]|) = { q1 : q1`1 <= b & q1`1 >= a & q1`2 = c}
  & LSeg(|[ b,c ]|, |[ b,d ]|) = { q2 : q2`1 = b & q2`2 <= d & q2`2 >= c}
proof
  let a,b,c,d be Real;
  assume that
A1: a <= b and
A2: c <= d;
  set L1 = { p : p`1 = a & p`2 <= d & p`2 >= c},
  L2 = { p : p`1 <= b & p`1 >= a & p`2 = d},
  L3 = { p : p`1 <= b & p`1 >= a & p`2 = c},
  L4 = { p : p`1 = b & p`2 <= d & p`2 >= c};
  set p0 = |[ a,c ]|, p01 = |[ a,d ]|, p10 = |[ b,c ]|, p1 = |[ b,d ]|;
A3: p01`1 = a by EUCLID:52;
A4: p01`2 = d by EUCLID:52;
A5: p10`1 = b by EUCLID:52;
A6: p10`2 = c by EUCLID:52;
A7: L1 c= LSeg(p0,p01)
  proof
    let a2 be object;
    assume a2 in L1;
    then consider p such that
A8: a2 = p and
A9: p`1 = a and
A10: p`2 <= d and
A11: p`2 >= c;
    now per cases;
      case
A12:    d <>c;
        reconsider lambda = (p`2-c)/(d-c) as Real;
        d>=c by A10,A11,XXREAL_0:2;
        then d>c by A12,XXREAL_0:1;
        then
A13:    d-c>0 by XREAL_1:50;
A14:    p`2-c>=0 by A11,XREAL_1:48;
        d-c>=p`2-c by A10,XREAL_1:9;
        then (d-c)/(d-c)>=(p`2-c)/(d-c) by A13,XREAL_1:72;
        then
A15:    1>=lambda by A13,XCMPLX_1:60;
A16:    (1-lambda)*c+lambda*d
        =((d-c)/(d-c)- (p`2-c)/(d-c))*c+(p`2-c)/(d-c)*d by A13,XCMPLX_1:60
          .=(((d-c)- (p`2-c))/(d-c))*c+(p`2-c)/(d-c)*d by XCMPLX_1:120
          .=c*((d- p`2)/(d-c))+d*(p`2-c)/(d-c) by XCMPLX_1:74
          .=c*(d- p`2)/(d-c)+d*(p`2-c)/(d-c) by XCMPLX_1:74
          .=((c*d- c*p`2)+(d*p`2-d*c))/(d-c) by XCMPLX_1:62
          .=(d- c)*p`2/(d-c)
          .=p`2*((d- c)/(d-c)) by XCMPLX_1:74
          .=p`2*1 by A13,XCMPLX_1:60
          .=p`2;
        (1-lambda)*p0 + lambda*p01
        =|[(1-lambda)*a,(1-lambda)*c]| + lambda*(|[a,d]|) by EUCLID:58
          .=|[(1-lambda)*a,(1-lambda)*c]| +(|[ lambda*a, lambda*d]|)
        by EUCLID:58
          .=|[(1-lambda)*a+lambda*a,(1-lambda)*c+lambda*d]| by EUCLID:56
          .= p by A9,A16,EUCLID:53;
        hence thesis by A8,A13,A14,A15;
      end;
      case d =c;
        then
A17:    p`2=c by A10,A11,XXREAL_0:1;
        reconsider lambda = 0 as Real;
        (1-lambda)*p0 + lambda*p01 =
        |[(1-lambda)*a,(1-lambda)*c]| + lambda*(|[a,d]|) by EUCLID:58
          .=|[(1-lambda)*a,(1-lambda)*c]| +(|[ lambda*a, lambda*d]|)
        by EUCLID:58
          .=|[(1-lambda)*a+lambda*a,(1-lambda)*c+lambda*d]|
        by EUCLID:56
          .= p by A9,A17,EUCLID:53;
        hence thesis by A8;
      end;
    end;
    hence thesis;
  end;
  LSeg(p0,p01) c= L1
  proof
    let a2 be object;
    assume a2 in LSeg(p0,p01);
    then consider lambda such that
A18: a2 = (1-lambda)*p0 + lambda*p01 and
A19: 0 <= lambda and
A20: lambda <= 1;
    set q = (1-lambda)*p0 + lambda*p01;
A21: q`1= ((1-lambda)*p0)`1 + (lambda*p01)`1 by TOPREAL3:2
      .= (1-lambda)*(p0)`1 + (lambda*p01)`1 by TOPREAL3:4
      .= (1-lambda)*(p0)`1 + lambda*(p01)`1 by TOPREAL3:4
      .=(1-lambda)*a +lambda*a by A3,EUCLID:52
      .=a;
A22: q`2= ((1-lambda)*p0)`2 + (lambda*p01)`2 by TOPREAL3:2
      .= (1-lambda)*(p0)`2 + (lambda*p01)`2 by TOPREAL3:4
      .= (1-lambda)*(p0)`2 + lambda*(p01)`2 by TOPREAL3:4
      .= (1-lambda)*c + lambda*d by A4,EUCLID:52;
    then
A23: q`2 <= d by A2,A20,XREAL_1:172;
    q`2 >= c by A2,A19,A20,A22,XREAL_1:173;
    hence thesis by A18,A21,A23;
  end;
  hence L1 = LSeg(p0,p01) by A7;
A24: L2 c= LSeg(p01,p1)
  proof
    let a2 be object;
    assume a2 in L2;
    then consider p such that
A25: a2 = p and
A26: p`1 <= b and
A27: p`1 >= a and
A28: p`2=d;
    now per cases;
      case
A29:    b <>a;
        reconsider lambda = (p`1-a)/(b-a) as Real;
        b>=a by A26,A27,XXREAL_0:2;
        then b>a by A29,XXREAL_0:1;
        then
A30:    b-a>0 by XREAL_1:50;
A31:    p`1-a>=0 by A27,XREAL_1:48;
        b-a>=p`1-a by A26,XREAL_1:9;
        then (b-a)/(b-a)>=(p`1-a)/(b-a) by A30,XREAL_1:72;
        then
A32:    1>=lambda by A30,XCMPLX_1:60;
A33:    (1-lambda)*a+lambda*b
        =((b-a)/(b-a)- (p`1-a)/(b-a))*a+(p`1-a)/(b-a)*b by A30,XCMPLX_1:60
          .=(((b-a)- (p`1-a))/(b-a))*a+(p`1-a)/(b-a)*b by XCMPLX_1:120
          .=a*((b- p`1)/(b-a))+b*(p`1-a)/(b-a) by XCMPLX_1:74
          .=a*(b- p`1)/(b-a)+b*(p`1-a)/(b-a) by XCMPLX_1:74
          .=((a*b- a*p`1)+(b*p`1-b*a))/(b-a) by XCMPLX_1:62
          .=(b- a)*p`1/(b-a)
          .=p`1*((b- a)/(b-a)) by XCMPLX_1:74
          .=p`1*1 by A30,XCMPLX_1:60
          .=p`1;
        (1-lambda)*p01 + lambda*p1
        =|[(1-lambda)*a,(1-lambda)*d]| + lambda*(|[b,d]|) by EUCLID:58
          .=|[(1-lambda)*a,(1-lambda)*d]| +(|[ lambda*b, lambda*d]|)
        by EUCLID:58
          .=|[(1-lambda)*a+lambda*b,(1-lambda)*d+lambda*d]|
        by EUCLID:56
          .= p by A28,A33,EUCLID:53;
        hence thesis by A25,A30,A31,A32;
      end;
      case b =a;
        then
A34:    p`1=a by A26,A27,XXREAL_0:1;
        reconsider lambda = 0 as Real;
        (1-lambda)*p01 + lambda*p1
        =|[(1-lambda)*a,(1-lambda)*d]| + lambda*(|[b,d]|) by EUCLID:58
          .=|[(1-lambda)*a,(1-lambda)*d]| +(|[ lambda*b, lambda*d]|)
        by EUCLID:58
          .=|[(1-lambda)*a+lambda*b,(1-lambda)*d+lambda*d]|
        by EUCLID:56
          .= p by A28,A34,EUCLID:53;
        hence thesis by A25;
      end;
    end;
    hence thesis;
  end;
  LSeg(p01,p1) c= L2
  proof
    let a2 be object;
    assume a2 in LSeg(p01,p1);
    then consider lambda such that
A35: a2 = (1-lambda)*p01 + lambda*p1 and
A36: 0 <= lambda and
A37: lambda <= 1;
    set q = (1-lambda)*p01 + lambda*p1;
A38: q`2= ((1-lambda)*p01)`2 + (lambda*p1)`2 by TOPREAL3:2
      .= (1-lambda)*(p01)`2 + (lambda*p1)`2 by TOPREAL3:4
      .= (1-lambda)*(p01)`2 + lambda*(p1)`2 by TOPREAL3:4
      .=(1-lambda)*d +lambda*d by A4,EUCLID:52
      .=d;
A39: q`1= ((1-lambda)*p01)`1 + (lambda*p1)`1 by TOPREAL3:2
      .= (1-lambda)*(p01)`1 + (lambda*p1)`1 by TOPREAL3:4
      .= (1-lambda)*(p01)`1 + lambda*(p1)`1 by TOPREAL3:4
      .= (1-lambda)*a + lambda*b by A3,EUCLID:52;
    then
A40: q`1 <= b by A1,A37,XREAL_1:172;
    q`1 >= a by A1,A36,A37,A39,XREAL_1:173;
    hence thesis by A35,A38,A40;
  end;
  hence L2 = LSeg(p01,p1) by A24;
A41: L3 c= LSeg(p0,p10)
  proof
    let a2 be object;
    assume a2 in L3;
    then consider p such that
A42: a2 = p and
A43: p`1 <= b and
A44: p`1 >= a and
A45: p`2=c;
    now per cases;
      case
A46:    b <>a;
        reconsider lambda = (p`1-a)/(b-a) as Real;
        b>=a by A43,A44,XXREAL_0:2;
        then b>a by A46,XXREAL_0:1;
        then
A47:    b-a>0 by XREAL_1:50;
A48:    p`1-a>=0 by A44,XREAL_1:48;
        b-a>=p`1-a by A43,XREAL_1:9;
        then (b-a)/(b-a)>=(p`1-a)/(b-a) by A47,XREAL_1:72;
        then
A49:    1>=lambda by A47,XCMPLX_1:60;
A50:    (1-lambda)*a+lambda*b
        =((b-a)/(b-a)- (p`1-a)/(b-a))*a+(p`1-a)/(b-a)*b by A47,XCMPLX_1:60
          .=(((b-a)- (p`1-a))/(b-a))*a+(p`1-a)/(b-a)*b by XCMPLX_1:120
          .=a*((b- p`1)/(b-a))+b*(p`1-a)/(b-a) by XCMPLX_1:74
          .=a*(b- p`1)/(b-a)+b*(p`1-a)/(b-a) by XCMPLX_1:74
          .=((a*b- a*p`1)+(b*p`1-b*a))/(b-a) by XCMPLX_1:62
          .=(b- a)*p`1/(b-a)
          .=p`1*((b- a)/(b-a)) by XCMPLX_1:74
          .=p`1*1 by A47,XCMPLX_1:60
          .=p`1;
        (1-lambda)*p0 + lambda*p10
        =|[(1-lambda)*a,(1-lambda)*c]| + lambda*(|[b,c]|) by EUCLID:58
          .=|[(1-lambda)*a,(1-lambda)*c]| +(|[ lambda*b, lambda*c]|)
        by EUCLID:58
          .=|[(1-lambda)*a+lambda*b,(1-lambda)*c+lambda*c]| by EUCLID:56
          .= p by A45,A50,EUCLID:53;
        hence thesis by A42,A47,A48,A49;
      end;
      case b =a;
        then
A51:    p`1=a by A43,A44,XXREAL_0:1;
        reconsider lambda = 0 as Real;
        (1-lambda)*p0 + lambda*p10 =
        |[(1-lambda)*a,(1-lambda)*c]| + lambda*(|[b,c]|) by EUCLID:58
          .=|[(1-lambda)*a,(1-lambda)*c]| +(|[ lambda*b, lambda*c]|)
        by EUCLID:58
          .=|[(1-lambda)*a+lambda*b,(1-lambda)*c+lambda*c]|
        by EUCLID:56
          .= p by A45,A51,EUCLID:53;
        hence thesis by A42;
      end;
    end;
    hence thesis;
  end;
  LSeg(p0,p10) c= L3
  proof
    let a2 be object;
    assume a2 in LSeg(p0,p10);
    then consider lambda such that
A52: a2 = (1-lambda)*p0 + lambda*p10 and
A53: 0 <= lambda and
A54: lambda <= 1;
    set q = (1-lambda)*p0 + lambda*p10;
A55: q`2= ((1-lambda)*p0)`2 + (lambda*p10)`2 by TOPREAL3:2
      .= (1-lambda)*(p0)`2 + (lambda*p10)`2 by TOPREAL3:4
      .= (1-lambda)*(p0)`2 + lambda*(p10)`2 by TOPREAL3:4
      .=(1-lambda)*c +lambda*c by A6,EUCLID:52
      .=c;
A56: q`1= ((1-lambda)*p0)`1 + (lambda*p10)`1 by TOPREAL3:2
      .= (1-lambda)*(p0)`1 + (lambda*p10)`1 by TOPREAL3:4
      .= (1-lambda)*(p0)`1 + lambda*(p10)`1 by TOPREAL3:4
      .= (1-lambda)*a + lambda*b by A5,EUCLID:52;
    then
A57: q`1 <= b by A1,A54,XREAL_1:172;
    q`1 >= a by A1,A53,A54,A56,XREAL_1:173;
    hence thesis by A52,A55,A57;
  end;
  hence L3 = LSeg(p0,p10) by A41;
A58: L4 c= LSeg(p10,p1)
  proof
    let a2 be object;
    assume a2 in L4;
    then consider p such that
A59: a2 = p and
A60: p`1 = b and
A61: p`2 <= d and
A62: p`2 >= c;
    now per cases;
      case
A63:    d <>c;
        reconsider lambda = (p`2-c)/(d-c) as Real;
        d>=c by A61,A62,XXREAL_0:2;
        then d>c by A63,XXREAL_0:1;
        then
A64:    d-c>0 by XREAL_1:50;
A65:    p`2-c>=0 by A62,XREAL_1:48;
        d-c>=p`2-c by A61,XREAL_1:9;
        then (d-c)/(d-c)>=(p`2-c)/(d-c) by A64,XREAL_1:72;
        then
A66:    1>=lambda by A64,XCMPLX_1:60;
A67:    (1-lambda)*c+lambda*d
        =((d-c)/(d-c)- (p`2-c)/(d-c))*c+(p`2-c)/(d-c)*d by A64,XCMPLX_1:60
          .=(((d-c)- (p`2-c))/(d-c))*c+(p`2-c)/(d-c)*d by XCMPLX_1:120
          .=c*((d- p`2)/(d-c))+d*(p`2-c)/(d-c) by XCMPLX_1:74
          .=c*(d- p`2)/(d-c)+d*(p`2-c)/(d-c) by XCMPLX_1:74
          .=((c*d- c*p`2)+(d*p`2-d*c))/(d-c) by XCMPLX_1:62
          .=(d- c)*p`2/(d-c)
          .=p`2*((d- c)/(d-c)) by XCMPLX_1:74
          .=p`2*1 by A64,XCMPLX_1:60
          .=p`2;
        (1-lambda)*p10 + lambda*p1
        =|[(1-lambda)*b,(1-lambda)*c]| + lambda*(|[b,d]|) by EUCLID:58
          .=|[(1-lambda)*b,(1-lambda)*c]| +(|[ lambda*b, lambda*d]|)
        by EUCLID:58
          .=|[(1-lambda)*b+lambda*b,(1-lambda)*c+lambda*d]|
        by EUCLID:56
          .= p by A60,A67,EUCLID:53;
        hence thesis by A59,A64,A65,A66;
      end;
      case d =c;
        then
A68:    p`2=c by A61,A62,XXREAL_0:1;
        reconsider lambda = 0 as Real;
        (1-lambda)*p10 + lambda*p1
        =|[(1-lambda)*b,(1-lambda)*c]| + lambda*(|[b,d]|) by EUCLID:58
          .=|[(1-lambda)*b,(1-lambda)*c]| +(|[ lambda*b, lambda*d]|)
        by EUCLID:58
          .=|[(1-lambda)*b+lambda*b,(1-lambda)*c+lambda*d]|
        by EUCLID:56
          .= p by A60,A68,EUCLID:53;
        hence thesis by A59;
      end;
    end;
    hence thesis;
  end;
  LSeg(p10,p1) c= L4
  proof
    let a2 be object;
    assume a2 in LSeg(p10,p1);
    then consider lambda such that
A69: a2 = (1-lambda)*p10 + lambda*p1 and
A70: 0 <= lambda and
A71: lambda <= 1;
    set q = (1-lambda)*p10 + lambda*p1;
A72: q`1= ((1-lambda)*p10)`1 + (lambda*p1)`1 by TOPREAL3:2
      .= (1-lambda)*(p10)`1 + (lambda*p1)`1 by TOPREAL3:4
      .= (1-lambda)*(p10)`1 + lambda*(p1)`1 by TOPREAL3:4
      .=(1-lambda)*b +lambda*b by A5,EUCLID:52
      .=b;
A73: q`2= ((1-lambda)*p10)`2 + (lambda*p1)`2 by TOPREAL3:2
      .= (1-lambda)*(p10)`2 + (lambda*p1)`2 by TOPREAL3:4
      .= (1-lambda)*(p10)`2 + lambda*(p1)`2 by TOPREAL3:4
      .= (1-lambda)*c + lambda*d by A6,EUCLID:52;
    then
A74: q`2 <= d by A2,A71,XREAL_1:172;
    q`2 >= c by A2,A70,A71,A73,XREAL_1:173;
    hence thesis by A69,A72,A74;
  end;
  hence L4 = LSeg(p10,p1) by A58;
end;
