\newcommand{\opE}[2]{{#1}: $\rightarrow$ {#2}}
\newcommand{\opI}[3]{{#1}: {#2}$\rightarrow$ {#3}}
\newcommand{\opII}[4]{{#1}: {#2}$\times${#3}$\rightarrow$ {#4}}
\newcommand{\opIII}[5]{{#1}: {#2}$\times${#3}$\times${#4}$\rightarrow$ {#5}}
\newcommand{\opIV}[6]{{#1}: {#2}$\times${#3}$\times${#4}$\times${#5}$\rightarrow$ {#6}}
\newcommand{\emptyL}{{[$\;\;$]}}



\newenvironment{spec}[1]
{\noindent
{\bf spec }
{#1}
\begin{list}{\labelwidth0.6cm \parsep0ex \partopsep0ex \itemsep0ex  \labelsep2ex \topsep0cm  \parskip0ex\leftmargin0.5cm }}       
{\end{list}
\noindent
{\bf endspec}}


\newenvironment{vars}
{
{\bf vars }
\begin{list}{\labelwidth0.6cm \parsep0ex \itemsep0ex  \labelsep0ex \topsep0cm \leftmargin0.5cm }}       
{\end{list}}

\newenvironment{opns}
{
{\bf opns }
\begin{list}{\labelwidth0.6cm \parsep0ex \itemsep0ex  \labelsep0ex \topsep0cm \leftmargin0.5cm }}       
{\end{list}}

\newenvironment{hopns}
{
{\bf hidden opns }
\begin{list}{\labelwidth0.6cm \parsep0ex \itemsep0ex  \labelsep0ex \topsep0cm \leftmargin0.5cm }}       
{\end{list}}

\newenvironment{axioms}
{
{\bf axioms }
\begin{list}{\labelwidth1cm \parsep0ex \itemsep0ex  \labelsep0ex \topsep0cm \leftmargin0.5cm }}       
{\end{list}}





