
theorem Th7:
  for I being non empty set, M being ManySortedSet of I, x being
Element of Bool M, i being Element of I for y being set st y in x.i ex a being
Element of Bool M st y in a.i & a is finite-yielding & support a is finite &
a c= x
proof
  let I be non empty set, M be ManySortedSet of I, x be Element of Bool M, i
  be Element of I;
  let y be set such that
A1: y in x.i;
  set N = {i} --> {y};
  set A = EmptyMS I +* N;
A2: dom N = {i} by FUNCOP_1:13;
  then
A3: i in dom N by TARSKI:def 1;
  then
A4: N.i = {y} by A2,FUNCOP_1:7;
  then
A5: A.i = {y} by A3,FUNCT_4:13;
A6: dom A = dom EmptyMS I \/ dom N by FUNCT_4:def 1
    .= I \/ {i} by A2,PARTFUN1:def 2
    .= I by ZFMISC_1:40;
  then reconsider A as ManySortedSet of I by PARTFUN1:def 2,RELAT_1:def 18;
  for j be object st j in I holds A.j c= M.j
  proof
    let j be object such that
A7: j in I;
    per cases;
    suppose
A8:   i = j;
      reconsider x as ManySortedSubset of M;
      let v be object;
      assume v in A.j;
      then v in {y} by A3,A4,A8,FUNCT_4:13;
      then
A9:   v in x.j by A1,A8,TARSKI:def 1;
      x c= M by PBOOLE:def 18;
      then x.j c= M.j by A7;
      hence thesis by A9;
    end;
    suppose
      i <> j;
      then
A10:  not j in {i} by TARSKI:def 1;
      j in dom EmptyMS I \/ dom N by A6,A7,FUNCT_4:def 1;
      then A.j = (I --> {}).j by A2,A10,FUNCT_4:def 1
        .= {} by A7,FUNCOP_1:7;
      hence thesis;
    end;
  end;
  then A c= M;
  then reconsider AA = A as ManySortedSubset of M by PBOOLE:def 18;
  reconsider a = AA as Element of Bool M by CLOSURE2:def 1;
A11: for j be object st j in I holds a.j c= x.j
  proof
    let j be object such that
A12: j in I;
    per cases;
    suppose
A13:  i = j;
      let v be object;
      assume
A14:  v in a.j;
      a.j = {y} by A3,A4,A13,FUNCT_4:13;
      hence thesis by A1,A13,A14,TARSKI:def 1;
    end;
    suppose
      j <> i;
      then
A15:  not j in {i} by TARSKI:def 1;
      j in dom EmptyMS I \/ dom N by A6,A12,FUNCT_4:def 1;
      then a.j = (I --> {}).j by A2,A15,FUNCT_4:def 1
        .= {} by A12,FUNCOP_1:7;
      hence thesis;
    end;
  end;
A16: { b where b is Element of I : a.b <> {}} = {i}
  proof
    thus { b where b is Element of I : a.b <> {}} c= {i}
    proof
      let s be object;
      assume s in { b where b is Element of I : a.b <> {}};
      then
A17:  ex b be Element of I st s = b & a.b <> {};
      assume
A18:  not s in {i};
      reconsider s as Element of I by A17;
      s in dom a by A6;
      then s in dom EmptyMS I \/ dom N by FUNCT_4:def 1;
      then a.s = (I --> {}).s by A2,A18,FUNCT_4:def 1
        .= {} by FUNCOP_1:7;
      hence contradiction by A17;
    end;
    let s be object;
    assume
A19: s in {i};
    then
A20: s = i by TARSKI:def 1;
    reconsider s as Element of I by A19,TARSKI:def 1;
    a.s = {y} by A3,A4,A20,FUNCT_4:13;
    hence thesis;
  end;
  take a;
  for j be object st j in I holds a.j is finite
  proof
    let j be object such that
A21: j in I;
    per cases;
    suppose
      j = i;
      hence thesis by A3,A4,FUNCT_4:13;
    end;
    suppose
      j <> i;
      then
A22:  not j in {i} by TARSKI:def 1;
      j in dom EmptyMS I \/ dom N by A6,A21,FUNCT_4:def 1;
      then a.j = (I --> {}).j by A2,A22,FUNCT_4:def 1
        .= {} by A21,FUNCOP_1:7;
      hence thesis;
    end;
  end;
  hence thesis by A5,A16,A11,FINSET_1:def 5,TARSKI:def 1;
end;
