\medskip
}
-\def\proclaim#1{\advance\thmcount by 1
+\def\para{\advance\thmcount by 1
\edef\currentid{\the\chapcount.\the\seccount.\the\thmcount}
-\noindent {\bo \currentid.\enspace #1.\enspace}}
+\noindent {\bo \currentid.\enspace}}
+
+\def\proclaim#1{\para {\bo #1.\enspace}}
\def\thm{\proclaim{Theorem}}
\def\lemma{\proclaim{Lemma}}
structure will contain a pointer to the corresponding bucket and the vertex list will
define the order of vertices (which can be arbitrary).
+\para
Graph contractions are indeed a~very powerful tool and they can be used in other MST
algorithms as well. The following lemma shows the gist:
\FIXME{Mention Thorup's Fibonacci-like heaps for integers?}
+\rem
+For sparse graphs, we can cross-breed this algorithm with the contractive
+Bor\o{u}vka's algorithm: First perform $\log\log n$ steps of contractive
+Bor\o{u}vka, which takes $\O(m\log\log n)$ time and produces a~graph~$G'$
+with $m'\le m$ and $n'\le n/\log n$. Then run Algorithm~\ref{jarniktwo} on~$G'$
+and it finishes in time $\O(m'+n'\log n') = \O(m)$. Finally combine MST edges
+found by both algorithms to a~single tree as in~the Contraction lemma (\ref{contlemma}).
+
+\para Xyzzy.
+
+\FIXME{Describe the heap limitation trick and the $\O(m\beta(m,n))$ algorithm.}
+
+
+% use \para
% G has to be connected, so m=O(n)
% mention Steiner trees
% mention matroids
\n{$\deg_G(v)$}{degree of vertex~$v$ in graph~$G$; we omit $G$ if it is clear from context}
\n{${\bb E}X$}{expected value of a~random variable~$X$}
\n{${\rm Pr}[\varphi]$}{probability that a predicate~$\varphi$ is true}
+\n{$\log n$}{a binary logarithm of the number~$n$}
}
\section{Multigraphs and contractions}