
theorem Th2:
  for L being Lattice for a being Element of L for b,c being
  Element of L st b <> c holds ( b is-upper-neighbour-of a & c
is-upper-neighbour-of a implies a = c "/\" b) & ( b is-lower-neighbour-of a & c
  is-lower-neighbour-of a implies a = c "\/" b)
proof
  let L be Lattice;
  let a be Element of L;
  let b,c be Element of L;
  assume
A1: b <> c;
A2: now
    assume that
A3: b is-lower-neighbour-of a and
A4: c is-lower-neighbour-of a;
A5: b [= a by A3;
A6: c [= a by A4;
A7: not b "\/" c = c
    proof
      assume b "\/" c = c;
      then b [= c by LATTICES:def 3;
      then c = a or c = b by A3,A6;
      hence contradiction by A1,A4;
    end;
    a = a "\/" a
      .= (b "\/" a) "\/" a by A5,LATTICES:def 3
      .= (b "\/" a) "\/" (c "\/" a) by A6,LATTICES:def 3
      .= b "\/" (a "\/" (a "\/" c)) by LATTICES:def 5
      .= b "\/" ((a "\/" a) "\/" c) by LATTICES:def 5
      .= b "\/" (a "\/" c)
      .= (b "\/" c) "\/" a by LATTICES:def 5;
    then
A8: b "\/" c [= a by LATTICES:def 3;
    c [= b "\/" c by LATTICES:5;
    hence b "\/" c = a by A4,A8,A7;
  end;
  now
    assume that
A9: b is-upper-neighbour-of a and
A10: c is-upper-neighbour-of a;
A11: a [= b by A9;
A12: a [= c by A10;
A13: not b "/\" c = c
    proof
      assume b "/\" c = c;
      then c [= b by LATTICES:4;
      then c = a or c = b by A9,A12;
      hence contradiction by A1,A10;
    end;
    a = a "/\" a
      .= (b "/\" a) "/\" a by A11,LATTICES:4
      .= (b "/\" a) "/\" (c "/\" a) by A12,LATTICES:4
      .= b "/\" (a "/\" (c "/\" a)) by LATTICES:def 7
      .= b "/\" ((a "/\" a) "/\" c) by LATTICES:def 7
      .= b "/\" (a "/\" c)
      .= (b "/\" c) "/\" a by LATTICES:def 7;
    then
A14: a [= b "/\" c by LATTICES:4;
    b "/\" c [= c by LATTICES:6;
    hence b "/\" c = a by A10,A14,A13;
  end;
  hence thesis by A2;
end;
