Data Structures for Finite Downsets of Natural Vectors: Theory and Practice
Michaël Cadilhac, Vanessa Flügel, Guillermo A. Pérez, Shrisha Rao
TL;DR
This work analyzes antichain data structures for finite downward-closed sets of vectors in $\mathbb{N}^k$, comparing list-, sharing-tree-, and kd-tree-based approaches. It shows kd-trees can be asymptotically superior when antichains grow exponentially relative to the dimension, but real-world verification benchmarks (LTL realizability and parity games) typically do not reach those regimes. The authors implement optimized, parallelized variants and provide empirical results indicating that list-based or sharing-tree-based structures often perform best or dominate in practice, with memory considerations favoring lists. The study offers practical guidance on selecting data structures and suggests dynamic switching strategies to blend representations depending on size, dimension, and problem instance characteristics.
Abstract
Manipulating downward-closed sets of vectors forms the basis of so-called antichain-based algorithms in verification. In that context, the dimension of the vectors is intimately tied to the size of the input structure to be verified. In this work, we formally analyze the complexity of classical list-based algorithms to manipulate antichains as well as that of Zampuniéris's sharing trees and traditional and novel kdtree-based antichain algorithms. In contrast to the existing literature, and to better address the needs of formal verification, our analysis of \kdtree algorithms does not assume that the dimension of the vectors is fixed. Our theoretical results show that kdtrees are asymptotically better than both list- and sharing-tree-based algorithms, as an antichain data structure, when the antichains become exponentially larger than the dimension of the vectors. We evaluate this on applications in the synthesis of reactive systems from linear-temporal logic and parity-objective specifications, and establish empirically that current benchmarks for these computational tasks do not lead to a favorable situation for current implementations of kdtrees.
