% 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{<}}
\def\xminftor{\ensuremath{\downarrow}}
\def\xmaxftor{\ensuremath{\uparrow}}
\def\xmin#1{\ensuremath{\xminftor\!\!#1}}
\def\xbmin#1#2{\ensuremath{#1\xminftor #2}}
\def\xmax#1{\ensuremath{\xmaxftor\!\!#1}}
\def\xbmax#1#2{\ensuremath{#1\xmaxftor #2}}

% 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\bnde#1#2#3{\bnd{\bigvee}{#1}{#2}{#3}}
\def\bnda#1#2#3{\bnd{\bigwedge}{#1}{#2}{#3}}
\def\bndsum#1#2#3{\bnd{+}{#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}}


% 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\lrbycases{\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}}}


\def\lrsubst{\ensuremath{\text{\bf substitui\cao}}}
\def\lrrefl{\ensuremath{\text{\bf reflexividade}}}
\def\lreqrefl{\ensuremath{\lrrefl(=)}}
\def\lrtrans{\ensuremath{\text{\bf transitividade}}}
\def\lreqtrans{\ensuremath{\lrtrans(=)}}
\def\lrequanimity{\ensuremath{\text{\bf equanimidade}}}
\def\lrdist{\ensuremath{\text{\bf distributividade}}}
\def\lrdistpp#1#2{\ensuremath{\lrdist(#1,#2)}}
\def\lrassoc{\ensuremath{\text{\bf associatividade}}}
\def\lrassocp#1{\ensuremath{\lrassoc(#1)}}
\def\lreqassoc{\lrassocp=}
\def\lrsym{\ensuremath{\text{\bf simetria}}}
\def\lrsymp#1{\ensuremath{\lrsym(#1)}}
\def\lreqsim{\lrsymp{=}}
\def\lrid{\ensuremath{\text{\bf identidade}}}
\def\lrdef{\ensuremath{\text{\bf defini\cao}}}
\def\lridem{\ensuremath{\text{\bf idempotente}}}
\def\lrexclmdl{\ensuremath{\text{\bf Excluded Middle}}}
\def\lrgolden{\ensuremath{\text{\bf Golden Rule}}}
\def\lrmp{\ensuremath{\text{\bf Modus Ponens}}}
\def\lrzero{\ensuremath{\text{\bf Zero}}}
	
%gerais
\def\lrweaken{\ensuremath{\text{\bf Weakening}}}
\def\lrstrenghten{\ensuremath{\text{\bf Strengthening}}}
\def\lrmonotonic{\ensuremath{\text{\bf Monotonicidade}}}
\def\lrabsorption{\ensuremath{\text{\bf Absor\cao}}}

% proof steps
\def\jstop#1{\langle{#1}\rangle}
\def\jsttx#1{\langle{\text{#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)}}}


