
theorem Th15:
  for X be set for Y be finite Subset-Family of X holds union Components(Y) = X
proof
  let X be set;
  let Y be finite Subset-Family of X;
  X c= union Components(Y)
  proof
    deffunc F(set) = FALSE;
    deffunc T(set) = TRUE;
    let z be object;
    consider p be FinSequence of bool X such that
    len p = card Y and
    rng p = Y and
A1: Components(Y) = { Intersect (rng MergeSequence(p,q)) where q is
    FinSequence of BOOLEAN : len q = len p } by Def2;
    defpred C[set] means z in p.$1;
A2: for i be Nat st i in Seg len p holds (C[i] implies T(i) in BOOLEAN) &
    (not C[i] implies F(i) in BOOLEAN);
    consider q be FinSequence of BOOLEAN such that
A3: len q = len p and
A4: for i be Nat st i in Seg len p holds (C[i] implies q.i = T(i)) & (
    not C[i] implies q.i = F(i)) from SeqLambda1C(A2);
    assume
A5: z in X;
    now
      let Z be set;
      assume Z in rng MergeSequence(p,q);
      then consider i be Nat such that
A6:   i in dom MergeSequence(p,q) and
A7:   MergeSequence(p,q).i = Z by FINSEQ_2:10;
A8:   dom MergeSequence(p,q) = dom p by Th1;
      then
A9:   dom MergeSequence(p,q) = Seg len p by FINSEQ_1:def 3;
      now
        per cases;
        suppose
A10:      z in p.i;
          then q.i = TRUE by A4,A6,A9;
          hence z in Z by A7,A10,Th2;
        end;
        suppose
A11:      not z in p.i;
          then q.i = FALSE by A4,A6,A9;
          then MergeSequence(p,q).i = X\p.i by A6,A8,Th3;
          hence z in Z by A5,A7,A11,XBOOLE_0:def 5;
        end;
      end;
      hence z in Z;
    end;
    then
A12: z in Intersect (rng MergeSequence(p,q)) by A5,SETFAM_1:43;
    Intersect (rng MergeSequence(p,q)) in Components(Y) by A1,A3;
    hence thesis by A12,TARSKI:def 4;
  end;
  hence thesis;
end;
