\newcommand{\definitionBody}[2]{\hypertarget{glossary:#1}{#2}}
\newcommand{\definitionLink}[2]{\hyperlink{glossary:#1}{#2}\xspace}
\newcommand{\Definition}[1]{\definitionLink{#1}{Definition~\ref{definition:#1}}}
\NewEnviron{definitionOf}[1]{
    \begin{definition}\label{definition:#1}
        \definitionBody{#1}{\BODY}
    \end{definition}
}
\NewEnviron{propositionOf}[1]{
    \begin{proposition}\label{proposition:#1}
        \BODY
    \end{proposition}
}
\newcommand{\Proposition}[1]{\hyperref[proposition:#1]{Proposition~\ref{proposition:#1}}}



\newcommand{\LeastFixpoint}{\definitionLink{leastfixpoint}{least fixpoint}}
\newcommand{\ConsistentPair}{\definitionLink{consistentpair}{consistent}}
\newcommand{\Monotone}{\definitionLink{monotone}{monotone}}
\newcommand{\Exact}{\definitionLink{deterministicexactapproximator}{exact}}
\newcommand{\Symmetric}{\definitionLink{deterministicsymmetricapproximator}{symmetric}}
\newcommand{\Symmetry}{\definitionLink{deterministicsymmetricapproximator}{symmetry}}
\newcommand{\BetaApproximator}{\definitionLink{deterministicbetaapproximator}{$\beta$-approximator}}
\newcommand{\BetaStableRevisionOperator}{\definitionLink{deterministicbetastablerevisionoperator}{$\beta$-stable revision operator}}
\newcommand{\BetaApproximators}{\definitionLink{deterministicbetaapproximator}{$\beta$-approximators}}
\newcommand{\Approximator}{\definitionLink{deterministicapproximator}{approximator}}
\newcommand{\Approximators}{\definitionLink{deterministicapproximator}{approximators}}
\newcommand{\AnApproximator}{\definitionLink{deterministicapproximator}{an approximator}}

\let\SdetNoLink\Sdet
\renewcommand{\Sdet}{\definitionLink{deterministicstablerevisionoperator}{\SdetNoLink}}
\let\SdetbetaNoLink\Sdetbeta
\renewcommand{\Sdetbeta}{\definitionLink{deterministicbetastablerevisionoperator}{\SdetbetaNoLink}}

\newcommand{\Image}{\definitionLink{image}{monotone}}
\let\imageNoLink\image{}
\renewcommand{\image}[1]{\imageNoLink{#1}}
\let\lubNoLink\lub{}
\renewcommand{\lub}{\definitionLink{lubglb}{\lubNoLink}}
\let\glbNoLink\glb{}
\renewcommand{\glb}{\definitionLink{lubglb}{\glbNoLink}}
\newcommand{\CompleteLattice}{\definitionLink{completelattice}{complete lattice}}
\let\LLNoLink\LL{}
\renewcommand{\LL}{\definitionLink{completelattice}{\LLNoLink}}

\let\topNoLink\top{}
\renewcommand{\top}{\definitionLink{topbot}{\topNoLink}}
\let\botNoLink\bot{}
\renewcommand{\bot}{\definitionLink{topbot}{\botNoLink}}

\let\fixpointsOfNoLink\fixpointsOf{}
\renewcommand{\fixpointsOf}{\definitionLink{fixpointsOf}{\fixpointsOfNoLink}}

\let\powersetNoLink\powerset{}
\renewcommand{\powerset}{\definitionLink{powerset}{\powersetNoLink}}
\let\powersetONoLink\powersetO{}
\renewcommand{\powersetO}{\definitionLink{powerset}{\powersetONoLink}}

\newcommand{\Preorder}{\definitionLink{preorder}{preorder}}
\newcommand{\Antisymmetry}{\definitionLink{antisymmetry}{antisymmetry}}
\newcommand{\Poset}{\definitionLink{poset}{poset}}
\newcommand{\ChainCompletePoset}{\definitionLink{chaincompleteposet}{chain-complete poset}}
\newcommand{\ChainCompletePosets}{\definitionLink{chaincompleteposet}{chain-complete posets}}
\newcommand{\AChainCompletePoset}{\definitionLink{chaincompleteposet}{a chain-complete poset}}
\let\lteNoLink\lte{}
\renewcommand{\lte}{\definitionLink{poset}{\lteNoLink}}
\let\lteSubNoLink\lteSub{}
\renewcommand{\lteSub}[1]{\definitionLink{poset}{\lteSubNoLink{#1}}}

\let\gteNoLink\gte{}
\renewcommand{\gte}{\definitionLink{poset}{\gteNoLink}}
\let\gteSubNoLink\gteSub{}
\renewcommand{\gteSub}[1]{\definitionLink{poset}{\gteSubNoLink{#1}}}


\newcommand{\Ndao}{\definitionLink{ndao}{ndao}}
\newcommand{\AnNdao}{an \definitionLink{ndao}{ndao}}
\newcommand{\AnNdaoO}{An \definitionLink{ndao}{ndao}}
\newcommand{\Interpretation}{\definitionLink{interpretation}{interpretation}}

\newcommand{\Prefixpoint}{\definitionLink{prefixpoint}{prefixpoint}}

\newcommand{\minLattice}{\bm{min}}
\newcommand{\maxLattice}{\bm{max}}

\newcommand{\Chain}{\definitionLink{chain}{chain}}
