%------ -----------------------------------------% \def\esp{~\\} %------ Matematica -----------------------------------------% \def\lcb{\left\{} \def\leftfunc#1#2{% \lefteqn{#1} \nonumber && \\ \lefteqn{#2\deff} \nonumber \\ && } \def\botFun{\overline\bot} % bottom \def\bnft#1{~\mattt{#1}~} \def\bnfnt#1{\mathopen{\langle}\matem{#1}\mathclose{\rangle}} \def\bnf#1#2{\bnfnt{#1} & ::= & \begin{array}[t]{ll} #2 \end{array}} \def\bnfor{\asor} \def\const#1{\mathopen{[}#1\mathclose{]}} \def\alt#1#2{#1\mathbin{|}#2} % f | g \def\caso#1#2#3#4{\left\{ \begin{array}{lcl}#1&\Rightarrow\\#3&\Rightarrow\end{array}\right.} \def\nJoin{\Join_{\!\!\!\!n}} \def\coJoin{\stackrel{+}{\Join}} \def\rest#1#2{#1|#2} %------ Matematica -> Basicas --------------------------------% \def\mean#1{\mathopen{[\![}#1\mathclose{]\!]}} \def\comp{\mathbin{\circ}} \def\sat{\mathbin{\mbox{\underline{sat}}}} \def\tuple#1{\mathopen{\langle}#1\mathclose{\rangle}} % \def\pexp#1#2{\left\{\begin{array}{lcl} #1 &\Rightarrow& #2 \end{array} \right.} \def\matsc#1{\mbox{\sc #1}} \def\matbf#1{\mbox{\bf #1}} \def\mattt#1{\mbox{\tt #1}} \def\matem#1{\mbox{{\em #1}}} \def\nrelem#1{{|#1|}} \def\implies{\mathbin\Rightarrow} \def\and{\mathbin\wedge} \def\andif{\mathbin{\wedge \!\!\!.\,}} \def\Z{\mbox{Z$\!\!$Z}} \def\CC{\mbox{C$\!\!\!$C}} \def\R{\mbox{I$\!$R}} \def\N{\mbox{I$\!$N}} %\def\NN{I\! N} % Nat numbers %\def\NNZ{I\! N_{0}} % Nat0 numbers \def\deff{\stackrel{\rm def}{=}} % function definition symbol \def\func#1{\mbox{\sf #1}} \def\arrow#1{\stackrel{#1}{\rightarrow}} % category theoretic % arrow \def\universal#1#2{\forall #1: #2} \def\existential#1#2{\exists #1: #2} %------ Matematica -> Conjuntos ------------------------------% \def\inseg#1{\overline{#1}} \def\pow#1{{\cal P}({#1})} % P(X) \def\settag#1{{#1}\hbox{-set}} % #1-set \def\bagtag#1{{#1}\hbox{-bag}} % #-1bag \def\ZF{| \; } % ZF bar \def\setdef#1#2{\{#1 \asor \;#2\}} % { f(x) | p(x) } \def\enset#1{\mathopen{ \{ }#1\mathclose{ \} }} % {a,b,...z} \def\st{. \, } % "such that" \def\card#1{{\sf card} \, {#1}} % card s %------ Matematica -> Listas ---------------------------------% \def\set#1{2^{#1}} % 2^X \def\seq#1{{#1}^{\star}} % X* \def\listtag#1{{#1}\hbox{-list}} % #1-list \def\listdef#1#2{\enlist{ #1 \asor #2}} % < f(x) | x <- l> \let\seqdef=\listdef \def\from{\mathbin{\leftarrow}} \def\len#1{{\sf len} \, {#1}} % len x \def\len#1{\unary{length}{#1}} \def\head#1{\unary{head}{#1}} \def\tail#1{\unary{tail}{#1}} \let\hd\head \let\tl\tail \def\elems#1{\unary{elems}{#1}} \def\length#1{\unary{length}{#1}} % elems l \def\conc{\mathbin{\frown}} \def\enlist#1{\mathopen{<}#1\mathclose{>}} % % \def\seqen#1{\mathopen{<}#1\mathclose{>}} \def\emptylist{\enlist{}} %------ Matematica -> Funcoes --------------------------------% \def\absf#1{f_{(\ref{#1})}} \def\absi#1{\phi_{(\ref{#1})}} \def\unary#1#2{\def\arg{#2}\def\omisso{} #1\ifx\arg\omisso\relax\else(#2)\fi} \def\enapp#1#2{\left(\begin{array}{ccccccccc}#1\\#2\end{array} \right)} \def\plus{\mathbin{\dagger}} \def\tfunc#1{\longrightarrow {#1}} % total funct. % \def\pfunc#1{\hookrightarrow {#1}} % partial funct. \def\pfunc#1{\rightharpoonup {#1}} % partial funct. \def\rng#1{\unary{rng}{#1}} % rng x \def\dom#1{\unary{dom}{#1}} % dom x \def\mapdef#1#2{\{ #1|\;#2 \}} % [ x -> f(x) | p(x) ] \def\enmap#1{\mathopen{\{}#1\mathclose{\}}} % [a,b,...z] \def\emptymap{\enmap{~}} \def\mapdr{\mathbin{|}} \def\mapds{\mathbin{\setminus}} \def\famdef#1#2{(#1)_{#2}} % (f(x))x in S %------ Matematica -> VDMAS ----------------------------------% \def\mk#1{\hbox{mk-}{#1}} % mk-#1 \def\is#1{\hbox{is-}{#1}} % is-#1 \def\vdmas{sintaxe abstracta em \vdm} \def\asalt#1{\mathopen{[}#1\mathclose{]}} % [ A ] \def\asor{\mathbin{|}} % A | B \def\ascom#1{~~\mbox{/*\matem{#1} */}} \def\Ascom#1#2 {~~\mbox{\begin{minipage}[t]{#1cm}\em/* #2 */\end{minipage}}} \def\pair#1{\tuple{#1}} %------ Matematica -> SETS -----------------------------------% \def\mcup{\mathbin{\oplus}} % bag union \def\mcap{\mathbin{\mbox{% \unitlength=.5ex \special{em:linewidth 0.4pt} \linethickness{0.4pt} \begin{picture}(2.00,2.00) \put(0.00,0.00){\makebox(0,0)[cc]{$\cap$}} \put(0.00,0.00){\circle{4.00}} \end{picture} }}} \let\Mcup\bigoplus % bag Union \let\mminus\ominus % bag difference \let\msubseteq\subseteq % bag inclusion \def\model#1{{\cal {#1}} : \Sigma \rightarrow Sets} \def\assina#1{\Sigma_{#1}} \def\Assina#1{\Sigma_{#1}:\Omega_{#1}\rightarrow S^{\star}_{#1}\times S_{#1}} \def\lred#1#2{\unlhd_{#1}^{#2}} %------ Matematica -> Outras ---------------------------------% \def\traco{\esp\mbox{}\hrulefill\mbox{} \\*} \def\mapp#1{\stackrel{m}\rightarrow {#1}} % -m-> \def\brel#1{\stackrel{m}\leftrightarrow {#1}} % <-m-> \def\orif{\mathbin{\dot{\vee}}} \def\post#1{\hbox{post-}{#1}} % post-#1 \def\pre#1{\hbox{pre-}{#1}} % pre-#1 \def\inv#1{\hbox{inv-}{#1}} % inv-#1 %------ CCS -----------------------------------------% \def\paralel#1#2{\prod_{#1}#2} % | i=1,n \def\succ#1{\stackrel{\rm #1}{\rightarrow}} % - a - > \def\atimes{\mathbin{\parallel}} % a . P \def\athen{\mathbin{.}} % a . P \def\then{\mathbin{:}} % a : P \def\restr{\mathbin{\uparrow}} % P | A \def\obs{\mathbin{\sim}} % P ~ Q \def\aobs{\mathbin{\approx}} % P ~ Q \def\ainv#1{\overline{#1}} % ~ a \def\fix#1{\underline{fix}~#1} % fix X % % Pretty-Print macros and definitions % \def\LET{\hspace{-2mm}\begin{array}[t]{ll}\underline{let}&\hspace{-2mm}\begin{array}[t]{l}} \def\IN{\end{array}\\\underline{in}&\hspace{-2mm}\begin{array}[t]{l}} \def\TEL{\end{array}\end{array}} \def\POST{\begin{array}[t]{ll}p\underline{ost}&\begin{array}[t]{l}} \let\TSOP=\TEL \def\PRE{\begin{array}[t]{ll}p\underline{re}&\begin{array}[t]{l}} \let\ERP=\TEL \def\OTHERWISE{\underline{otherwise}} \def\CASE{\left\{\begin{array}{rcl}} \def\VALUE{&\Rightarrow&} \def\ESAC{\end{array}\right.} \def\PROD{\begin{array}[t]{rclc}} \def\TYPE{&:&} \def\NEXT{&\times \\} \def\DORP{\end{array}} \long\def\COND#1#2#3{ \left\{\begin{array}{rcl}#1~&\Rightarrow\\\neg(#1)&\Rightarrow\end{array} \right.} \def\CONDX#1#2#3#4{ \lcb\begin{array}{rcl}#1~&\Rightarrow\\#3&\Rightarrow\end{array} \right.} \def\IF{\begin{array}[t]{l}if~~} \def\If{~if~} \def\THEN{\\ then~~} \def\ThEN{~then~} \def\ELSE{\\ else~~} \def\ElSE{~else~} \def\FI{\end{array}} \def\Fi{} \def\true{V} \def\false{F} \def\ORS{\begin{array}[t]{ll}} \def\OR{&\vee\\} \def\SRO{\end{array}} \def\IFP{\begin{array}[t]{l}(if~~} \def\FIP{)\end{array}} \def\WHILE{\begin{array}[t]{l}while~~} \def\WHILEP{\begin{array}[t]{l}(while~~} \def\ODP{)\end{array}} \def\DO{\\ do~~} \def\OD{\end{array}} \def\NEW{new~~} \def\COMP#1#2{#1 \circ #2} \def\ID#1{1_{#1}} \def\CST#1{\overline{#1}} \def\INV#1{\underline{inv}(#1)} \def\LAMBDA#1{\lambda(#1)} \def\MODEL#1{\noindent\mbox{\Large Model #1}\\\\} \def\STATE#1#2{\noindent\mbox{\Large State} $#1:#2$\vskip 2em} \def\INCLUDE#1{\noindent\mbox{\large include #1}\\\\} \def\TRUE{true} \def\FALSE{false} \def\epsBox#1#2{ \[ \fbox{\mypsfig{#2}{#1}} \] } \def\picBox#1#2{{\unitlength=#1 \[ \mbox{\getPic{#2}} \] }} \newenvironment{solucao}[1]{% \espaco \begin{small}{\bf Resolu\c c\~ao \ref{ex:#1}}:~}% {$\Box$\end{small}} %\def\SORTS{\traco{\noindent\rule[-.4em]{0mm}{2.1em}}{\Large\sc Sorts}\traco\\[1em]} %\def\OPERS{\traco{\noindent\rule[-.4em]{0mm}{2.1em}}{\Large\sc Operations}\traco\\[1em]} \def\SORTS{{\noindent\rule[-.4em]{0mm}{2.1em}}{\Large\sc Sorts}\traco} \def\OPERS{\vskip 2em {\noindent\rule[-.4em]{0mm}{2.1em}}{\Large\sc Operations}\traco} \def\n#1{$\backslash$n#1}