% FILE. . . . . /nfs/home/hak/ilog/matisse/main.mac
% EDIT BY . . . Hassan Ait Kaci
% ON MACHINE. . Commerce.Ilog.Fr
% STARTED ON. . Mon Apr 23 16:56:12 2001

% Last modified on Tue May 22 14:59:33 2001 by Hak

\newcommand{\online}[1]{(Available online\footnote{\texttt{#1}}\/)}
%\newcommand{\online}[1]{%
%\latexhtml%
%{(Available online\footnote{\texttt{#1}}\/)}%
%{\htmladdnormallink{(Available online)}{#1}}}

% Oft used abbreviations:

\newcommand{\hak}{Hassan A\"{\i}t-Kaci}

\newcommand{\aka}{\emph{a.k.a.}}
\newcommand{\etal}{\emph{et al.}}
\newcommand{\cf}{\emph{cf.}}
\newcommand{\eg}{\emph{e.g.}}
\newcommand{\etc}{\emph{etc.}}
\newcommand{\ie}{\emph{i.e.}}
\newcommand{\viz}{\emph{viz.}}

\newcommand{\opl}{\textsc{Opl}}
\newcommand{\matisse}{\textsc{Matisse}}

% Ignored sections:

\long\def\ignore#1{\relax}

% Math macros:

\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage[centertags]{amsmath}
\usepackage{theorem}
\usepackage{fleqn}

%\numberwithin{equation}{section}
%\numberwithin{equation}{chapter}
 
\def\formula{\equation\split}
\def\endformula{\endsplit\endequation}
 
\theoremheaderfont{\scshape}
 
\newtheorem{theorem}{Theorem}[section]
\newtheorem{definition}{Definition}[section]
\newtheorem{corollary}{Corollary}[section]
 
\theorembodyfont{\normalfont\slshape}
\newtheorem{example}{Example}[section]
\newtheorem{proof}{Proof}[section]

\renewcommand{\empty}{\emptyset}

\renewcommand{\c}[1]{\ensuremath{{\mathcal #1}}}
\renewcommand{\t}[1]{\ensuremath{\mathtt{#1}}}
\renewcommand{\b}[1]{\ensuremath{\mathbf{#1}}}

\newcommand{\m}[1]{\ensuremath{\mathbb{#1}}}
\newcommand{\g}[1]{\ensuremath{\mathfrak{#1}}}

% Constants:

\newcommand{\true}{\g{true}}
\newcommand{\false}{\g{false}}

% sets:

\newcommand{\NN}{\m{N}}
\newcommand{\BB}{\m{B}}

\newcommand{\C}{\b{C}}
\newcommand{\V}{\b{V}}
\newcommand{\T}{\b{T}}
\newcommand{\OP}{\b{O}}

\newcommand{\BT}{\c{B}}
\newcommand{\VT}{\c{V}}
\newcommand{\TT}{\c{T}}

\newcommand{\MON}[3]{\langle #1,#2,#3\rangle}

% lambda terms and types:

\newcommand{\abs}[2]{\lambda #1.#2}
\newcommand{\app}[2]{#1\;#2}
\newcommand{\arr}[2]{#1\rightarrow #2}

\newcommand{\pr}[2]{\langle #1,#2\rangle}
\newcommand{\tp}[2]{\langle #1, \cdots, #2\rangle}
\newcommand{\pj}[2]{#1.#2}

\newcommand{\ite}[3]{\g{if}\;#1\;\g{then}\;#2\;\g{else}\;#3}

\newcommand{\fix}{\g{fix}}
\newcommand{\op}{\g{op}}

\newcommand{\integer}{\t{int}}
\newcommand{\bool}{\t{bool}}

\newcommand{\gives}{\;\longrightarrow\;}
\newcommand{\from}{\;\leftarrow\;}

\newcommand{\subst}[3]{#3[#1/#2]}

% Typing rules:

\newcommand{\typerule}[2]{\displaystyle\frac{#1}{#2}}
\newcommand{\sequent}[3]{#1\;\vdash\;#2 : #3}

% \misc.:

\newcommand{\type}{\b{type}}
\newcommand{\eqd}{\ensuremath{\;\stackrel{\mbox{\tiny def}}{=}\;}}

% Monoids:

\newcommand{\set}{\t{set}}
\newcommand{\bag}{\t{bag}}
\newcommand{\lst}{\t{list}}

\newcommand{\conc}{\ensuremath{\!+\!\!+}}

\newcommand{\Z}[1]{\g{z}_{#1}}
\newcommand{\U}[1]{\g{u}_{#1}}
\newcommand{\Ty}[1]{\g{T}_{#1}}
\newcommand{\Co}[1]{\g{C}_{#1}}
\newcommand{\E}[1]{\Theta_{#1}}

\newcommand{\mset}[1]{\{\!\!\{#1\}\!\!\}}

\newcommand{\eset}{\{\}}
\newcommand{\elst}{[]}
\newcommand{\ebag}{\{\!\!\{\}\!\!\}}

\newcommand{\HOM}[2]{\ensuremath{\g{hom}_{#1}^{#2}}}

\newcommand{\subeq}[2]{\ensuremath{\E{#1}\subseteq\E{#2}}}

% Comprehensions:

\newcommand{\comp}[3]{\ensuremath{#1\{#2\;[\!]\;#3\}}}
\newcommand{\setcomp}[2]{\ensuremath{\{#1\;[\!]\;#2\}}}

\renewcommand{\Join}{\vartriangleright\!\!\vartriangleleft}