design/tpl (Classification System): Introduce linear algebra notation

I find this provides a visualization that is likely to be significantly more
intuitive for others.  It even holds when the matrix is not
rectangular (yes, I know, it's not really a matrix then), so long as all
matrices share the same respective K_j.
master
Mike Gerwitz 2021-05-26 10:33:01 -04:00
parent cc057e8178
commit ddcdb8d9c6
2 changed files with 114 additions and 0 deletions

View File

@ -570,6 +570,117 @@ More subtly,
\label{f:ex:class-match-all-ranks}
\end{figure}
Visually,
the one-dimensional construction of \axmref{class-pred} does not lend
itself well to how intuitive the behavior of the system actually is.
We therefore establish a relationship to the notation of linear algebra
to emphasize the relationship between each of the inputs.
\newcommand\matseqsup[1]{%
\begin{bmatrix}
M^{#1}_{0_0} & \dots & M^{#1}_{0_k} \\
\vdots & \ddots & \vdots \\
M^{#1}_{j_0} & \dots & M^{#1}_{j_k} \\
\end{bmatrix}%
}
\newcommand\vecseqsup[1]{%
\begin{bmatrix}
v^{#1}_0 \\
\vdots \\
v^{#1}_j \\
\end{bmatrix}%
}
% This must be an axiom because it defines how the connectives operate; see
% the remark.
\begin{axiom}[Classification Matrix Notation]\axmlabel{class-mat-not}
Let $\Gamma^2$ be defined by \axmref{class-yield}.
Then,
\begin{equation*}
\Gamma^2 =
\matseqsup{0}\monoidops\matseqsup{l}
\monoidop
\vecseqsup{0}\monoidops\vecseqsup{m}
\monoidop
s^0\monoidops s^n,
\end{equation*}
from which $\Gamma^1$, $\Gamma^0$, and $\gamma$ can be derived.
\end{axiom}
\begin{remark}[Logical Connectives With Matrix Notation]
From the definition of \axmref{class-mat-not},
it should be clear that the logical connective $\monoidop$ necessarily
acts like a Hadamard product with regards to how individual elements are
combined.
\end{remark}
\axmref{class-mat-not} makes it easy to visualize classification
operations simply by drawing horizontal boxes across the predicates,
as demonstrated by \spref{f:class-mat-boxes}.
% NB: Give this formatting extra attention if the document's formatting is
% substantially changed, since it's not exactly responsible with it's
% hard-coded units.
\begingroup
\begin{figure}[ht]
\def\classmatraise#1{%
\begin{aligned}
#1 \\ {} \\ #1
\end{aligned}
}
\def\classmateq{%
\matseqsup{0}
\classmatraise{\monoidop\cdots\monoidop}
\matseqsup{l}
\classmatraise\monoidop
\vecseqsup{0}
\classmatraise{\monoidop\cdots\monoidop}
\vecseqsup{m}
\classmatraise{%
{}\monoidop s^0\monoidop\cdots\monoidop s^n%
}
}
\begin{align*}
&\;\raisebox{-3mm}[0mm]{%
\begin{turn}{45}
$\equiv$
\end{turn}%
} \;\fbox{$
\left(M^0_{0_0} \monoidops M^0_{0_k}\right)
\monoidops
\left(M^l_{0_0} \monoidops M^l_{0_k}\right)
\monoidop
v^0_0 \monoidops v^m_0
\monoidop
s^0 \monoidops s^n
$} &\Gamma^2_0 \\[-2mm]
&\fbox{\raisebox{0mm}[0mm][6mm]{\hphantom{$\classmateq$}}} \\[-8mm]
%
&\classmateq &\vdots\; \\[-10mm]
%
&\fbox{\raisebox{0mm}[0mm][6mm]{\hphantom{$\classmateq$}}} \\
&\;\raisebox{3mm}[0mm]{%
\begin{turn}{-45}
$\equiv$
\end{turn}%
} \;\fbox{$
\left(M^0_{j_0} \monoidops M^0_{j_k}\right)
\monoidops
\left(M^l_{j_0} \monoidops M^l_{j_k}\right)
\monoidop
v^0_j \monoidops v^m_j
\monoidop
s^0 \monoidops s^n
$} &\Gamma^2_j
\end{align*}
\caption{Visual interpretation of classification by \axmref{class-mat-not}.
The adjacent frames represent equivalencies between the first-order
logic of \axmref{class-yield} and the matrix notation.}
\label{f:class-mat-boxes}
\end{figure}
\endgroup
\index{classification!as proposition|(}
\begin{lemma}[Match As Proposition]\lemlabel{match-prop}
Matches can be represented using propositional logic provided that

View File

@ -23,6 +23,7 @@
\usepackage{marginnote} % Notes in the margin
\usepackage{ccicons} % CC license icons
\usepackage{manfnt} % Dangerous Bend symbols
\usepackage{rotating} % Rotating objects
@ -123,6 +124,8 @@
% Group theory
\newcommand\Monoid[3]{\left({#1},{#2},{#3}\right)}
\let\monoidop\bullet
\newcommand\monoidops{\monoidop\cdots\monoidop}
% Closed binary function
\newcommand\cbif[1]{#1\times#1\rightarrow#1}