chiark / gitweb /
strategy: traversal wip proofs
[topbloke-formulae.git] / article.tex
index 714fbd167e00d67c850ccf69d0942e9a8b3b116a..0c10bcf095b02696681a91a33539695b10371f9a 100644 (file)
-\documentclass[a4paper]{article}
-\usepackage{MnSymbol}
-\usepackage{stmaryrd}
-\usepackage{slashed}
+\documentclass[a4paper,leqno]{strayman}
+\errorcontextlines=50
+\let\numberwithin=\notdef
+\usepackage{amsmath}
+\usepackage{mathabx}
+\usepackage{txfonts}
+\usepackage{amsfonts}
+\usepackage{mdwlist}
+%\usepackage{accents}
+
+\usepackage{fancyhdr}
+\pagestyle{fancy}
+\rhead[\rightmark]{}
+\lhead[]{\rightmark}
+\rfoot[\thepage]{\input{revid.inc}}
+\lfoot[\input{revid.inc}]{\thepage}
+
+\let\stdsection\section
+\renewcommand\section{\newpage\stdsection}
+
+\renewcommand{\ge}{\geqslant}
+\renewcommand{\le}{\leqslant}
+\newcommand{\nge}{\ngeqslant}
+\newcommand{\nle}{\nleqslant}
+
+\newcommand{\has}{\sqsupseteq}
+\newcommand{\isin}{\sqsubseteq}
+
+\newcommand{\nothaspatch}{\mathrel{\,\not\!\not\relax\haspatch}}
+\newcommand{\notpatchisin}{\mathrel{\,\not\!\not\relax\patchisin}}
+\newcommand{\haspatch}{\sqSupset}
+\newcommand{\patchisin}{\sqSubset}
+%\newcommand{\zhaspatch}{\mathrel{\underset{\fullmoon}\sqSupset}}
+\newcommand{\zhaspatch}{\mathrel{\sqSupset_\varnothing\mkern-4mu}}
+
+        \newif\ifhidehack\hidehackfalse
+        \DeclareRobustCommand\hidefromedef[2]{%
+          \hidehacktrue\ifhidehack#1\else#2\fi\hidehackfalse}
+        \newcommand{\pa}[1]{\hidefromedef{\varmathbb{#1}}{#1}}
+
+\newcommand{\set}[1]{\mathbb{#1}}
+\newcommand{\pay}[1]{\pa{#1}^+}
+\newcommand{\pan}[1]{\pa{#1}^-}
+
+\newcommand{\p}{\pa{P}}
+\newcommand{\py}{\pay{P}}
+\newcommand{\pn}{\pan{P}}
+
+\newcommand{\pc}{\pa{C}}
+\newcommand{\pcy}{\pay{C}}
+\newcommand{\pcn}{\pan{C}}
+
+\newcommand{\pd}{\pa{D}}
+\newcommand{\pdy}{\pay{D}}
+\newcommand{\pdn}{\pan{D}}
+
+\newcommand{\pl}{\pa{L}}
+\newcommand{\ply}{\pay{L}}
+\newcommand{\pln}{\pan{L}}
+
+\newcommand{\pq}{\pa{Q}}
+\newcommand{\pqy}{\pay{Q}}
+\newcommand{\pqn}{\pan{Q}}
+
+\newcommand{\pr}{\pa{R}}
+\newcommand{\pry}{\pay{R}}
+\newcommand{\prn}{\pan{R}}
+
+%\newcommand{\hasparents}{\underaccent{1}{>}}
+%\newcommand{\hasparents}{{%
+%  \declareslashed{}{_{_1}}{0}{-0.8}{>}\slashed{>}}}
+\newcommand{\hasparents}{>_{\mkern-7.0mu _{1:}}}
+\newcommand{\areparents}{<_{\mkern-14.0mu _{1:}\mkern+5.0mu}}
+
+\renewcommand{\implies}{\Rightarrow}
+\renewcommand{\equiv}{\Leftrightarrow}
+\renewcommand{\nequiv}{\nLeftrightarrow}
+\renewcommand{\land}{\wedge}
+\renewcommand{\lor}{\vee}
+
+\newcommand{\pancs}{{\mathcal A}}
+\newcommand{\pends}{{\mathcal E}}
+
+\newcommand{\pancsof}[2]{\pancs ( #1 , #2 ) }
+\newcommand{\pendsof}[2]{\pends ( #1 , #2 ) }
+
+\newcommand{\merge}{{\mathcal M}}
+\newcommand{\mergeof}[4]{\merge(#1,#2,#3,#4)}
+%\newcommand{\merge}[4]{{#2 {{\frac{ #1 }{ #3 } #4}}}}
+
+\newcommand{\patch}{{\mathcal P}}
+\newcommand{\base}{{\mathcal B}}
+\newcommand{\depsreq}{{\mathcal D}}
+
+\newcommand{\patchof}[1]{\patch ( #1 ) }
+\newcommand{\baseof}[1]{\base ( #1 ) }
+\newcommand{\depsreqof}[1]{\depsreq ( #1 ) }
+
+\newcommand{\allpatches}{\Upsilon}
+\newcommand{\assign}{\leftarrow}
+\newcommand{\iassign}{\leftarrow}
+%\newcommand{\assign}{' =}
+
+\newcommand{\alg}[1]{\text{\bf #1}}
+\newcommand{\setmerge}{\alg{merge}}
+\newcommand{\setmergeof}[3]{\setmerge\left\langle #1 \;\middle\langle #2 \middle\rangle\; #3 \right\rangle}
+%\newcommand{\setmergeof}[3]{\setmerge\left\lgroup #1 \;\middle\lmoustache\; #2 \;\middle\rmoustache\; #3 \right\rgroup}
+%\newcommand{\setmergeof}[3]{\setmerge\left\rmoustache #1 \middle\rmoustache #2 \middle\lmoustache #3 \right\lmoustache}
+%\newcommand{\setmergeof}[3]{\setmerge\left\lfloor #1 \middle\lfloor #2 \middle\rfloor #3 \right\rfloor}
+
+\newcommand{\eqntag}[2]{ #2 \tag*{\mbox{#1}} }
+\newcommand{\eqn}[2]{ #2 \tag*{\mbox{\bf #1}} }
+
+\newcommand{\hasdirdep}{\succ_{\mkern-7.0mu _1}}
+\newcommand{\hasdep}{\succ}
+\newcommand{\isdep}{\prec}
+\newcommand{\isdirdep}{\prec_{\mkern-18.0mu _1}{\mkern+10mu}}
+
+\newcommand{\tip}{ T }
+\newcommand{\tipa}[1]{ \tip^{#1} }
+\newcommand{\tipcn}{ \tipa \pcn }
+\newcommand{\tipcy}{ \tipa \pcy }
+\newcommand{\tipdn}{ \tipa \pdn }
+\newcommand{\tipdy}{ \tipa \pdy }
+
+%\newcommand{\bigforall}{\mathop{\hbox{\huge$\forall$}}}
+\newcommand{\bigforall}{%
+  \mathop{\mathchoice%
+    {\hbox{\huge$\forall$}}%
+    {\hbox{\Large$\forall$}}%
+    {\hbox{\normalsize$\forall$}}%
+    {\hbox{\scriptsize$\forall$}}}%
+}
+\newcommand{\bigexists}{%
+  \mathop{\mathchoice%
+    {\hbox{\huge$\exists$}}%
+    {\hbox{\Large$\exists$}}%
+    {\hbox{\normalsize$\exists$}}%
+    {\hbox{\scriptsize$\exists$}}}%
+}
+
+\newcommand{\Largeexists}{\mathop{\hbox{\Large$\exists$}}}
+\newcommand{\Largenexists}{\mathop{\hbox{\Large$\nexists$}}}
+
+\newcommand{\qed}{\square}
+\newcommand{\proofstarts}{{\it Proof:}}
+\newcommand{\proof}[1]{\proofstarts #1 $\qed$}
+
+\newcommand{\gathbegin}{\begin{gather} \tag*{}}
+\newcommand{\gathnext}{\\ \tag*{}}
+
+\newcommand{\true}{t}
+\newcommand{\false}{f}
+
 \begin{document}
-\def\iwjtest{{/\mkern-9mu\Sqsupset}}
-\newcommand{\iwjtestx}{\mathrel{\ooalign{$\Sqsubset$ $\sslash$}}}
-\newcommand{\iwjtesty}{{%
-  \declareslashed{}{\sslash}{-0.04}{0}{\Sqsubset}\slashed{\Sqsubset}}}
-sponge
-$ A \sqsubseteq B $
-$ A \not \sqsubseteq B $
-$ A \nsqsubseteq B $
-$ A \Sqsubset B $
-$ A \Sqsupset B $
-$ \sslash $
-$ \iwjtest $
-$ \iwjtestx $
-$ \iwjtesty $
-$ A \iwjtesty B $
+
+\chapter{Data model}
+
+\input{notation.tex}
+\input{invariants.tex}
+\input{lemmas.tex}
+\input{annotations.tex}
+
+\input{simple.tex}
+\input{create-base.tex}
+\input{create-tip.tex}
+\input{anticommit.tex}
+\input{merge.tex}
+
+\chapter{Update strategy}
+
+\input{strategy.tex}
+
 \end{document}