% punctuation 
\def\ll#1{\ensuremath{\thickspace{#1}\negthickspace}}
\def\lr#1{\ensuremath{\negthickspace{#1}\thickspace}}
\def\llr#1#2{\ensuremath{\ll#1#2\lr#1}}
\def\bm{\ensuremath{:}}

\def\dfn{\ensuremath{\overset{\triangle}{=}}}
% relational operators
\def\lele#1#2#3{\ensuremath{{#1}\leq{#2}\leq{#3}}}
\def\ltlt#1#2#3{\ensuremath{{#1}<{#2}<{#3}}}
\def\lelt#1#2#3{\ensuremath{{#1}\leq{#2}<{#3}}}
\def\ltle#1#2#3{\ensuremath{{#1}<{#2}\leq{#3}}}
\def\gt{\ensuremath{>}}
\def\lt{\ensuremath{<}}

% quantifier
\def\bnd#1#2#3#4{\ensuremath{{#1}{#2}\bm{#3}:{#4}}}
\def\bndE#1#2#3{\bnd{\exists}{#1}{#2}{#3}}
\def\bndA#1#2#3{\bnd{\forall}{#1}{#2}{#3}}
\def\bndsum#1#2#3{\bnd{\sum}{#1}{#2}{#3}}
\def\bndset#1#2#3{\ensuremath{\xset{#1\bm#2:#3}}}

% numbers
\def\Nat{\ensuremath{\mathbb{N}}}
\def\Int{\ensuremath{\mathbb{Z}}}

% propositional constants
\def\cand{\ensuremath{\text{\bf\mbox{ cand }}}}
\def\cor{\ensuremath{\text{\bf\mbox{ cor }}}}
\def\land{\ensuremath{\wedge}}
\def\lor{\ensuremath{\vee}}
\def\limp{\ensuremath{\Rightarrow}}
\def\lif{\ensuremath{\Leftarrow}}
\def\lequiv{\ensuremath{\equiv}}
\def\lfalse{\ensuremath{false}}
\def\ltrue{\ensuremath{true}}

\def\lrintro#1{\ensuremath{\text{\bf Introdu\cao\ de } #1}}
\def\lrelim#1{\ensuremath{\text{\bf Elimina\cao\ de }#1}}
\def\lrmp{\ensuremath{\text{\bf Modus Ponens }}}
\def\lrif{\ensuremath{\text{\bf Con\sqn }}}
\def\lrleibniz{\ensuremath{\text{\bf Leibniz}}}
\def\lrdemorgan#1{\ensuremath{\text{\bf de Morgan sobre }#1}}
\def\lrdist#1#2{\ensuremath{\text{\bf distributividade de }#1{\bf sobre }#2}}

% inference rules
\def\infronep#1#2#3#4{\ensuremath{\dfrac{#1\follows #2}{#3\follows #4}}}
\def\infrtwop#1#2#3#4#5#6{\ensuremath{\dfrac{#1\follows #2,\quad #3\follows #4}{#5\follows #6}}}
\def\lrdeduct{\ensuremath{\text{\bf Teorema da dedu\cao}}}
\def\lrbycase{\ensuremath{\text{\bf An\aa lise de caso}}}
\def\lrbycontra{\ensuremath{\text{\bf Prova por contradi\cao}}}
\def\lrmutualimp{\ensuremath{\text{\bf Implica\cao\ m\uu tua}}}
\def\lrcontrapos{\ensuremath{\text{\bf Contrapositiva}}}



% proof steps
\def\jstop#1{\langle{#1}\rangle}
\def\jst#1#2{\langle\text{#1} #2\rangle}
\def\jsttp#1#2{\langle\text{#1} #2\rangle}

\def\follows{\ensuremath{\vdash}}

% sets
\def\xset#1{\ensuremath{\{#1\}}}

\def\hoare#1#2#3{\ensuremath{\xset{#1}#2\xset{#3}}}

\def\xincrftor{\ensuremath{\nearrow}}
\def\xincr#1{\ensuremath{#1\nearrow}}
\def\xstincr#1{\ensuremath{#1\uparrow}}
\def\xdecr#1{\ensuremath{#1\searrow}}
\def\xstdecr#1{\ensuremath{#1\downarrow}}
\def\incr#1#2#3{\ensuremath{\xincr{#1(#2..#3)}}}
\def\stincr#1#2#3{\ensuremath{\xstincr{#1(#2..#3)}}}
\def\decr#1#2#3{\ensuremath{\xdecr{#1(#2..#3)}}}
\def\stdecr#1#2#3{\ensuremath{\xstdecr{#1(#2..#3)}}}
\def\xbitonic#1{\ensuremath{#1\updownarrow}}
\def\bitonic#1#2#3{\ensuremath{\xbitonic{#1(#2..#3)}}}


