
theorem Th42:
  for C being FormalContext holds ConceptLattice(C) is Lattice
proof
  let C be FormalContext;
  set L = LattStr(#B-carrier(C),B-join(C),B-meet(C)#);
  reconsider L as strict non empty LattStr;
A1: for a,b,c being Element of L holds a"\/"(b"\/"c) = (a"\/"b) "\/"c
  proof
    let a,b,c be Element of L;
    reconsider b,c as Element of B-carrier(C);
    reconsider d = (B-join(C)).(b,c) as Element of L;
    reconsider b,c as Element of L;
    reconsider a,b as Element of B-carrier(C);
    reconsider e = (B-join(C)).(a,b) as Element of L;
    reconsider a,b as Element of L;
A2: a"\/"(b"\/"c) = a"\/"d by LATTICES:def 1
      .= (B-join(C)).(a,(B-join(C)).(b,c)) by LATTICES:def 1;
A3: (a"\/"b)"\/"c = e"\/"c by LATTICES:def 1
      .= (B-join(C)).((B-join(C)).(a,b),c) by LATTICES:def 1;
    reconsider a,b,c as strict FormalConcept of C by Th31;
    (B-join(C)).(a,(B-join(C)).(b,c)) = (B-join(C)).((B-join(C)).(a,b),c)
    by Th35;
    hence thesis by A2,A3;
  end;
A4: for a,b being Element of L holds (a"/\"b)"\/"b = b
  proof
    let a,b be Element of L;
    reconsider a,b as Element of B-carrier(C);
    reconsider d = (B-meet(C)).(a,b) as Element of L;
    reconsider a,b as Element of L;
A5: (a"/\"b)"\/"b = d"\/"b by LATTICES:def 2
      .= (B-join(C)).((B-meet(C)).(a,b),b) by LATTICES:def 1;
    reconsider a,b as strict FormalConcept of C by Th31;
    (B-join(C)).((B-meet(C)).(a,b),b) = b by Th36;
    hence thesis by A5;
  end;
A6: for a,b,c being Element of L holds a"/\"(b"/\"c) = (a"/\" b)"/\"c
  proof
    let a,b,c be Element of L;
    reconsider b,c as Element of B-carrier(C);
    reconsider d = (B-meet(C)).(b,c) as Element of L;
    reconsider b,c as Element of L;
A7: a"/\"(b"/\"c) = a"/\"d by LATTICES:def 2
      .= (B-meet(C)).(a,(B-meet(C)).(b,c)) by LATTICES:def 2;
    reconsider a,b as Element of B-carrier(C);
    reconsider e = (B-meet(C)).(a,b) as Element of L;
    reconsider a,b as Element of L;
A8: (a"/\"b)"/\"c = e"/\"c by LATTICES:def 2
      .= (B-meet(C)).((B-meet(C)).(a,b),c) by LATTICES:def 2;
    reconsider a,b,c as strict FormalConcept of C by Th31;
    (B-meet(C)).(a,(B-meet(C)).(b,c)) = (B-meet(C)).((B-meet(C)).(a,b),c)
    by Th34;
    hence thesis by A7,A8;
  end;
A9: for a,b being Element of L holds a"/\"b = b"/\"a
  proof
    let a,b be Element of L;
A10: b"/\"a = (B-meet(C)).(b,a) by LATTICES:def 2;
    reconsider a,b as strict FormalConcept of C by Th31;
    (B-meet(C)).(a,b) = (B-meet(C)).(b,a) by Th32;
    hence thesis by A10,LATTICES:def 2;
  end;
A11: for a,b being Element of L holds a"/\"(a"\/"b)=a
  proof
    let a,b be Element of L;
    reconsider a,b as Element of B-carrier(C);
    reconsider d = (B-join(C)).(a,b) as Element of L;
    reconsider a,b as Element of L;
A12: a"/\"(a"\/"b) = a"/\"d by LATTICES:def 1
      .= (B-meet(C)).(a,(B-join(C)).(a,b)) by LATTICES:def 2;
    reconsider a,b as strict FormalConcept of C by Th31;
    (B-meet(C)).(a,(B-join(C)).(a,b)) = a by Th37;
    hence thesis by A12;
  end;
  for a,b being Element of L holds a"\/"b = b"\/"a
  proof
    let a,b be Element of L;
A13: b"\/"a = (B-join(C)).(b,a) by LATTICES:def 1;
    reconsider a,b as strict FormalConcept of C by Th31;
    (B-join(C)).(a,b) = (B-join(C)).(b,a) by Th33;
    hence thesis by A13,LATTICES:def 1;
  end;
  then L is join-commutative join-associative meet-absorbing meet-commutative
  meet-associative join-absorbing by A1,A4,A9,A6,A11,LATTICES:def 4,def 5,def 6
,def 7,def 8,def 9;
  hence thesis;
end;
