created mirror
This commit is contained in:
3
Documentation/Math/Makefile
Normal file
3
Documentation/Math/Makefile
Normal file
@@ -0,0 +1,3 @@
|
||||
all : math.dvi math.ps
|
||||
|
||||
include ../lib.mk
|
||||
60
Documentation/Math/ajk-scribbles.tex
Normal file
60
Documentation/Math/ajk-scribbles.tex
Normal file
@@ -0,0 +1,60 @@
|
||||
\documentclass{article}
|
||||
|
||||
\usepackage{bbm}
|
||||
\usepackage{amsmath}
|
||||
|
||||
\newcommand{\N}{\mathbbm{N}}
|
||||
|
||||
\newtheorem{Def}{Definition}
|
||||
\newtheorem{The}{Theorem}[Def]
|
||||
|
||||
\DeclareMathOperator{\Dom}{Dom}
|
||||
\newcommand{\Dim}[1]{\tilde{#1}}
|
||||
|
||||
\begin{document}
|
||||
|
||||
Note: we assume here that dimensions are cells instead of strings.
|
||||
|
||||
\begin{Def}[space]
|
||||
A ZigZag space is the triplet $Z = (X, c, C)$ where $X$ is the set of
|
||||
cells, $c : X \rightarrow \Sigma^*$ is the cell content mapping
|
||||
and $C \subset X^3$ is the set of connections, if the following hold:
|
||||
%
|
||||
\begin{enumerate}
|
||||
%
|
||||
\item If $(d, e, f) \in C$ and $(d, e', f) \in C$ then $e = e'$.
|
||||
%
|
||||
\item If $(d, e, f) \in C$ and $(d, e, f') \in C$ then $f = f'$.
|
||||
%
|
||||
\end{enumerate}
|
||||
\end{Def}
|
||||
|
||||
\begin{Def}[subspace]
|
||||
A ZigZag space $Z' = (X', c', C')$ is a subspace of another ZigZag
|
||||
space $Z = (X, c, C)$ if the following hold:
|
||||
%
|
||||
\begin{enumerate}
|
||||
%
|
||||
\item $X' \subset X$
|
||||
%
|
||||
\item $c'(x) = c(x)$ for every $x \in X'$.
|
||||
%
|
||||
\item $C' \subset C$
|
||||
%
|
||||
\end{enumerate}
|
||||
\end{Def}
|
||||
|
||||
\begin{The}
|
||||
Let $Z = (X, c, C)$ be a ZigZag space. For every $d \in X$, there
|
||||
exists a maximal $X' \subset X$ and a unique $\Dim{d} : X'
|
||||
\rightarrow X$ such that for every $x \in X'$ it holds that $(d, x,
|
||||
\Dim{d}(x)) \in C$. Additionally, $\Dim{d}$ is an injection.
|
||||
\end{The}
|
||||
|
||||
\begin{Def}[clone dimension]
|
||||
Let $Z = (X, c, C)$ be a ZigZag space. We say that $d \in X$ is a
|
||||
clone dimension if, for every $x \in \Dom d$ it holds that $c(x) =
|
||||
c(\Dim{d}(x))$.
|
||||
\end{Def}
|
||||
|
||||
\end{document}
|
||||
110
Documentation/Math/math.ptex
Normal file
110
Documentation/Math/math.ptex
Normal file
@@ -0,0 +1,110 @@
|
||||
% Emacs, note: this is a -*- LaTeX -*- file.
|
||||
% MAKE SURE YOU EDIT THE RIGHT FILE, math.ptex and not the math.tex
|
||||
% file where gpic has already expanded things.
|
||||
\documentclass{article}
|
||||
|
||||
\usepackage{rcs}
|
||||
\RCS $Date: 2000/07/18 05:21:50 $
|
||||
\RCS $Revision: 1.3 $
|
||||
\date{Rev.\RCSRevision~~\RCSDate}
|
||||
|
||||
\usepackage{amsmath}
|
||||
|
||||
\title{Mathematics of ZigZag}
|
||||
\author{Tuomas J.~Lukka}
|
||||
\begin{document}
|
||||
\maketitle
|
||||
|
||||
\newtheorem{theorem}{Definition}[section]
|
||||
\newtheorem{definition}[theorem]{Definition}
|
||||
|
||||
\section{Introduction}
|
||||
|
||||
The purpose of this document is to look at ZigZag from a
|
||||
mathematical perspective.
|
||||
|
||||
It is slowly becoming more and more obvious that this type of analysis
|
||||
can help us understand some of the conceptually less clear parts of ZigZag
|
||||
and why they are conceptually less clear.
|
||||
|
||||
\section{Tumblers}
|
||||
|
||||
\section{Definition of a ZigZag space}
|
||||
|
||||
\begin{definition}
|
||||
% A ZigZag space $Z$ is the tuple $(C, d, t)$ of the set of cells $C$,
|
||||
% a mapping $d$ from strings to bijections between subsets of $C$,
|
||||
% and a mapping $t$ from cells to cell contents
|
||||
% (either permascroll spans as tumbler addresses or strings)
|
||||
A ZigZag space $Z$ is the tuple $(C, d, t)$ of the set of cells $C$, a
|
||||
mapping $d$ from strings to the set \( D := \{ \, f\colon $C'$
|
||||
\longrightarrow $C''$ \mid \text{$f$ is bijective and } C', C''
|
||||
\subset C \, \} \) and a mapping $t$ from cells to the set of all
|
||||
possible cell content (permascroll spans as tumbler addresses or
|
||||
strings).
|
||||
\end{definition}
|
||||
|
||||
Now, special dimensions can be defined simply as restrictions on
|
||||
the space; for instance, as predicates:
|
||||
\begin{definition}
|
||||
The ZZspace $Z$ has a clone-dimension $d_0$ iff
|
||||
for all cells $c$ for which $d(d_0)(c)$ exists, $t(d(d_0)(c)) = t(c)$.
|
||||
\end{definition}
|
||||
|
||||
Likewise, we can define a versioning operation:
|
||||
\begin{definition}
|
||||
A ZZ operation $o: Z \rightarrow Z'$ is versioning
|
||||
if ... XXX
|
||||
\end{definition}
|
||||
|
||||
|
||||
\section{Solving real problems}
|
||||
|
||||
\subsection{Slice spaces}
|
||||
|
||||
It is possible to highlight some problems related to defining operations
|
||||
and combinations of spaces with this type of analysis. One observation
|
||||
made early on in the coding was that encapsulation makes it complicated
|
||||
to define operations on e.g.~slice spaces (spaces that consist of a
|
||||
combination of several spaces). For example, in $C = f(A,B)$ the ZZspace
|
||||
is $C$ a slice space if it contains cells corresponding to most cells
|
||||
of $A$ and $B$ (excluding {\em preflets}, i.e. cells whose meaning is to
|
||||
specify for $f$ which cells are to be connected between $A$ and $B$).
|
||||
|
||||
The forwards transform is simple: $C = f(A,B)$ as above.
|
||||
However, problems begin to appear when we consider that normally
|
||||
performing an operation functionally: $A' = \Omega(A)$ causes $A'$ to be
|
||||
saved on the disk to replace $A$. $C' = \Omega(C)$ cannot do the same
|
||||
as simply because we would like to trace the chain to change $A$ and $B$,
|
||||
obtaining $(A', B') = f^{-1}(\Omega(f(A,B)))$. This can naturally be quite
|
||||
complicated. Most combination functions $f$ used in reality are nice but still
|
||||
this causes a pronounced difficulty in coding the usual operations
|
||||
(new cell, etc) on slice spaces if starting from this perspective.
|
||||
|
||||
Thus, the conceptually simplest way forwards might be defining a whole
|
||||
new kind of mathematical object, a slice space, which has its own
|
||||
operations that naturally distribute to the next level.
|
||||
After this it is simple to define performance enhancements by caching parts
|
||||
of the next level space but the conceptual simplicity of directly modifying
|
||||
only the underlying representation (instead of e.g.~the representation {\em and}
|
||||
a cache) is appealing.
|
||||
|
||||
\begin{definition}
|
||||
A Slice space $S$ is a
|
||||
tuple $(Z_0, s)$ where $Z_0$ is the slice 0, i.e.~the root space,
|
||||
and $s$ is a mapping from strings to ZigZag spaces
|
||||
\end{definition}
|
||||
|
||||
\begin{definition}
|
||||
A slice composition function
|
||||
$f_c$ is a mapping
|
||||
$S \rightarrow Z$
|
||||
from a slice space to a ZigZag space (the composition function).
|
||||
\end{definition}
|
||||
|
||||
|
||||
|
||||
\end{document}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user