7 research outputs found
Trace Spaces: an Efficient New Technique for State-Space Reduction
State-space reduction techniques, used primarily in model-checkers, all rely
on the idea that some actions are independent, hence could be taken in any
(respective) order while put in parallel, without changing the semantics. It is
thus not necessary to consider all execution paths in the interleaving
semantics of a concurrent program, but rather some equivalence classes. The
purpose of this paper is to describe a new algorithm to compute such
equivalence classes, and a representative per class, which is based on ideas
originating in algebraic topology. We introduce a geometric semantics of
concurrent languages, where programs are interpreted as directed topological
spaces, and study its properties in order to devise an algorithm for computing
dihomotopy classes of execution paths. In particular, our algorithm is able to
compute a control-flow graph for concurrent programs, possibly containing
loops, which is "as reduced as possible" in the sense that it generates traces
modulo equivalence. A preliminary implementation was achieved, showing
promising results towards efficient methods to analyze concurrent programs,
with very promising results compared to partial-order reduction techniques
Trace spaces of directed tori with rectangular holes
Raussen (2010) gave the trace space, which corresponds to the executions of parallel non-looped, non-branching processes as a prod-simplicial complex derived from a poset. The connected components represent equivalent executions. For looped processes, the state space is a torus and the trace space is a disjoint union of trace spaces of deloopings. In the current paper, we develop the index poset for the trace space of the deloopings from the once delooped case. When just one process is looped, the index poset is generated as words in a regular language. We also construct a corresponding automaton.</jats:p