Abbreviation: OMLat
An \emph{orthomodular lattice} is an ortholattice $\mathbf{L}=\langle L,\vee,0,\wedge,1,'\rangle$ such that
the orthomodular law holds: $x\le y \implies x\vee(x'\wedge y)=y$.
This law is equivalent to satisfying the identity $x\vee(x'\wedge (x\vee y))=x\vee y$.
Let $\mathbf{L}$ and $\mathbf{M}$ be orthomodular lattices. A morphism from $\mathbf{L}$ to $\mathbf{M}$ is a function $h:L\rightarrow M$ that is a homomorphism:
$h(x\vee y)=h(x)\vee h(y)$, $h(x\wedge y)=h(x)\wedge h(y)$, $h(x')=h(x)'$
Example 1: The closed subspaces of (countably dimensional) Hilbert Space form an orthomodular lattice that is not modular (for finite dimensional vector spaces all subspaces are closed, hence the lattice of closed subspaces is modular).
Example 2: The smallest nonmodular orthomodular lattice has 10 elements and is isomorphic to a parallel sum of a 4-element Boolean algebra and an 8-element Boolean algebra. A failure of the modular law $x\vee(y\wedge(x\vee z))=(x\vee y)\wedge(x\vee z)$ occurs when $x$, $z$ are atoms of the 8-element algebra and $y$ is an atom of the 4-element algebra.
<script>
function initcanvas(id,u,lflag,r){
c=document.getElementById(id).getContext('2d');c.translate(10,-10);
unit=u; radius=r?r:6;
labelnode=lflag;
labelcolor="black";
nodes=new Array;
}
function node(x,y,t,r,nodecolor){
nodes[t]=[];nodes[t][0]=x;nodes[t][1]=y;if(r==undefined)r=radius;nodes[t][2]=r;
if(nodecolor==undefined)nodecolor="black";nodes[t][3]=nodecolor;
}
function edge(i,j,edgecolor){
if(edgecolor==undefined)edgecolor="black";nodecolor=nodes[i][3];
x=nodes[i][0];y=nodes[i][1];z=nodes[j][0];w=nodes[j][1];r=nodes[i][2];
c.strokeStyle=edgecolor;c.beginPath();c.moveTo(unit*x,c.canvas.height-unit*y);c.lineTo(unit*z,c.canvas.height-unit*w);c.stroke();
c.strokeStyle=nodecolor;c.fillStyle="white";c.beginPath();c.arc(unit*x,c.canvas.height-unit*y,r,0,6.3,true);c.fill();c.stroke();
if(labelnode){c.fillStyle=nodecolor=="white"?labelcolor:nodecolor;c.fillText(i,unit*x-2.7,c.canvas.height-unit*y+3.5);}
}
function edges(lst,edgecolor){for (i=0;i<lst.length-1;i++) edge(lst[i],lst[i+1],edgecolor);edge(lst[i],lst[i],edgecolor);}
</script>
<canvas id="oml" width="140" height="110"></canvas>
<script>
initcanvas("oml",30,false,4);
node(2,3,"7");
node(0,2,"4");node(1,2,"5");node(2,2,"6");node(3,1.5,"8");node(4,1.5,"9");
node(0,1,"1");node(1,1,"2");node(2,1,"3");
node(2,0,"0");
edges([0,1,6,7,4,3,0,2,4]);
edges([1,5,7]);
edges([5,3]);edges([2,6]);
edges([0,8,7,9,0]);
</script>
$\begin{array}{lr}
f(1)= &1
f(2)= &1
f(3)= &0
f(4)= &1
f(5)= &0
f(6)= &1
f(7)= &0
f(8)= &2
\end{array}$
Many Greechie diagrams of orthomodular lattices with blocks containing 3 atoms have been computed at http://cs.anu.edu.au/~Brendan.McKay/nauty/greechie.html