
theorem Th18:
  for I being non empty set for A being non-Empty
TopStruct-yielding ManySortedSet of I st for i being Element of I holds A.i is
identifying_close_blocks with_non_trivial_blocks & ex i being Element of I st A
  .i is non void holds Segre_Product A is identifying_close_blocks
proof
  let I be non empty set;
  let A be non-Empty TopStruct-yielding ManySortedSet of I;
  assume
A1: for i being Element of I holds A.i is identifying_close_blocks
  with_non_trivial_blocks & ex i being Element of I st A.i is non void;
  for k,l being Block of Segre_Product A st 2 c= card(k /\ l) holds k=l
  proof
    let k,l be Block of Segre_Product A;
    assume 2 c= card(k /\ l);
    then consider a,b being object such that
A2: a in k /\ l and
A3: b in k /\ l and
A4: a <> b by Th2;
    Segre_Product A is non void by A1,Th15;
    then consider B being Segre-like ManySortedSubset of Carrier A such that
A5: k = product B and
A6: ex i being Element of I st B.i is Block of A.i by Def22;
A7: b in product B by A5,A3,XBOOLE_0:def 4;
    then reconsider b as Function by CARD_3:48;
A8: dom b = dom B by A7,CARD_3:9
      .= I by PARTFUN1:def 2;
    then reconsider b as ManySortedSet of I by PARTFUN1:def 2,RELAT_1:def 18;
A9: a in product B by A5,A2,XBOOLE_0:def 4;
    consider i being Element of I such that
A10: B.i is Block of A.i by A6;
A11: for j being Element of I st j<>i holds B.j is 1-element
    proof
      let j be Element of I;
      assume
A12:  j<>i;
      consider i1 being Element of I such that
A13:  for j1 being Element of I st j1<>i1 holds B.j1 is 1-element by Def20;
      A.i is with_non_trivial_blocks by A1;
      then 2 c= card (B.i) by A10;
      then B.i is not 1-element by Th4;
      then i1 = i by A13;
      hence thesis by A12,A13;
    end;
    Segre_Product A is non void by A1,Th15;
    then consider C being Segre-like ManySortedSubset of Carrier A such that
A14: l = product C and
A15: ex i being Element of I st C.i is Block of A.i by Def22;
A16: dom C = I by PARTFUN1:def 2;
    consider j being Element of I such that
A17: C.j is Block of A.j by A15;
    reconsider a as Function by A9,CARD_3:48;
A18: dom a = dom B by A9,CARD_3:9
      .= I by PARTFUN1:def 2;
    then reconsider a as ManySortedSet of I by PARTFUN1:def 2,RELAT_1:def 18;
    consider x being object such that
A19: x in I and
A20: a.x <> b.x by A4,A18,A8,FUNCT_1:2;
    reconsider x as Element of I by A19;
    dom B = I by PARTFUN1:def 2;
    then
A21: b.x in B.x by A7,CARD_3:9;
    dom B = I by PARTFUN1:def 2;
    then
A22: a.x in B.x by A9,CARD_3:9;
    then 2 c= card (B.x) by A20,A21,Th2;
    then B.x is not 1-element by Th4;
    then
A23: x=i by A11;
    b in product C by A14,A3,XBOOLE_0:def 4;
    then
A24: b.x in C.x by A16,CARD_3:9;
A25: a in product C by A14,A2,XBOOLE_0:def 4;
A26: for i being Element of I st j<>i holds C.i is 1-element
    proof
      let i be Element of I;
      assume
A27:  j<>i;
      consider j1 being Element of I such that
A28:  for i1 being Element of I st j1<>i1 holds C.i1 is 1-element by Def20;
      A.j is with_non_trivial_blocks by A1;
      then 2 c= card (C.j) by A17;
      then C.j is not 1-element by Th4;
      then j1 = j by A28;
      hence thesis by A27,A28;
    end;
A29: dom B = I by PARTFUN1:def 2
      .= dom C by PARTFUN1:def 2;
    dom C = I by PARTFUN1:def 2;
    then
A30: a.x in C.x by A25,CARD_3:9;
    then 2 c= card (C.x) by A20,A24,Th2;
    then C.x is not 1-element by Th4;
    then
A31: x=j by A26;
    for s being object st s in dom B holds B.s c= C.s
    proof
      let s be object;
      assume
A32:  s in dom B;
      then reconsider t=s as Element of I by PARTFUN1:def 2;
      per cases;
      suppose
A33:    t=x;
        then reconsider Ct = C.t as Block of A.t by A17,A31;
        reconsider Bt = B.t as Block of A.t by A10,A23,A33;
        a.t in (Bt /\ Ct) & b.t in (Bt /\ Ct) by A22,A21,A30,A24,A33,
XBOOLE_0:def 4;
        then
A34:    2 c= card (Bt /\ Ct) by A20,A33,Th2;
        A.t is identifying_close_blocks by A1;
        hence thesis by A34;
      end;
      suppose
        s<>x;
        then B.t is 1-element by A11,A23;
        then consider y being object such that
A35:    B.t = {y} by ZFMISC_1:131;
A36:    a.t in C.t by A25,A29,A32,CARD_3:9;
        a.t in B.t by A9,A32,CARD_3:9;
        then a.t = y by A35,TARSKI:def 1;
        hence thesis by A35,A36,ZFMISC_1:31;
      end;
    end;
    hence k c= l by A5,A14,A29,CARD_3:27;
    for s being object st s in dom C holds C.s c= B.s
    proof
      let s be object;
      assume
A37:  s in dom C;
      then reconsider t=s as Element of I by PARTFUN1:def 2;
      per cases;
      suppose
A38:    t=x;
        then reconsider Ct = C.t as Block of A.t by A17,A31;
        reconsider Bt = B.t as Block of A.t by A10,A23,A38;
        a.t in (Bt /\ Ct) & b.t in (Bt /\ Ct) by A22,A21,A30,A24,A38,
XBOOLE_0:def 4;
        then
A39:    2 c= card (Bt /\ Ct) by A20,A38,Th2;
        A.t is identifying_close_blocks by A1;
        hence thesis by A39;
      end;
      suppose
        s<>x;
        then C.t is 1-element by A26,A31;
        then consider y being object such that
A40:    C.t = {y} by ZFMISC_1:131;
A41:    a.t in B.t by A9,A29,A37,CARD_3:9;
        a.t in C.t by A25,A37,CARD_3:9;
        then a.t = y by A40,TARSKI:def 1;
        hence thesis by A40,A41,ZFMISC_1:31;
      end;
    end;
    hence thesis by A5,A14,A29,CARD_3:27;
  end;
  hence thesis;
end;
