Counting and Sampling Traces in Regular Languages
Abstract
In this work, we study the problems of counting and sampling Mazurkiewicz traces that a regular language touches. Fix an alphabet and an independence relation . The input consists of a regular language , given by a finite automaton with states, and a natural number (in unary). For the counting problem, the goal is to compute the number of Mazurkiewicz traces (induced by ) that intersect the slice , i.e., traces that admit at least one linearization in . For the sampling problem, the goal is to output a trace drawn from a distribution that is approximately uniform over all such traces. These tasks are motivated by bounded model checking with partial-order reduction, where an \emph{a priori} estimate of the reduced state space is valuable, and by testing methods for concurrent programs that use partial-order-aware random exploration. We first show that the counting problem is #P-hard even when is accepted by a deterministic automaton, in sharp contrast to counting words of a DFA, which is polynomial-time solvable. We then prove that the problem lies in #P for both NFAs and DFAs, irrespective of whether is trace-closed. Our main algorithmic contributions are a \emph{fully polynomial-time randomized approximation scheme} (FPRAS) that, with high probability, approximates the desired count within a prescribed accuracy, and a \emph{fully polynomial-time almost uniform sampler} (FPAUS) that generates traces whose distribution is provably close to uniform.
Cite
@article{arxiv.2512.00314,
title = {Counting and Sampling Traces in Regular Languages},
author = {Alexis de Colnet and Kuldeep S. Meel and Umang Mathur},
journal= {arXiv preprint arXiv:2512.00314},
year = {2025}
}
Comments
To appear in POPL 2026. Author order is random