|
|
| Line 1: |
Line 1: |
| In mathematics and computer science, a '''trace''' is a set of strings, wherein certain letters in the string are allowed to [[commutative property|commute]], but others are not. It generalizes the concept of a string, by not forcing the letters to always be in a fixed order, but allowing certain reshufflings to take place. Traces were introduced by Cartier and Foata in 1969 to give a combinatorial proof of [[MacMahon's Master theorem]]. Traces are used in theories of [[Parallel computing|concurrent computation]], where commuting letters stand for portions of a job that can execute independently of one another, while non-commuting letters stand for locks, [[synchronization (computer science)|synchronization point]]s or [[thread (computing)|thread join]]s.<ref name=CS161>Sándor & Crstici (2004) p.161</ref>
| | Friends contact him Royal Seyler. Delaware is our birth location. My occupation is a messenger. One of my favorite hobbies is tenting and now I'm attempting to make cash with it.<br><br>My blog post ... [http://www.harrietoneilllaw.com/node/495947 extended vehicle warranty] |
| | |
| The '''trace monoid''' or '''free partially commutative monoid''' is a monoid of traces. In a nutshell, it is constructed as follows: sets of commuting letters are given by an [[Dependency relation|independency relation]]. These induce an equivalence relation of equivalent strings; the elements of the equivalence classes are the traces. The equivalence relation then partitions up the free monoid (the set of all strings of finite length) into a set of equivalence classes; the result is still a monoid; it is a [[Semigroup|quotient monoid]] and is called the ''trace monoid''. The trace monoid is universal, in that all [[homomorphism|homomorphic]] monoids are in fact isomorphic.
| |
| | |
| Trace monoids are commonly used to model [[Parallel computing|concurrent computation]], forming the foundation for [[process calculus|process calculi]]. They are the object of study in trace theory. The utility of trace monoids comes from the fact that they are isomorphic to the monoid of dependency graphs; thus allowing algebraic techniques to be applied to graphs, and vice-versa. They are also isomorphic to history monoids, which model the history of computation of individual processes in the context of all scheduled processes on one or more computers.
| |
| | |
| ==Trace==
| |
| Let <math>\Sigma^*</math> denote the free monoid, that is, the set of all strings written in the alphabet <math>\Sigma</math>. Here, the asterisk denotes, as usual, the [[Kleene star]]. An [[Dependency relation|independency relation]] <math>I</math> then induces a binary relation <math>\sim</math> on <math>\Sigma^*</math>, where <math>u\sim v\,</math> if and only if there exist <math>x,y\in \Sigma^*</math>, and a pair <math>(a,b)\in I</math> such that <math>u=xaby</math> and <math>v=xbay</math>. Here, <math>u,v,x</math> and <math>y</math> are understood to be strings (elements of <math>\Sigma^*</math>), while <math>a</math> and <math>b</math> are letters (elements of <math>\Sigma</math>).
| |
| | |
| The '''trace''' is defined as the symmetric, reflexive and transitive closure of <math>\sim</math>. The trace is thus an equivalence relation on <math>\Sigma^*</math>, and is denoted by <math>\equiv_D</math>. The subscript ''D'' on the equivalence simply denotes that the equivalence is obtained from the independency ''I'' induced by the dependency ''D''. Clearly, different dependencies will give different equivalence relations.
| |
| | |
| The [[transitive closure]] simply implies that <math>u\equiv v</math> if and only if there exists a sequence of strings <math>(w_0,w_1,\cdots,w_n)</math> such that <math>u\sim w_0\,</math> and <math>v\sim w_n\,</math> and <math>w_i\sim w_{i+1}\,</math> for all <math>0\le i < n</math>.
| |
| | |
| ==Trace monoid==
| |
| The trace monoid, commonly denoted as <math>\mathbb {M}(D)</math>, is defined as the quotient monoid
| |
| | |
| :<math>\mathbb {M}(D) = \Sigma^* / \equiv_D.</math>
| |
| | |
| The homomorphism
| |
| :<math>\phi_D:\Sigma^*\to \mathbb {M}(D)</math>
| |
| | |
| is commonly referred to as the [[natural transformation|natural homomorphism]] or '''canonical homomorphism'''. That the terms ''natural'' or ''canonical'' are deserved follows from the fact that this morphism embodies a universal property, as discussed in a later section.
| |
| | |
| ==Examples==
| |
| Consider the alphabet <math>\Sigma=\{a,b,c\}</math>. A possible dependency relation is
| |
| | |
| :<math>\begin{matrix} D
| |
| &=& \{a,b\}\times\{a,b\} \quad \cup \quad \{a,c\}\times\{a,c\} \\
| |
| &=& \{a,b\}^2 \cup \{a,c\}^2 \\
| |
| &=& \{ (a,b),(b,a),(a,c),(c,a),(a,a),(b,b),(c,c)\}
| |
| \end{matrix}</math>
| |
| | |
| The corresponding independency is
| |
| | |
| :<math>I_D=\{(b,c)\,,\,(c,b)\}</math>
| |
| | |
| Therefore, the letters <math>b,c</math> commute. Thus, for example, a trace equivalence class for the string <math>abababbca</math> would be
| |
| | |
| :<math>[abababbca]_D = \{abababbca\,,\; abababcba\,,\; ababacbba \}</math>
| |
| | |
| The equivalence class <math>[abababbca]_D</math> is an element of the trace monoid.
| |
| | |
| ==Properties==
| |
| The '''cancellation property''' states that equivalence is maintained under [[String operations|right cancellation]]. That is, if <math>w\equiv v</math>, then <math>(w\div a)\equiv (v\div a)</math>. Here, the notation <math>w\div a</math> denotes right cancellation, the removal of the first occurrence of the letter ''a'' from the string ''w'', starting from the right-hand side. Equivalence is also maintained by left-cancellation. Several corollaries follow:
| |
| | |
| * Embedding: <math>w \equiv v</math> if and only if <math>xwy\equiv xvy</math> for strings ''x'' and ''y''. Thus, the trace monoid is a syntactic monoid.
| |
| | |
| * Independence: if <math>ua\equiv vb</math> and <math>a\ne b</math>, then ''a'' is independent of ''b''. That is, <math>(a,b)\in I_D</math>. Furthermore, there exists a string ''w'' such that <math>u=wb</math> and <math>v=wa</math>.
| |
| | |
| * Projection rule: equivalence is maintained under [[string operations|string projection]], so that if <math>w\equiv v</math>, then <math>\pi_\Sigma(w)\equiv \pi_\Sigma(v)</math>.
| |
| | |
| A strong form of [[Levi's lemma]] holds for traces. Specifically, if <math>uv\equiv xy</math> for strings ''u'', ''v'', ''x'', ''y'', then there exist strings <math>z_1, z_2, z_3</math> and <math>z_4</math> such that <math>(w_2, w_3)\in I_D</math>
| |
| for all letters <math>w_2\in\Sigma</math> and <math>w_3\in\Sigma</math> such that <math>w_2</math> occurs in <math>z_2</math> and <math>w_3</math> occurs in <math>z_3</math>, and
| |
| | |
| :<math>u\equiv z_1z_2,\qquad v\equiv z_3z_4,</math>
| |
| :<math>x\equiv z_1z_3,\qquad y\equiv z_2z_4.</math><ref>Proposition 2.2, Diekert and Métivier 1997.</ref>
| |
| | |
| ==Universal property==
| |
| A '''dependency morphism''' (with respect to a dependency ''D'') is a morphism
| |
| :<math>\psi:\Sigma^*\to M\,</math>
| |
| to some monoid ''M'', such that the "usual" trace properties hold, namely:
| |
| | |
| :1. <math>\psi(w)=\psi(\varepsilon)</math> implies that <math>w=\varepsilon</math>
| |
| | |
| :2. <math>(a,b)\in I_D</math> implies that <math>\psi(ab)=\psi(ba)\,</math>
| |
| | |
| :3. <math>\psi(ua)=\psi(v)\,</math> implies that <math>\psi(u)=\psi(v\div a)</math>
| |
| | |
| :4. <math>\psi(ua)=\psi(vb)\,</math> and <math>a\ne b</math> imply that <math>(a,b)\in I_D</math>
| |
| | |
| Dependency morphisms are universal, in the sense that for a given, fixed dependency ''D'', if <math>\psi:\Sigma^*\to M\,</math> is a dependency morphism to a monoid ''M'', then ''M'' is [[isomorphism|isomorphic]] to the trace monoid <math>\mathbb{M}(D)</math>. In particular, the natural homomorphism is a dependency morphism.
| |
| | |
| ==Normal forms==
| |
| {{Expand section|date=December 2009}}
| |
| | |
| There are two well-known normal forms{{Disambiguation needed|date=January 2012}} for words in trace monoids. One is the ''[[lexicography|lexicographic]]'' normal form, due to Anatolij V. Anisimov and Donald Knuth, and the other is the ''Foata'' normal form due to Pierre Cartier and Dominique Foata who studied the trace monoid for its combinatorics in the 1960s.
| |
| | |
| ==Trace languages==
| |
| Just as a formal language can be regarded as a subset of <math>\Sigma^*</math> the set of all possible strings, so then a trace language is defined as subset of <math>\mathbb{M}(D)</math> all possible traces.
| |
| | |
| A language <math>L\subset\Sigma^*</math> is a trace language, or is said to be '''consistent''' with dependency ''D'' if
| |
| | |
| :<math>L=\bigcup [L]_D</math>
| |
| | |
| where
| |
| | |
| :<math>[L]_D=\{[w]_D \vert w\in L \}</math>
| |
| | |
| is the trace closure of a set of strings, and
| |
| | |
| :<math>\bigcup T = \{w \vert [w]_D\in T \}</math>
| |
| | |
| is the set of strings in a set of traces.
| |
| | |
| ==Notes==
| |
| {{reflist}}
| |
| | |
| ==References==
| |
| '''General references'''
| |
| *{{Citation | editor-first=G. | editor-last=Rozenberg | editor2-first=A. | editor2-last=Salomaa | last = Diekert | first = Volker | last2 = Métivier | first2 = Yves | title = Handbook of Formal Languages Vol. 3; Beyond Words | publisher = Springer-Verlag, Berlin | year = 1997 | chapter=Partial Commutation and Traces | chapterurl= http://citeseer.ist.psu.edu/diekert97partial.html | pages = 457–534 | isbn = 3-540-60649-1}}
| |
| * {{citation | last=Lothaire | first=M. | authorlink=M. Lothaire | title=Algebraic combinatorics on words | others=With preface by Jean Berstel and Dominique Perrin | edition=Reprint of the 2002 hardback | series=Encyclopedia of Mathematics and Its Applications | volume=90| publisher=Cambridge University Press | year=2011 | isbn=978-0-521-18071-9 | zbl=1221.68183 }}
| |
| * Antoni Mazurkiewicz, "Introduction to Trace Theory", pp 3–41, in ''The Book of Traces'', V. Diekert, G. Rozenberg, eds. (1995) World Scientific, Singapore ISBN 981-02-2058-8
| |
| * Volker Diekert, ''Combinatorics on traces'', [[Lecture Notes in Computer Science|LNCS]] 454, Springer, 1990, ISBN 3-540-53031-2, pp. 9–29
| |
| * {{citation | last1=Sándor | first1=Jozsef | last2=Crstici | first2=Borislav | title=Handbook of number theory II | location=Dordrecht | publisher=Kluwer Academic | year=2004 | isbn=1-4020-2546-7 | pages=32–36 | zbl=1079.11001 }}
| |
| '''Seminal publications'''
| |
| * Pierre Cartier and Dominique Foata, ''Problèmes combinatoires de commutation et réarrangements'', Lecture Notes in Mathematics 85, Springer-Verlag, Berlin, 1969, [http://www.emis.de/journals/SLC/books/cartfoa.html Free 2006 reprint] with new appendixes
| |
| * Antoni Mazurkiewicz, ''Concurrent program schemes and their interpretations'', DAIMI Report PB 78, Aarhus University, 1977
| |
| | |
| [[Category:Semigroup theory]]
| |
| [[Category:Formal languages]]
| |
| [[Category:Free algebraic structures]]
| |
| [[Category:Combinatorics]]
| |