reserve L for Ortholattice,
  a, b, c for Element of L;
reserve L for join-Associative meet-Absorbing de_Morgan orthomodular
  Lattice-like non empty OrthoLattStr;
reserve v0,v1,v2,v64,v65 for Element of L;

theorem
  for L being non empty OrthoLattStr holds L is Orthomodular_Lattice iff
  L is join-Associative meet-Absorbing de_Morgan Orthomodular
proof
  let L be non empty OrthoLattStr;
  thus L is Orthomodular_Lattice implies L is join-Associative meet-Absorbing
  de_Morgan Orthomodular;
  assume
A1: L is join-Associative;
  assume
A2: L is meet-Absorbing;
  assume
A3: L is de_Morgan;
A4: for x,y being Element of L holds x = x "\/" (x` "\/" y`)`
  proof
    let x,y be Element of L;
    thus x = x "\/" (x "/\" y) by A2
      .= x "\/" (x` "\/" y`)` by A3;
  end;
A5: for x being Element of L holds x = x "\/" x``
  proof
    let x be Element of L;
    thus x = x "\/" (x` "\/" (x`` "\/" x``)`)` by A4
      .= x "\/" (x` "\/" (x` "/\" x`))` by A3
      .= x "\/" x`` by A2;
  end;
  assume
A6: L is Orthomodular;
A7: for x,y being Element of L holds x "\/" y = x "\/"(x``"\/" (x "\/" y)`)`
  proof
    let x,y be Element of L;
    thus x "\/" y = x "\/" (x` "/\" (x "\/" y)) by A6
      .= x "\/" (x`` "\/" (x "\/" y)`)` by A3;
  end;
A8: for x,y being Element of L holds x "\/" (x` "\/" y)` = x
  proof
    let x,y be Element of L;
    thus x "\/" (x` "\/" y)` = x "\/" (x` "\/" (x``` "\/" (x` "\/" y)`)`)` by
A7
      .= x by A4;
  end;
A9: for x,y being Element of L holds x "\/" (y "\/" x``) = y "\/" x
  proof
    let x,y be Element of L;
    y "\/" x = y "\/" (x "\/" x``) by A5;
    hence thesis by A1;
  end;
A10: for x,y being Element of L holds x "\/" (y "\/" x`)` = x
  proof
    let x,y be Element of L;
    thus x "\/" (y "\/" x`)` = x "\/" (x` "\/" (y "\/" x```))` by A9
      .= x by A8;
  end;
A11: for x being Element of L holds x` "\/" x` = x`
  proof
    let x be Element of L;
    thus x` = x` "\/" (x "\/" x``)` by A10
      .= x` "\/" x` by A5;
  end;
A12: for x being Element of L holds x`` "\/" x = x
  proof
    let x be Element of L;
    x`` "\/" x = x "\/" (x`` "\/" x``) by A9
      .= x "\/" x`` by A11;
    hence thesis by A5;
  end;
A13: for x being Element of L holds x```` "\/" x = x
  proof
    let x be Element of L;
    x```` "\/" x = x "\/" (x```` "\/" x``) by A9
      .= x "\/" x`` by A12;
    hence thesis by A5;
  end;
A14: for x being Element of L holds x``` = x`
  proof
    let x be Element of L;
    x``` = x``` "\/" (x```` "\/" x)` by A8
      .= x``` "\/" x` by A13;
    hence thesis by A12;
  end;
A15: for x,y being Element of L holds x`` "\/" (y "\/" x`)` = x``
  proof
    let x,y be Element of L;
    x`` = x`` "\/" (y "\/" x```)` by A10;
    hence thesis by A14;
  end;
A16: for x being Element of L holds x`` "\/" (x`` "\/" x`)` = x
  proof
    let x be Element of L;
    x = x```` "\/" x by A13
      .= x```` "\/" (x`````` "\/" (x```` "\/" x)`)` by A7
      .= x```` "\/" (x`````` "\/" x`)` by A13
      .= x`` "\/" (x`````` "\/" x`)` by A14
      .= x`` "\/" (x```` "\/" x`)` by A14;
    hence thesis by A14;
  end;
A17: for x being Element of L holds x`` = x
  proof
    let x be Element of L;
    thus x = x`` "\/" (x`` "\/" x`)` by A16
      .= x`` by A15;
  end;
A18: L is join-absorbing
  proof
    let a,b be Element of L;
    a "/\" (a "\/" b) = (a` "\/" (a "\/" b)`)` by A3
      .= (a` "\/" (a`` "\/" b)`)` by A17
      .= a`` by A8
      .= a by A17;
    hence thesis;
  end;
  L is meet-Associative
  proof
    let a,b,c be Element of L;
    thus a "/\" (b "/\" c) = a "/\" (b` "\/" c`)` by A3
      .= (a` "\/" (b` "\/" c`)``)` by A3
      .= (a` "\/" (b` "\/" c`))` by A17
      .= (b` "\/" (a` "\/" c`))` by A1
      .= (b` "\/" (a` "\/" c`)``)` by A17
      .= (b` "\/" (a "/\" c)`)` by A3
      .= b "/\" (a "/\" c) by A3;
  end;
  then reconsider L9 = L as Lattice-like non empty OrthoLattStr by A1,A2,A18;
  reconsider L9 as join-Associative meet-Absorbing de_Morgan Orthomodular
  Lattice-like non empty OrthoLattStr by A3,A6;
  L9 is with_Top;
  hence thesis by A17,ROBBINS3:def 6;
end;
