
theorem Th16:
  for C being FormalContext for A1,A2 being Subset of the carrier'
of C holds (AttributeDerivation(C)).(A1 \/ A2) = ((AttributeDerivation(C)).A1)
  /\ ((AttributeDerivation(C)).A2)
proof
  let C be FormalContext;
  let A1,A2 be Subset of the carrier' of C;
  reconsider A9 = A1 \/ A2 as Subset of the carrier' of C;
A1: for x being object holds x in (AttributeDerivation(C)).A1 /\ (
  AttributeDerivation(C)).A2 implies x in (AttributeDerivation(C)).A9
  proof
    let x be object;
    assume
A2: x in (AttributeDerivation(C)).A1 /\ (AttributeDerivation(C)).A2;
    then x in (AttributeDerivation(C)).A1 by XBOOLE_0:def 4;
    then x in {o where o is Object of C : for a being Attribute of C st a in
    A1 holds o is-connected-with a} by Def3;
    then
A3: ex x1 being Object of C st x1 = x & for a being Attribute of C st a in
    A1 holds x1 is-connected-with a;
    x in (AttributeDerivation(C)).A2 by A2,XBOOLE_0:def 4;
    then x in {o where o is Object of C : for a being Attribute of C st a in
    A2 holds o is-connected-with a} by Def3;
    then
A4: ex x2 being Object of C st x2 = x & for a being Attribute of C st a in
    A2 holds x2 is-connected-with a;
    then reconsider x as Object of C;
    for a being Attribute of C st a in A1 \/ A2 holds x is-connected-with a
    proof
      let a be Attribute of C;
      assume
A5:   a in (A1 \/ A2);
      now
        per cases by A5,XBOOLE_0:def 3;
        case
          a in A1;
          hence thesis by A3;
        end;
        case
          a in A2;
          hence thesis by A4;
        end;
      end;
      hence thesis;
    end;
    then x in {o where o is Object of C : for a being Attribute of C st a in
    A9 holds o is-connected-with a};
    hence thesis by Def3;
  end;
  for x being object holds x in (AttributeDerivation(C)).(A1 \/ A2) implies x
  in (AttributeDerivation(C)).A1 /\ (AttributeDerivation(C)).A2
  proof
    let x be object;
    assume x in (AttributeDerivation(C)).(A1 \/ A2);
    then
    x in {o where o is Object of C : for a being Attribute of C st a in A9
    holds o is-connected-with a} by Def3;
    then
A6: ex x9 being Object of C st x9 = x & for a being Attribute of C st a in
    A9 holds x9 is-connected-with a;
    then reconsider x as Object of C;
    for a being Attribute of C st a in A2 holds x is-connected-with a
    proof
      let a be Attribute of C;
      assume a in A2;
      then a in A9 by XBOOLE_0:def 3;
      hence thesis by A6;
    end;
    then x in {o where o is Object of C : for a being Attribute of C st a in
    A2 holds o is-connected-with a};
    then
A7: x in (AttributeDerivation(C)).A2 by Def3;
    for a being Attribute of C st a in A1 holds x is-connected-with a
    proof
      let a be Attribute of C;
      assume a in A1;
      then a in A9 by XBOOLE_0:def 3;
      hence thesis by A6;
    end;
    then
    x in {o where o is Object of C : for a being Attribute of C st a in A1
    holds o is-connected-with a};
    then x in (AttributeDerivation(C)).A1 by Def3;
    hence thesis by A7,XBOOLE_0:def 4;
  end;
  hence thesis by A1,TARSKI:2;
end;
