
theorem Th21:
  for I being non empty set for A being PLS-yielding ManySortedSet
of I for B1,B2 being Segre-Coset of A st B1 misses B2 holds B1 '||' B2 iff for
b1,b2 being Segre-like non trivial-yielding ManySortedSubset of Carrier A st B1
= product b1 & B2 = product b2 holds indx(b1)=indx(b2) & ex r being Element of
I st r<>indx(b1) & (for i being Element of I st i<>r holds b1.i=b2.i) & for c1,
  c2 being Point of A.r st b1.r = {c1} & b2.r = {c2} holds c1,c2 are_collinear
proof
  let I being non empty set;
  let A being PLS-yielding ManySortedSet of I;
  let B1,B2 being Segre-Coset of A;
  consider L1 being Segre-like non trivial-yielding ManySortedSubset of
  Carrier A such that
A1: B1 = product L1 and
  L1.indx(L1) = [#](A.indx(L1)) by PENCIL_2:def 2;
  assume
A2: B1 misses B2;
  thus B1 '||' B2 implies for b1,b2 being Segre-like non trivial-yielding
ManySortedSubset of Carrier A st B1 = product b1 & B2 = product b2 holds indx(
b1)=indx(b2) & ex r being Element of I st r<>indx(b1) & (for i being Element of
I st i<>r holds b1.i=b2.i) & for c1,c2 being Point of A.r st b1.r={c1} & b2.r={
  c2} holds c1,c2 are_collinear
  proof
    assume
A3: B1 '||' B2;
    consider L2 being Segre-like non trivial-yielding ManySortedSubset of
    Carrier A such that
A4: B2 = product L2 and
A5: L2.indx(L2) = [#](A.indx(L2)) by PENCIL_2:def 2;
    consider L1 being Segre-like non trivial-yielding ManySortedSubset of
    Carrier A such that
A6: B1 = product L1 and
A7: L1.indx(L1) = [#](A.indx(L1)) by PENCIL_2:def 2;
    let b1,b2 being Segre-like non trivial-yielding ManySortedSubset of
    Carrier A;
    assume that
A8: B1 = product b1 and
A9: B2 = product b2;
A10: b1 = L1 by A8,A6,PUA2MSS1:2;
    thus
A11: indx(b1)=indx(b2)
    proof
      assume indx(b1)<>indx(b2);
      then b2.indx(b1) is 1-element by PENCIL_1:12;
      then consider c2 being object such that
A12:  b2.indx(b1)={c2} by ZFMISC_1:131;
      set bl = the Block of A.indx(b1);
      consider p0 being object such that
A13:  p0 in B1 by A8,XBOOLE_0:def 1;
      reconsider p0 as Point of Segre_Product A by A13;
      reconsider p=p0 as Element of Carrier A by Th6;
      bl in the topology of A.indx(b1);
      then 2 c= card bl & card bl c= card (the carrier of (A.indx(b1))) by
CARD_1:11,PENCIL_1:def 6;
      then consider a being object such that
A14:  a in the carrier of (A.indx(b1)) and
A15:  a <> c2 by PENCIL_1:3,XBOOLE_1:1;
      reconsider a as Point of A.indx(b1) by A14;
      reconsider x=p+*(indx(b1),a) as Point of Segre_Product A by PENCIL_1:25;
      reconsider x1=x as Element of Carrier A by Th6;
A16:  dom x1 = I by PARTFUN1:def 2
        .= dom b1 by PARTFUN1:def 2;
      now
        let i be object;
        assume
A17:    i in dom x1;
        then i in I;
        then
A18:    i in dom p by PARTFUN1:def 2;
        per cases;
        suppose
A19:      i=indx(b1);
          then x1.i = a by A18,FUNCT_7:31;
          hence x1.i in b1.i by A7,A10,A19;
        end;
        suppose
          i<>indx(b1);
          then
A20:      x1.i = p.i by FUNCT_7:32;
          ex f being Function st f=p & dom f = dom b1 &
      for a being object st
          a in dom b1 holds f.a in b1.a by A8,A13,CARD_3:def 5;
          hence x1.i in b1.i by A16,A17,A20;
        end;
      end;
      then
A21:  x in B1 by A8,A16,CARD_3:def 5;
      then consider y being Point of Segre_Product A such that
A22:  y in B2 and
A23:  x,y are_collinear by A3;
      reconsider y1=y as Element of Carrier A by Th6;
      per cases;
      suppose
        y=x;
        then y in B1 /\ B2 by A21,A22,XBOOLE_0:def 4;
        hence contradiction by A2;
      end;
      suppose
        y<>x;
        then consider i0 being Element of I such that
        for a,b being Point of A.i0 st a=x1.i0 & b=y1.i0 holds a<>b & a,b
        are_collinear and
A24:    for j being Element of I st j<>i0 holds x1.j = y1.j by A23,Th17;
A25:    dom y1 = I by PARTFUN1:def 2
          .= dom b1 by PARTFUN1:def 2;
        now
          let i be object;
          assume
A26:      i in dom y1;
          then reconsider i5=i as Element of I;
          per cases;
          suppose
A27:        i=indx(b1);
            reconsider i1=i as Element of I by A26;
            y1.i1 is Element of (Carrier A).i1 by PBOOLE:def 14;
            then y1.i1 is Element of [#](A.i1) by Th7;
            hence y1.i in b1.i by A7,A10,A27;
          end;
          suppose
A28:        i<>indx(b1);
            (ex g being Function st g=y1 & dom g = dom b2 &
   for a being object  st a in dom b2 holds g.a in b2.a )& dom b2 = I
by A9,A22,CARD_3:def 5
,PARTFUN1:def 2;
            then y1.indx(b1) in b2.indx(b1);
            then
A29:        y1.indx(b1) = c2 by A12,TARSKI:def 1;
            dom p = I by PARTFUN1:def 2;
            then x1.indx(b1) = a by FUNCT_7:31;
            then i0 = indx(b1) by A15,A24,A29;
            then
A30:        y1.i5 = x1.i5 by A24,A28;
A31:        x1.i = p.i by A28,FUNCT_7:32;
            ex f being Function st f=p & dom f = dom b1 & for a being object
            st a in dom b1 holds f.a in b1.a by A8,A13,CARD_3:def 5;
            hence y1.i in b1.i by A25,A26,A30,A31;
          end;
        end;
        then y in B1 by A8,A25,CARD_3:def 5;
        then y in B1 /\ B2 by A22,XBOOLE_0:def 4;
        hence contradiction by A2;
      end;
    end;
A32: b2 = L2 by A9,A4,PUA2MSS1:2;
    thus ex r being Element of I st r<>indx(b1) & (for i being Element of I st
i<>r holds b1.i=b2.i) & for c1,c2 being Point of A.r st b1.r={c1} & b2.r={c2}
    holds c1,c2 are_collinear
    proof
      consider x being object such that
A33:  x in B1 by A8,XBOOLE_0:def 1;
      reconsider x as Point of Segre_Product A by A33;
      consider y being Point of Segre_Product A such that
A34:  y in B2 and
A35:  x,y are_collinear by A3,A33;
      reconsider y1=y as Element of Carrier A by Th6;
      reconsider x1=x as Element of Carrier A by Th6;
      x <> y by A2,A33,A34,XBOOLE_0:def 4;
      then consider r being Element of I such that
A36:  for a,b being Point of A.r st a=x1.r & b=y1.r holds a<>b & a,b
      are_collinear and
A37:  for j being Element of I st j<>r holds x1.j = y1.j by A35,Th17;
      take r;
      now
        assume
A38:    r=indx(b1);
A39:    now
          let o be object;
          assume
A40:      o in dom b1;
          then reconsider o1=o as Element of I;
          per cases;
          suppose
A41:        o1=r;
            y1.o1 is Element of (Carrier A).o1 by PBOOLE:def 14;
            then y1.o1 is Element of [#](A.o1) by Th7;
            hence y1.o in b1.o by A7,A10,A38,A41;
          end;
          suppose
A42:        o1<>r;
            then b1.o1 is 1-element by A38,PENCIL_1:12;
            then consider c being object such that
A43:        b1.o1 = {c} by ZFMISC_1:131;
            x1.o1 in b1.o1 by A8,A33,A40,CARD_3:9;
            then c = x1.o1 by A43,TARSKI:def 1
              .= y1.o1 by A37,A42;
            hence y1.o in b1.o by A43,TARSKI:def 1;
          end;
        end;
        dom y1 = I by PARTFUN1:def 2
          .= dom b1 by PARTFUN1:def 2;
        then y1 in B1 by A8,A39,CARD_3:9;
        then B1 /\ B2 <> {} by A34,XBOOLE_0:def 4;
        hence contradiction by A2;
      end;
      hence r<>indx(b1);
      thus for i being Element of I st i<>r holds b1.i=b2.i
      proof
        let i be Element of I;
        assume
A44:    i<>r;
        per cases;
        suppose
          i=indx(b1);
          hence thesis by A7,A5,A10,A32,A11;
        end;
        suppose
A45:      i<>indx(b1);
          then b2.i is 1-element by A11,PENCIL_1:12;
          then
A46:      ex d being object st b2.i = {d} by ZFMISC_1:131;
          dom b2 = I by PARTFUN1:def 2;
          then
A47:      y1.i in b2.i by A9,A34,CARD_3:9;
          b1.i is 1-element by A45,PENCIL_1:12;
          then consider c being object such that
A48:      b1.i = {c} by ZFMISC_1:131;
          dom b1 = I by PARTFUN1:def 2;
          then x1.i in b1.i by A8,A33,CARD_3:9;
          then c = x1.i by A48,TARSKI:def 1
            .= y1.i by A37,A44;
          hence thesis by A48,A46,A47,TARSKI:def 1;
        end;
      end;
      let c1,c2 being Point of A.r;
      assume that
A49:  b1.r={c1} and
A50:  b2.r={c2};
      dom L2 = I by PARTFUN1:def 2;
      then y1.r in b2.r by A4,A32,A34,CARD_3:9;
      then
A51:  c2 = y1.r by A50,TARSKI:def 1;
      dom L1 = I by PARTFUN1:def 2;
      then x1.r in b1.r by A6,A10,A33,CARD_3:9;
      then c1 = x1.r by A49,TARSKI:def 1;
      hence thesis by A36,A51;
    end;
  end;
  consider L2 being Segre-like non trivial-yielding ManySortedSubset of
  Carrier A such that
A52: B2 = product L2 and
  L2.indx(L2) = [#](A.indx(L2)) by PENCIL_2:def 2;
  assume
A53: for b1,b2 being Segre-like non trivial-yielding ManySortedSubset of
  Carrier A st B1 = product b1 & B2 = product b2 holds indx(b1)=indx(b2) & ex r
being Element of I st r<>indx(b1) & (for i being Element of I st i<>r holds b1.
  i=b2.i) & for c1,c2 being Point of A.r st b1.r={c1} & b2.r={c2} holds c1,c2
  are_collinear;
  then consider r being Element of I such that
A54: r<>indx(L1) and
A55: for i being Element of I st i<>r holds L1.i=L2.i and
A56: for c1,c2 being Point of A.r st L1.r={c1} & L2.r={c2} holds c1,c2
  are_collinear by A1,A52;
  indx(L1)=indx(L2) by A53,A1,A52;
  then L2.r is 1-element by A54,PENCIL_1:12;
  then consider c2 being object such that
A57: L2.r = {c2} by ZFMISC_1:131;
  L2 c= Carrier A by PBOOLE:def 18;
  then L2.r c= (Carrier A).r;
  then {c2} c= [#](A.r) by A57,Th7;
  then reconsider c2 as Point of A.r by ZFMISC_1:31;
  L1.r is 1-element by A54,PENCIL_1:12;
  then consider c1 being object such that
A58: L1.r = {c1} by ZFMISC_1:131;
  L1 c= Carrier A by PBOOLE:def 18;
  then L1.r c= (Carrier A).r;
  then {c1} c= [#](A.r) by A58,Th7;
  then reconsider c1 as Point of A.r by ZFMISC_1:31;
A59: now
    assume
A60: c1=c2;
A61: now
      let s be object;
      assume s in dom L1;
      then reconsider s1=s as Element of I;
      per cases;
      suppose
        s1=r;
        hence L1.s=L2.s by A58,A57,A60;
      end;
      suppose
        s1<>r;
        hence L1.s=L2.s by A55;
      end;
    end;
    dom L1 = I by PARTFUN1:def 2
      .= dom L2 by PARTFUN1:def 2;
    then L1=L2 by A61;
    then B1 /\ B1 = {} by A2,A1,A52;
    hence contradiction by A1;
  end;
  c1,c2 are_collinear by A56,A58,A57;
  then consider bb being Block of A.r such that
A62: {c1,c2} c= bb by A59,PENCIL_1:def 1;
  let x being Point of Segre_Product A;
  reconsider x1=x as Element of Carrier A by Th6;
  reconsider y=x1+*(r,c2) as Point of Segre_Product A by PENCIL_1:25;
  reconsider y1=y as ManySortedSet of I;
  assume x in B1;
  then
A63: ex x2 being Function st x2=x & dom x2=dom L1 &
for o being object st o in
  dom L1 holds x2.o in L1.o by A1,CARD_3:def 5;
A64: now
    let a be object;
    assume a in dom L2;
    then reconsider a1=a as Element of I;
    per cases;
    suppose
A65:  a1=r;
      dom x1 = I by PARTFUN1:def 2;
      then y1.a = c2 by A65,FUNCT_7:31;
      hence y1.a in L2.a by A57,A65,TARSKI:def 1;
    end;
    suppose
A66:  a1<>r;
      then dom x1 = I & y1.a1 = x1.a1 by FUNCT_7:32,PARTFUN1:def 2;
      then y1.a1 in L1.a1 by A63;
      hence y1.a in L2.a by A55,A66;
    end;
  end;
  take y;
  dom y1 = I by PARTFUN1:def 2
    .= dom L2 by PARTFUN1:def 2;
  hence y in B2 by A52,A64,CARD_3:def 5;
  reconsider B=product({x1}+*(r,bb)) as Block of Segre_Product A by Th16;
A67: now
    let s be object;
    assume s in dom y1;
    then
A68: s in I;
    then
A69: s in dom {x1} & s in dom x1 by PARTFUN1:def 2;
    per cases;
    suppose
      s=r;
      then y1.s = c2 & bb = ({x1}+*(r,bb)).s by A69,FUNCT_7:31;
      hence y1.s in ({x1}+*(r,bb)).s by A62,ZFMISC_1:32;
    end;
    suppose
A70:  s<>r;
      then {x1}.s = ({x1}+*(r,bb)).s by FUNCT_7:32;
      then
A71:  {x1.s} = ({x1}+*(r,bb)).s by A68,PZFMISC1:def 1;
      y1.s = x1.s by A70,FUNCT_7:32;
      hence y1.s in ({x1}+*(r,bb)).s by A71,TARSKI:def 1;
    end;
  end;
  dom y1 = I by PARTFUN1:def 2
    .= dom({x1}+*(r,bb)) by PARTFUN1:def 2;
  then
A72: y in B by A67,CARD_3:def 5;
A73: now
    let s be object;
    assume
A74: s in dom x1;
    then
A75: s in I;
    then
A76: s in dom {x1} by PARTFUN1:def 2;
    per cases;
    suppose
A77:  s=r;
      x1.s in L1.s by A63,A74;
      then
A78:  x1.s = c1 by A58,A77,TARSKI:def 1;
      bb = ({x1}+*(r,bb)).s by A76,A77,FUNCT_7:31;
      hence x1.s in ({x1}+*(r,bb)).s by A62,A78,ZFMISC_1:32;
    end;
    suppose
      s<>r;
      then {x1}.s = ({x1}+*(r,bb)).s by FUNCT_7:32;
      then {x1.s} = ({x1}+*(r,bb)).s by A75,PZFMISC1:def 1;
      hence x1.s in ({x1}+*(r,bb)).s by TARSKI:def 1;
    end;
  end;
  dom x1 = I by PARTFUN1:def 2
    .= dom ({x1}+*(r,bb)) by PARTFUN1:def 2;
  then x in B by A73,CARD_3:def 5;
  then {x,y} c= B by A72,ZFMISC_1:32;
  hence thesis by PENCIL_1:def 1;
end;
