Ian Jauslin
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Jauslin <ian.jauslin@roma1.infn.it>2016-01-18 21:35:40 +0000
committerIan Jauslin <ian.jauslin@roma1.infn.it>2016-01-18 21:35:40 +0000
commitdae6a9add7289043d363010320b7fcc4b8e1c49c (patch)
tree1d7def9e54277ddd6c17cb17fb07fc29f4bcaa46
As presented at SISSA on 2016-01-19HEADv1.0master
-rw-r--r--Figs/MD_example.pdfbin0 -> 2033 bytes
-rw-r--r--Figs/enclosed_example_auxiliary_cover.pdfbin0 -> 14623 bytes
-rw-r--r--Figs/enclosed_example_auxiliary_thin.pdfbin0 -> 14534 bytes
-rw-r--r--Figs/enclosed_example_cover_phantom.pdfbin0 -> 14268 bytes
-rw-r--r--Figs/enclosed_example_phantom.pdfbin0 -> 14553 bytes
-rw-r--r--Figs/even_example.pdfbin0 -> 1967 bytes
-rw-r--r--Figs/even_example_counterexample_label.pdfbin0 -> 12779 bytes
-rw-r--r--Figs/even_example_counterexample_label_dimers.pdfbin0 -> 12834 bytes
-rw-r--r--Figs/even_example_counterexample_monomer.pdfbin0 -> 12835 bytes
-rw-r--r--Figs/even_example_counterexample_monomer_dimers.pdfbin0 -> 12874 bytes
-rw-r--r--Figs/even_example_directed.pdfbin0 -> 2326 bytes
-rw-r--r--Figs/even_example_label.pdfbin0 -> 12736 bytes
-rw-r--r--Figs/even_example_label_dimers.pdfbin0 -> 12786 bytes
-rw-r--r--Figs/even_example_label_nodir.pdfbin0 -> 12442 bytes
-rw-r--r--Figs/even_example_label_nodir_dimers.pdfbin0 -> 12494 bytes
-rw-r--r--Figs/even_example_label_pre.pdfbin0 -> 12444 bytes
-rw-r--r--Figs/even_example_monomer_shadow.pdfbin0 -> 2260 bytes
-rw-r--r--Figs/even_example_phantom.pdfbin0 -> 12421 bytes
-rw-r--r--Jauslin_Trieste_2016.tex247
-rw-r--r--README35
-rw-r--r--header.sty16
-rw-r--r--kiss.cls51
-rw-r--r--presentation.sty110
-rw-r--r--toolbox.sty32
24 files changed, 491 insertions, 0 deletions
diff --git a/Figs/MD_example.pdf b/Figs/MD_example.pdf
new file mode 100644
index 0000000..312d5b3
--- /dev/null
+++ b/Figs/MD_example.pdf
Binary files differ
diff --git a/Figs/enclosed_example_auxiliary_cover.pdf b/Figs/enclosed_example_auxiliary_cover.pdf
new file mode 100644
index 0000000..78fea38
--- /dev/null
+++ b/Figs/enclosed_example_auxiliary_cover.pdf
Binary files differ
diff --git a/Figs/enclosed_example_auxiliary_thin.pdf b/Figs/enclosed_example_auxiliary_thin.pdf
new file mode 100644
index 0000000..2c75481
--- /dev/null
+++ b/Figs/enclosed_example_auxiliary_thin.pdf
Binary files differ
diff --git a/Figs/enclosed_example_cover_phantom.pdf b/Figs/enclosed_example_cover_phantom.pdf
new file mode 100644
index 0000000..3011c28
--- /dev/null
+++ b/Figs/enclosed_example_cover_phantom.pdf
Binary files differ
diff --git a/Figs/enclosed_example_phantom.pdf b/Figs/enclosed_example_phantom.pdf
new file mode 100644
index 0000000..5ac6b7e
--- /dev/null
+++ b/Figs/enclosed_example_phantom.pdf
Binary files differ
diff --git a/Figs/even_example.pdf b/Figs/even_example.pdf
new file mode 100644
index 0000000..6751c57
--- /dev/null
+++ b/Figs/even_example.pdf
Binary files differ
diff --git a/Figs/even_example_counterexample_label.pdf b/Figs/even_example_counterexample_label.pdf
new file mode 100644
index 0000000..9ab6f6c
--- /dev/null
+++ b/Figs/even_example_counterexample_label.pdf
Binary files differ
diff --git a/Figs/even_example_counterexample_label_dimers.pdf b/Figs/even_example_counterexample_label_dimers.pdf
new file mode 100644
index 0000000..0c9e854
--- /dev/null
+++ b/Figs/even_example_counterexample_label_dimers.pdf
Binary files differ
diff --git a/Figs/even_example_counterexample_monomer.pdf b/Figs/even_example_counterexample_monomer.pdf
new file mode 100644
index 0000000..b1812bc
--- /dev/null
+++ b/Figs/even_example_counterexample_monomer.pdf
Binary files differ
diff --git a/Figs/even_example_counterexample_monomer_dimers.pdf b/Figs/even_example_counterexample_monomer_dimers.pdf
new file mode 100644
index 0000000..26a75eb
--- /dev/null
+++ b/Figs/even_example_counterexample_monomer_dimers.pdf
Binary files differ
diff --git a/Figs/even_example_directed.pdf b/Figs/even_example_directed.pdf
new file mode 100644
index 0000000..59b93c5
--- /dev/null
+++ b/Figs/even_example_directed.pdf
Binary files differ
diff --git a/Figs/even_example_label.pdf b/Figs/even_example_label.pdf
new file mode 100644
index 0000000..cb20852
--- /dev/null
+++ b/Figs/even_example_label.pdf
Binary files differ
diff --git a/Figs/even_example_label_dimers.pdf b/Figs/even_example_label_dimers.pdf
new file mode 100644
index 0000000..5818af1
--- /dev/null
+++ b/Figs/even_example_label_dimers.pdf
Binary files differ
diff --git a/Figs/even_example_label_nodir.pdf b/Figs/even_example_label_nodir.pdf
new file mode 100644
index 0000000..adb55ff
--- /dev/null
+++ b/Figs/even_example_label_nodir.pdf
Binary files differ
diff --git a/Figs/even_example_label_nodir_dimers.pdf b/Figs/even_example_label_nodir_dimers.pdf
new file mode 100644
index 0000000..fae6236
--- /dev/null
+++ b/Figs/even_example_label_nodir_dimers.pdf
Binary files differ
diff --git a/Figs/even_example_label_pre.pdf b/Figs/even_example_label_pre.pdf
new file mode 100644
index 0000000..5ba8b2c
--- /dev/null
+++ b/Figs/even_example_label_pre.pdf
Binary files differ
diff --git a/Figs/even_example_monomer_shadow.pdf b/Figs/even_example_monomer_shadow.pdf
new file mode 100644
index 0000000..3cf09c0
--- /dev/null
+++ b/Figs/even_example_monomer_shadow.pdf
Binary files differ
diff --git a/Figs/even_example_phantom.pdf b/Figs/even_example_phantom.pdf
new file mode 100644
index 0000000..e90c3f7
--- /dev/null
+++ b/Figs/even_example_phantom.pdf
Binary files differ
diff --git a/Jauslin_Trieste_2016.tex b/Jauslin_Trieste_2016.tex
new file mode 100644
index 0000000..24b8eab
--- /dev/null
+++ b/Jauslin_Trieste_2016.tex
@@ -0,0 +1,247 @@
+\documentclass{kiss}
+\usepackage{presentation}
+\usepackage{header}
+
+\begin{document}
+\pagestyle{empty}
+\hbox{}\vfil
+\bf
+\large
+\hfil A Pfaffian formula\par
+\smallskip
+\hfil for monomer-dimer partition functions\par
+\vfil
+\hfil Ian Jauslin
+\rm
+\normalsize
+
+\vfil
+\small
+\hfil joint with {\normalsize\bf A.~Giuliani} and {\normalsize\bf E.H.~Lieb}\par
+\vskip10pt
+arXiv: {\tt1510.05027}\hfill{\tt http://ian.jauslin.org/}
+\eject
+
+\pagestyle{plain}
+\setcounter{page}{1}
+
+\title{Monomer-dimer system}
+\bigskip
+\hfil\includegraphics{Figs/even_example.pdf}
+\begin{itemize}
+\item Monomer: occupies a single vertex.
+\item Dimer: occupies an edge and its end-vertices.
+\item Monomer-Dimer (MD) covering: every vertex is occupied exactly once.
+\end{itemize}
+\eject
+
+\addtocounter{page}{-1}
+\title{Monomer-dimer system}
+\bigskip
+\hfil\includegraphics{Figs/MD_example.pdf}
+\begin{itemize}
+\item Monomer: occupies a single vertex.
+\item Dimer: occupies an edge and its end-vertices.
+\item Monomer-Dimer (MD) covering: every vertex is occupied exactly once.
+\end{itemize}
+\eject
+
+\title{Partition function}
+\begin{itemize}
+\item Weights: edges $d_e$, vertices $\ell_v$ (for simplicity, assume they are $\ge0$).
+\item Partition function:
+$$
+\Xi(\bm\ell,\mathbf d)=\sum_{\mathrm{MD\ coverings}}\prod_{\mAthop{e:}_{\mAthop{\mathrm{occupied}}_{\mathrm{by\ dimer}}}}d_e\prod_{\mAthop{v:}_{\mAthop{\mathrm{occupied}}_{\mathrm{\ by\ monomer}}}}\ell_v.
+$$
+\end{itemize}
+\eject
+
+\title{Kasteleyn's theorem}
+\begin{itemize}
+\item If there are {\bf no monomers} (i.e. $\ell_v=0$ for all $v$), then $\Xi$ counts pairs of neighboring vertices:
+$$
+\Xi(\mathbf0,\mathbf d)=\frac1{n!2^n}\sum_{\pi\in\mathcal S_{2n}}\prod_{i=1}^nd_{(\pi(2i-1),\pi(2i))}.
+$$
+\end{itemize}
+\hfil\includegraphics[width=3cm]{Figs/even_example_label_nodir.pdf}
+\eject
+
+\title{Kasteleyn's theorem}
+\begin{itemize}
+\item If there are {\bf no monomers} (i.e. $\ell_v=0$ for all $v$), then $\Xi$ counts pairs of neighboring vertices:
+$$
+\Xi(\mathbf0,\mathbf d)=\frac1{n!2^n}\sum_{\pi\in\mathcal S_{2n}}\prod_{i=1}^nd_{(\pi(2i-1),\pi(2i))}.
+$$
+\end{itemize}
+\hfil\includegraphics[width=3cm]{Figs/even_example_label_nodir_dimers.pdf}
+\eject
+
+\title{Kasteleyn's theorem}
+\begin{itemize}
+\item Assume, in addition, that the graph is {\bf planar}.
+\item [Kasteleyn, 1963]: {\color{blue}Direct} the graph in such a way that, for every face, moving along the boundary of the face in the counterclockwise direction, the number of arrows going against the motion is odd.
+\end{itemize}
+\hfil\includegraphics{Figs/even_example_directed.pdf}
+\eject
+
+\title{Kasteleyn's theorem}
+\begin{itemize}
+\item Recall
+$$
+\Xi(\mathbf0,\mathbf d)=\frac1{n!2^n}\sum_{\pi\in\mathcal S_{2n}}\prod_{i=1}^nd_{(\pi(2i-1),\pi(2i))}.
+$$
+\item Kasteleyn's theorem: if $s_{i,j}:=+1$ if $i\rightarrow j$ and $-1$ if $j\rightarrow i$, then
+$$
+\Xi(\mathbf0,\mathbf d)=\left|\frac1{n!2^n}\sum_{\pi\in\mathcal S_{2n}}(-1)^\pi\prod_{i=1}^nd_{(\pi(2i-1),\pi(2i))}s_{\pi(2i-1),\pi(2i)}\right|.
+$$
+\item In other words, $(-1)^\pi\prod_{i=1}^ns_{\pi(2i-1),\pi(2i)}$ is {\color{blue} independent} of $\pi$.
+\end{itemize}
+\eject
+
+\title{Kasteleyn's theorem}
+\begin{itemize}
+\item $(-1)^\pi\prod_{i=1}^ns_{\pi(2i-1),\pi(2i)}$:
+\end{itemize}
+\hfil\includegraphics{Figs/even_example_label_dimers.pdf}
+\eject
+
+\title{Kasteleyn's theorem}
+\begin{itemize}
+\item Recall
+$$
+\Xi(\mathbf0,\mathbf d)=\left|\frac1{n!2^n}\sum_{\pi\in\mathcal S_{2n}}(-1)^\pi\prod_{i=1}^nd_{(\pi(2i-1),\pi(2i))}s_{\pi(2i-1),\pi(2i)}\right|.
+$$
+\item Introducing an antisymmetric matrix $a$ with entries $a_{i,j}:=d_{(i,j)}s_{i,j}$ for $i<j$,
+$$
+\Xi(\mathbf0,\mathbf d)=|\mathrm{pf}(a)|
+$$
+with
+$$
+\mathrm{pf}(a)=\frac1{n!2^n}\sum_{\pi\in\mathcal S_{2n}}(-1)^\pi\prod_{i=1}^na_{\pi(2i-1),\pi(2i)}.
+$$
+\item Determinantal relation: $\mathrm{pf(a)}^2=\det(a)$.
+\end{itemize}
+\eject
+
+\title{Boundary monomers}
+\begin{itemize}
+\item Assume the monomers are on the {\bf boundary} of the graph.
+\item If the monomers are fixed, the MD partition function reduces to a pure dimer partition function on a sub-graph.
+\end{itemize}
+\hfil\includegraphics{Figs/even_example_monomer_shadow.pdf}
+\eject
+
+\title{Boundary monomers}
+\begin{itemize}
+\item By Kasteleyn's theorem
+$$
+\Xi(\bm\ell,\mathbf d)=\sum_{\mathcal M:\ \mathrm{monomers}}\left|\mathrm{pf}([a]_{\mathcal M})\right|\prod_{v\in\mathcal M}\ell_v
+$$
+where $[a]_{\mathcal M}$ is obtained from $a$ by removing the lines and columns corresponding to vertices in $\mathcal M$.
+\item[Lieb, 1968]: if $A_{i,j}=a_{i,j}+(-1)^{i+j}\ell_i\ell_j$ for $i<j$ and $A_{j,i}=-A_{i,j}$, then
+$$\mathrm{pf}(A)=\sum_{\mathcal M}\mathrm{pf}([a]_{\mathcal M})\prod_{v\in\mathcal M}\ell_v.$$
+\end{itemize}
+\eject
+
+\title{Boundary monomers}
+\begin{itemize}
+\item Question: is the sign of $\mathrm{pf}([a]_{\mathcal M})$ independent of $\mathcal M$?
+\item In general, no:
+\end{itemize}
+\hfil\includegraphics{Figs/even_example_counterexample_label.pdf}
+\eject
+
+\addtocounter{page}{-1}
+\title{Boundary monomers}
+\begin{itemize}
+\item Question: is the sign of $\mathrm{pf}([a]_{\mathcal M})$ independent of $\mathcal M$?
+\item In general, no:
+\end{itemize}
+\hfil\includegraphics{Figs/even_example_counterexample_label_dimers.pdf}
+\eject
+
+\addtocounter{page}{-1}
+\title{Boundary monomers}
+\begin{itemize}
+\item Question: is the sign of $\mathrm{pf}([a]_{\mathcal M})$ independent of $\mathcal M$?
+\item In general, no:
+\end{itemize}
+\hfil\includegraphics{Figs/even_example_counterexample_monomer.pdf}
+\eject
+
+\addtocounter{page}{-1}
+\title{Boundary monomers}
+\begin{itemize}
+\item Question: is the sign of $\mathrm{pf}([a]_{\mathcal M})$ independent of $\mathcal M$?
+\item In general, no:
+\end{itemize}
+\hfil\includegraphics{Figs/even_example_counterexample_monomer_dimers.pdf}
+\eject
+
+\title{Boundary monomers}
+\begin{itemize}
+\item The vertices must be labeled and the edges directed correctly.
+\end{itemize}
+\hfil\includegraphics{Figs/even_example_phantom.pdf}
+\eject
+
+\addtocounter{page}{-1}
+\title{Boundary monomers}
+\begin{itemize}
+\item The vertices must be labeled and the edges directed correctly.
+\end{itemize}
+\hfil\includegraphics{Figs/even_example_label_pre.pdf}
+\eject
+
+\addtocounter{page}{-1}
+\title{Boundary monomers}
+\begin{itemize}
+\item The vertices must be labeled and the edges directed correctly.
+\end{itemize}
+\hfil\includegraphics{Figs/even_example_label.pdf}
+\eject
+
+\title{Main theorem}
+\vfill
+\begin{framed}
+Every {\bf planar} graph can be labeled and directed in such a way that the {\bf boundary} monomer-dimer partition function is
+$$
+\Xi(\bm\ell,\mathbf d)=\mathrm{pf}(A)
+$$
+with $A_{i,j}=d_{(i,j)}s_{i,j}+(-1)^{i+j}\ell_i\ell_j$ for $i<j$.
+\end{framed}
+\vfill
+\eject
+
+\title{Sketch of the proof}
+\hfil\includegraphics[width=6cm]{Figs/enclosed_example_phantom.pdf}
+\eject
+
+\addtocounter{page}{-1}
+\title{Sketch of the proof}
+\hfil\includegraphics[width=6cm]{Figs/enclosed_example_auxiliary_thin.pdf}
+\eject
+
+\addtocounter{page}{-1}
+\title{Sketch of the proof}
+\hfil\includegraphics[width=6cm]{Figs/enclosed_example_cover_phantom.pdf}
+\eject
+
+\addtocounter{page}{-1}
+\title{Sketch of the proof}
+\hfil\includegraphics[width=6cm]{Figs/enclosed_example_auxiliary_cover.pdf}
+\eject
+
+\title{Boundary monomer correlations}
+\begin{itemize}
+\item Monomer correlations at close packing:
+$$
+M_n(i_1,\cdots,i_{2n})=\frac1{\Xi(\mathbf0,\mathbf d)}\left.\frac{\partial^{2n}\Xi(\bm\ell,\mathbf d)}{\partial\ell_{i_1}\cdots\partial\ell_{i_{2n}}}\right|_{\bm\ell=\mathbf0}.
+$$
+\item Fermionic Wick rule:
+$$
+M_n(i_1,\cdots,i_{2n})=\frac1{n!2^n}\sum_{\pi\in\mathcal S_{2n}}(-1)^\pi\prod_{j=1}^nM_1(i_{\pi(2j-1)},i_{\pi(2j)}).
+$$
+\end{itemize}
+
+\end{document}
diff --git a/README b/README
new file mode 100644
index 0000000..9d65773
--- /dev/null
+++ b/README
@@ -0,0 +1,35 @@
+* Typeset
+
+In order to typeset the LaTeX presentation, run
+ pdflatex Jauslin_Trieste_2015.tex
+ pdflatex Jauslin_Trieste_2015.tex
+
+
+* Files
+
+ Jauslin_Rutgers_2015.tex
+ body of the presentation.
+
+ Figs :
+ figures.
+
+ header.sty :
+ packages and local definitions
+
+ presentation.sty :
+ presentation style file.
+
+ kiss.cls :
+ barebones class file
+
+ toolbox.sty :
+ useful commands
+
+
+* Comment on the presentation style
+
+This presentation is typeset using the 'presentation.sty' style file, in which
+the margins and sizes are set to make the output look like a presentation, and
+several useful commands are defined.
+
+The LaTeX 'beamer' package is not used.
diff --git a/header.sty b/header.sty
new file mode 100644
index 0000000..e097e71
--- /dev/null
+++ b/header.sty
@@ -0,0 +1,16 @@
+%%
+%% Load packages
+%%
+
+\usepackage{color}
+\usepackage[hidelinks]{hyperref}
+\usepackage{graphicx}
+\usepackage{amsfonts}
+\usepackage{amssymb}
+\usepackage{array}
+\usepackage{etoolbox}
+\usepackage{dsfont}
+\usepackage{bm}
+\usepackage{toolbox}
+\usepackage{framed}
+
diff --git a/kiss.cls b/kiss.cls
new file mode 100644
index 0000000..7f0029f
--- /dev/null
+++ b/kiss.cls
@@ -0,0 +1,51 @@
+%%
+%% Barebones class declaration
+%%
+
+\NeedsTeXFormat{LaTeX2e}[1995/12/01]
+\ProvidesClass{kiss}
+
+\setlength\paperheight {297mm}
+\setlength\paperwidth {210mm}
+
+%% fonts
+\input{size11.clo}
+\DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm}
+\DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf}
+\DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt}
+\DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf}
+\DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit}
+\DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl}
+\DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc}
+
+%% something is wrong with \thepage, redefine it
+\gdef\thepage{\the\c@page}
+
+%% array lines
+\setlength\arraycolsep{5\p@}
+\setlength\arrayrulewidth{.4\p@}
+
+
+%% default offsets: 1in, correct with \hoffset and \voffset
+%\hoffset=0pt
+\hoffset=-50pt
+%\voffset=0pt
+\voffset=-72pt
+%% horizontal margins
+%\oddsidemargin=31pt
+%\evensidemargin=31pt
+%% vertical margin
+%\topmargin=20pt
+%% body size
+%\textwidth=390pt
+\textwidth=460pt
+%\textheight=592pt
+\textheight=704pt
+%% header size and margin
+%\headheight=12pt
+%\headsep=25pt
+%% footer size
+%\footskip=30pt
+%% margin size and margin
+%\marginparwidth=35pt
+%\marginparsep=10pt
diff --git a/presentation.sty b/presentation.sty
new file mode 100644
index 0000000..e55928f
--- /dev/null
+++ b/presentation.sty
@@ -0,0 +1,110 @@
+%%
+%% Presentation style
+%%
+
+%% can call commands even when they are not defined
+\def\safe#1{%
+\ifdefined#1%
+#1%
+\else%
+{\color{red}\bf?}%
+\fi%
+}
+
+
+%% paper size
+\setlength\paperheight{240pt}
+\setlength\paperwidth{320pt}
+
+%% body size
+% height=paperheight-2xtopmargin-footskip
+\textheight=208pt
+% width=paperwidth-2xoddsidemargin
+\textwidth=272pt
+
+%% margins
+\voffset=-1in
+\hoffset=-1in
+\oddsidemargin=24pt
+\evensidemargin=24pt
+\topmargin=8pt
+\headheight=0pt
+\headsep=0pt
+\marginparsep=0pt
+\marginparwidth=0pt
+\footskip=16pt
+\skip\footins=0pt
+
+%% reset skips
+\parskip=0pt
+\parindent=0pt
+\baselineskip=0pt
+\AtBeginDocument{
+}
+
+%% footer
+\def\ps@plain{
+ \def\@oddhead{}
+ \def\@evenhead{\@oddhead}
+ \def\@oddfoot{\tiny\hfill\thepage/\safe\slidecount\hfill}
+ \def\@evenfoot{\@oddfoot}
+}
+\def\ps@empty{
+ \def\@oddhead{}
+ \def\@evenhead{\@oddhead}
+ \def\@oddfoot{}
+ \def\@evenfoot{\@oddfoot}
+}
+
+%% save total slide count
+\AtEndDocument{
+ \immediate\write\@auxout{\noexpand\gdef\noexpand\slidecount{\thepage}}
+}
+
+\pagestyle{plain}
+
+%% title of slide
+\def\title#1{
+ \hfil{\bf\large #1}\par
+ \hfil\vrule width0.75\textwidth height0.3pt\par
+ \vskip5pt
+}
+
+%% itemize
+\newlength\itemizeskip
+% left margin for items
+\setlength\itemizeskip{20pt}
+% item symbol
+\def\itemizept{\textbullet}
+\newlength\itemizeseparator
+% space between the item symbol and the text
+\setlength\itemizeseparator{5pt}
+
+\newlength\current@itemizeskip
+\setlength\current@itemizeskip{0pt}
+\def\itemize{
+ \vfil
+ \addtolength\current@itemizeskip{\itemizeskip}
+ \leftskip\current@itemizeskip
+}
+\def\enditemize{
+ \addtolength\current@itemizeskip{-\itemizeskip}
+ \par\leftskip\current@itemizeskip
+ \vfil
+}
+\newlength\itempt@total
+\def\item{
+ \settowidth\itempt@total{\itemizept}
+ \addtolength\itempt@total{\itemizeseparator}
+ \par
+ \vfil
+ \hskip-\itempt@total\itemizept\hskip\itemizeseparator
+}
+
+\def\itemptchange#1{
+ \let\itempt@prev\itemizept
+ \def\itemizept{#1}
+}
+\def\itemptreset{
+ \def\itemizept{\itempt@prev}
+}
diff --git a/toolbox.sty b/toolbox.sty
new file mode 100644
index 0000000..04c8acd
--- /dev/null
+++ b/toolbox.sty
@@ -0,0 +1,32 @@
+%%
+%% A collection of useful commands
+%%
+
+%% can call commands even when they are not defined
+\def\safe#1{%
+\ifdefined#1%
+#1%
+\else%
+{\color{red}\bf?}%
+\fi%
+}
+
+
+%% larger skip
+\newskip\hugeskipamount
+ \hugeskipamount=24pt plus8pt minus8pt
+\def\hugeskip{\vskip\hugeskipamount}
+
+
+%% stack relations in subscript or superscript
+\def\mAthop#1{\displaystyle\mathop{\scriptstyle #1}}
+
+%% array spanning the entire line
+\newlength\largearray@width
+\setlength\largearray@width\textwidth
+\addtolength\largearray@width{-10pt}
+\def\largearray{\begin{array}{@{}>{\displaystyle}l@{}}\hphantom{\hspace{\largearray@width}}\\[-.5cm]}
+\def\endlargearray{\end{array}}
+
+%% qedsquare
+\def\qed{\penalty10000\hfill\penalty10000$\square$}