On Matching Concurrent Traces
نویسندگان
چکیده
Concurrent traces are sequences of computational steps where independent steps can be permuted and executed in any order. We study the problem of matching on concurrent traces. We give a sound and complete algorithm for matching traces with one variable standing for an unknown subtrace. 1 State-Transition Concurrency Computation in a concurrent system results from the interactions of computing units such as threads or agents. One popular approach to modeling concurrent computation views each such agent as being able to perform local transformations on a global state, possibly in parallel. This is the approach embraced by Petri nets [5]. This is also the approach underlying propositional multiset rewriting, which we will now describe in further detail. A multiset rewriting system is determined by a set of rules of the form ã→ b̃, where ã and b̃ are multisets over some support set S. We write “·” for the empty multiset and “ã, b̃” for the union of multisets ã and b̃. Multiset union is associative and commutative, and has the empty multiset as its unit. Therefore, the set of multisets over S is a commutative monoid with respect to “,” and “·”. We give each rule ã→ b̃ with a unique name, r, writing the association as r : ã→ b̃. We write R for a set of labeled rules. A state s is a set of pairs x : a where a ∈ S is an element of the support set and x is a unique name. Abusing notation, we occasionally write such a state as x̃ : ã, where ã is the multiset of the support set element occurrences in s and x̃ the corresponding names. We also use “,” for set union in the context of states. A rule r : ã → b̃ in a multiset rewriting system R is enabled in a state s if s = s′, (x̃ : ã), i.e., if s contains its antecedent. In this circumstance, the application of r to s results in the state s′′ = s′, (ỹ : b̃) where ỹ are fresh names: the portion of s matching ã has been replaced with new state elements for b̃. The triple r(x̃; ỹ), generically denoted t, is a rule instance, or transition. We call x̃ : ã the pre-condition of t and denote it as •t and ỹ : b̃ its post-condition, denoted t•. We formalize the state transformation embodied by the application of a rule 2 J.L. Sacchini, I. Cervesato, F. Pfenning, C. Schürmann, R.J. Simmons by means of the multiset rewriting judgment R ` s t −→ s′′. Then, application is defined simply as R, (r : ã→ b̃) ` s′, x̃ : ã } {{ } s r(x̃;ỹ) −→ s′, ỹ : b̃ } {{ } s′′ or more succinctly as R ` s′, •t t −→ s′, t• for t an instance of a rule r ∈ R. Multistep computation is obtained by iterating application. We write R ` s t =⇒ s′ for the reflexive and transitive closure of our base judgment, where t records the rules that have been applied to go from s to s′. It is defined by the following grammar: t ::= · | r(x̃; ỹ) | t1; t2 We call t a trace. Here, “·” represents the empty trace and “t1; t2” is the concatenation of t1 and t2. A concurrent trace t can be interpreted as a bipartite directed acyclic graph (BDAG) G = (N1, N2, E) where N1 is the set of transitions t in t and N2 is the set of state elements x : a mentioned in t. There is an edge from x : a to t = r(x̃; ỹ) if and only if x occurs in x̃, and there is an edge from t to y : b iff y occurs in ỹ. These BDAGs are exactly what we get by graphically unfolding the computation of a place/transition Petri net.
منابع مشابه
A Concurrent Dual-Band Low Noise Amplifier for GNSS Receivers
In this paper, a new design of concurrent dual-band Low Noise Amplifier (LNA) for multi-band single-channel Global Navigation Satellite System (GNSS) receivers is proposed. This new structure is able to operate concurrently at frequency of 1.2 and 1.57 GHz. Parallel and series resonance parts are employed in the input matching in order to achieve concurrent performance. With respect to used pse...
متن کاملOn the Synchronization of Semi-Traces
The synchronization of two or more semi-traces describes the possible evaluation of a concurrent system, which consists of two or more concurrent subsystems in a modular way, where communication between the subsystems restricts the order of the actions. In this paper we give criteria, which tell us for given semi-traces in given semicommutation systems, whether they are synchronizable and wheth...
متن کاملError Invariants for Concurrent Traces
Error invariants are assertions that over-approximate the reachable program states at a given position in an error trace while only capturing states that will still lead to failure if execution of the trace is continued from that position. Such assertions reflect the effect of statements that are involved in the root cause of an error and its propagation, enabling slicing of statements that do ...
متن کاملTowards matching user mobility traces in large-scale datasets
The problem of unicity and reidentifiability of records in large-scale databases has been studied in different contexts and approaches, with focus on preserving privacy or matching records from different data sources. With an increasing number of service providers nowadays routinely collecting location traces of their users on unprecedented scales, there is a pronounced interest in the possibil...
متن کاملAbstraction and Mining of Traces to Explain Concurrency Bugs
ion and Mining of Traces to Explain Concurrency Bugs Mitra Tabaei Befrouei1∗, Chao Wang2†, and Georg Weissenbacher 1 Vienna University of Technology 2 Virginia Tech Abstract. We propose an automated mining-based method for explaining concurrency bugs. We use a data mining technique called sequential pattern mining to identify problematic sequences of concurrent read and write accesses to the sh...
متن کامل