% data-summary.tex --- data modelling summary table -*-latex-*-

% Copyright (C) 2020 Amin Bandali <bandali@uwaterloo.ca>

% This file is part of Amin Bandali's MMath thesis.

% This thesis is free software: you can redistribute it and/or modify
% it under the terms of the GNU General Public License as published by
% the Free Software Foundation, either version 3 of the License, or
% (at your option) any later version.

% This thesis is distributed in the hope that it will be useful,
% but WITHOUT ANY WARRANTY; without even the implied warranty of
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
% GNU General Public License for more details.

% You should have received a copy of the GNU General Public License
% along with this thesis.  If not, see <https://www.gnu.org/licenses/>.


\resizebox{\textwidth}{!}{
  \centering
  \renewcommand{\arraystretch}{1.1}
  \footnotesize
  \begin{tabular}{|c|ccccccc|}
    \hline
    \diagbox[width=2.7cm,height=1cm]{Criteria}{Language}
    & \B
    & \eventb
    & \alloy
    & \dash
    & \tla
    & \pluscal
    & \asmetal
    \\ \hline
    Primitives
    & scalars, sets             % \B
    & scalars, sets             % \eventb
    & sets                      % \alloy
    & same as \alloy            % \dash
    & scalars, sets             % \tla
    & same as \tla              % \pluscal
    & scalars, sets             % \asmetal
    \\ \hline
    Constructors
    & \begin{tabular}[c]{@{}c@{}}fun, rel, rec,\\[-0.3em]multiplicity\end{tabular} % \B
    & \begin{tabular}[c]{@{}c@{}}fun, rel,\\[-0.3em]multiplicity\end{tabular} % \eventb
    & \begin{tabular}[c]{@{}c@{}}rel,\\[-0.3em]multiplicity\end{tabular} % \alloy
    & same as \alloy            % \dash
    & fun, rel                  % \tla
    & same as \tla              % \pluscal
    & rel                       % \asmetal
    \\ \hline
    Built-ins
    & \begin{tabular}[c]{@{}c@{}}$\mathbb{Z}$, $\mathbb{N}$, $\mathbb{N}_1$, $\mathbb{B}$,\\[-0.3em]str, seq, tree\end{tabular} % \B
    & $\mathbb{Z}$, $\mathbb{N}$, $\mathbb{N}_1$, $\mathbb{B}$ % \eventb
    & \begin{tabular}[c]{@{}c@{}}$\mathbb{Z}$, $\mathbb{N}$, $\mathbb{B}$,\\[-0.3em]str, seq,\\[-0.3em]ord, graph\end{tabular} % \alloy
    & same as \alloy            % \dash
    & \begin{tabular}[c]{@{}c@{}}$\mathbb{Z}$, $\mathbb{N}$, $\mathbb{R}$, $\mathbb{B}$,\\[-0.3em]str, rec,\\[-0.3em]seq, bag\end{tabular} % \tla
    & same as \tla              % \pluscal
    & \begin{tabular}[c]{@{}c@{}}$\mathbb{Z}$, $\mathbb{N}$, $\mathbb{R}$, $\mathbb{C}$, $\mathbb{B}$,\\[-0.3em]char, str, seq\\[-0.3em]bag, map, \asmcode{Undef}\end{tabular} % \asmetal
    \\ \hline
    Events
    & \md                       % \B
    & \md                       % \eventb
    & \md                       % \alloy
    & \dashcode{event}          % \dash
    & \md                       % \tla
    & \md                       % \pluscal
    & \md                       % \asmetal
    \\ \hline
    Constants
    & \bcode{CONSTANTS}         % \B
    & \eventbcode{CONSTANTS}    % \eventb
    & \md                       % \alloy
    & \md                       % \dash
    & \tlacode{CONSTANTS}       % \tla
    & \pluscalcode{CONSTANTS}   % \pluscal
    & \asmcode{static}          % \asmetal
    \\ \hline
    \begin{tabular}[c]{@{}c@{}}Type signatures\\[-0.3em]\&\\[-0.3em]typechecking\end{tabular}
    & \checkmark                         % \B
    & \checkmark                         % \eventb
    & \checkmark                         % \alloy
    & \checkmark                         % \dash
    & \md                       % \tla
    & \md                       % \pluscal
    & \checkmark                         % \asmetal
    \\ \hline
    Subtypes
    & \md                       % \B
    & \checkmark                         % \eventb
    & \checkmark                         % \alloy
    & \checkmark                         % \dash
    & \checkmark                         % \tla
    & \checkmark                         % \pluscal
    & \checkmark                         % \asmetal
    \\ \hline
    Scopes
    & \checkmark                         % \B
    & \checkmark                         % \eventb
    & \checkmark                         % \alloy
    & \checkmark                         % \dash
    & \checkmark                         % \tla
    & \checkmark                         % \pluscal
    & \md                       % \asmetal
    \\ \hline
  \end{tabular}
}


%% Local Variables:
%% tex-main-file: "../bandali-mmath-thesis.tex"
%% End:
