Proofs: Nested dissection
These are the human proofs of Nested dissection, at full length.
Nested dissection returns a permutation, and ordering a separator after the parts it separates creates no fill between those parts full
This proof shows: correctness, termination.
Let be the graph of a symmetric pattern with . Line numbers refer to the pseudocode of the page. For an ordering, is the position of , and is the symbolic Cholesky factor: for exactly when the elimination graph model of the fill-in page puts an edge between the vertices numbered and when is eliminated.
Lemma 1 (the level separator). Let induce a connected subgraph with a level structure from a root, , and let . Let be the set of vertices of with a neighbour in . Then , and has no edge between and , both of which are nonempty.
Proof. Every vertex of has a neighbour in (its predecessor in the search), so . Edges of a level structure join the same or adjacent levels. An edge from to would join to , which contradicts the definition of . and .
The implementation picks at the level where the cumulative count first reaches , clamped to . When it orders the part by minimum degree instead.
Termination and permutation. Every task on the stack holds a vertex set, and the sets of the tasks on the stack together with the vertices already in the order always partition . This holds initially with the single task . Each step replaces a split task by one of three things:
- its components (line L5);
- its vertices appended to the order (line L6);
- an emit task for and split tasks for the components of (lines L7 to L9).
An emit task appends its set. So each vertex is appended exactly once, and when the stack is empty, the order is a permutation. A split task on a disconnected set produces strictly smaller tasks. A split task on a connected set either ends at line L6 or, by Lemma 1, produces a nonempty and strictly smaller parts. So the multiset of task sizes decreases in the well-founded multiset order, and the loop ends. At most split and emit tasks are created.
Lemma 2 (dissection order). When a split task for a set is processed with separator and parts , all vertices of are appended before any vertex of . Every neighbour of outside is appended after all of .
Proof. The stack is last in, first out. The emit task for is pushed below the split tasks of the parts, so it is popped only after those tasks and everything they push have been processed. For the second claim, induct on the dissection tree. A neighbour of outside lies in no sibling part, because parts are components after removing the separators. So it lies in the separator of some ancestor task, which by the first claim is appended after all of that ancestor's parts, and is inside one of them. Component splits at line L5 have no edges between them.
Theorem 1 (no fill between parts). In the order produced, whenever the vertices numbered and lie in different parts of the same split.
Proof. By the path theorem of Rose, Tarjan and Lueker (1976), for if and only if has a path between the two vertices whose interior vertices are all numbered below . Take and , and any path between them in . It cannot stay inside , since these are different components of . So it contains a vertex of or a vertex outside . By Lemma 2 such a vertex is numbered after both and . Hence no path qualifies, and .
So restricted to a split has the block form
where the zero blocks stay zero. The two parts are factored independently, and only the separator block, a dense Schur complement in general, couples them. The tests check Theorem 1 on random geometric graphs.
Theorem 2 (fill and work on the grid; cited). For the five-point grid, , the cross-shaped nested dissection of George (1973) gives and about multiplications, and every ordering has and work (Hoffman, Martin and Rose, 1973). We do not reproduce these counts.
The recurrence behind the upper bounds is elementary. If is the work of a square of side whose boundary is already numbered later, then . The term is the dense factorization of a separator block of order . Hence . The same count for storage gives , hence . The tests check both orders of growth with explicit constants for .
Floating point. Theorem 1 is structural and holds for computed factors too, because exact zeros are never updated. Cholesky of , when it runs to completion, satisfies with (Higham, Theorem 10.3) for every ordering. The tests verify this elementwise with exact rational residuals on grid matrices in nested dissection order.