Certified Foata Normalization for Generalized Traces

  • Hendrik MaarandEmail author
  • Tarmo Uustalu
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 10811)


Mazurkiewicz traces are a well-known model of concurrency with a notion of equivalence for interleaving executions. Interleaving executions of a concurrent system are represented as strings over an alphabet equipped with an independence relation, and two strings are taken to be equivalent if they can be transformed into each other by repeatedly commuting independent consecutive letters. Analyzing all behaviors of the system can be reduced to analyzing one canonical representative from each equivalence class; normal forms such as the Foata normal form can be used for this purpose. In some applications, it is useful to have commutability of two adjacent letters in a string depend on their left context. We develop Foata normal forms and normalization for Sassone et al.’s context-dependent generalization of traces, formalize this development in the dependently typed programming language Agda and show generalized Foata normalization in action on an example from relaxed shared-memory concurrency (local reads in TSO).



This work was supported by the ERDF funded Estonian national CoE project EXCITE and the Estonian Ministry of Education and Research institutional research grant IUT-3313.


  1. 1.
    Aalbersberg, I.J.J., Rozenberg, G.: Theory of traces. Theor. Comput. Sci. 60(1), 1–82 (1988)MathSciNetCrossRefzbMATHGoogle Scholar
  2. 2.
    Abdulla, P.A., Aronis, S., Atig, M.F., Jonsson, B., Leonardsson, C., Sagonas, K.: Stateless model checking for TSO and PSO. In: Baier, C., Tinelli, C. (eds.) TACAS 2015. LNCS, vol. 9035, pp. 353–367. Springer, Heidelberg (2015). Google Scholar
  3. 3.
    Cartier, P., Foata, D.: Problemes combinatoires de commutation et réarrangements. LNM, vol. 85. Springer, Heidelberg (1969). CrossRefzbMATHGoogle Scholar
  4. 4.
    Chou, C.-T., Peled, D.: Formal verification of a partial-order reduction technique for model checking. In: Margaria, T., Steffen, B. (eds.) TACAS 1996. LNCS, vol. 1055, pp. 241–257. Springer, Heidelberg (1996). CrossRefGoogle Scholar
  5. 5.
    Diekert, V., Métivier, T.: Partial commutation and traces. In: Rozenberg, G., Salomaa, A. (eds.) Handbook of Formal Languages: Beyond Words, vol. 3, pp. 457–553. Springer, Heidelberg (1997). CrossRefGoogle Scholar
  6. 6.
    Droste, M.: Concurrency, automata and domains. In: Paterson, M.S. (ed.) ICALP 1990. LNCS, vol. 443, pp. 195–208. Springer, Heidelberg (1990). CrossRefGoogle Scholar
  7. 7.
    Godefroid, P.: Using partial orders to improve automatic verification methods. In: Clarke, E.M., Kurshan, R.P. (eds.) CAV 1990. LNCS, vol. 531, pp. 176–185. Springer, Heidelberg (1991). CrossRefGoogle Scholar
  8. 8.
    Hoogers, P.W., Kleijn, H.C.M., Thiagarajan, P.S.: A trace semantics for Petri nets. Inf. Comput. 117(1), 98–114 (1995)MathSciNetCrossRefzbMATHGoogle Scholar
  9. 9.
    Katz, S., Peled, D.: Defining conditional independence using collapses. Theoret. Comput. Sci. 101(2), 337–359 (1995)MathSciNetCrossRefzbMATHGoogle Scholar
  10. 10.
    Maarand, H., Uustalu, T.: Generating representative executions. In: Vasconcelos, V.T., Haller, P. (eds.) Proceedings of 10th Workshop on Programming Language Approaches to Concurrency and Communication-Centric Software, PLACES 2017. Electronic Processing Theoretical Computer Science, vol. 246, pp. 39–48. Open Publishing Association, Sydney (2017)Google Scholar
  11. 11.
    Mazurkiewicz, A.: Concurrent program schemes and their interpretations. DAIMI Report PB-78, Aarhus University (1977)Google Scholar
  12. 12.
    Norell, U.: Dependently typed programming in Agda. In: Koopman, P., Plasmeijer, R., Swierstra, D. (eds.) AFP 2008. LNCS, vol. 5832, pp. 230–266. Springer, Heidelberg (2009). CrossRefGoogle Scholar
  13. 13.
    Owens, S., Sarkar, S., Sewell, P.: A better x86 memory model: x86-TSO. In: Berghofer, S., Nipkow, T., Urban, C., Wenzel, M. (eds.) TPHOLs 2009. LNCS, vol. 5674, pp. 391–407. Springer, Heidelberg (2009). CrossRefGoogle Scholar
  14. 14.
    Peled, D.: All from one, one for all: on model checking using representatives. In: Courcoubetis, C. (ed.) CAV 1993. LNCS, vol. 697, pp. 409–423. Springer, Heidelberg (1993). CrossRefGoogle Scholar
  15. 15.
    Sassone, V., Nielsen, M., Winskel, G.: Deterministic behavioural models for concurrency. In: Borzyszkowski, A.M., Sokołowski, S. (eds.) MFCS 1993. LNCS, vol. 711, pp. 682–692. Springer, Heidelberg (1993). CrossRefGoogle Scholar
  16. 16.
    SPARC International Inc.: The SPARC Architecture Manual, Version 9. Prentice Hall, Englewood Cliffs (1994). (Ed. by D.L. Weaver and T. Germond)Google Scholar
  17. 17.
    Zhang, N., Kusano, M., Wang, C.: Dynamic partial order reduction for relaxed memory models. In: Proceedings of 36th ACM SIGPLAN Conference on Principles of Language Design and Implementation, PLDI 2015, pp. 250–259. ACM, New York (2015)Google Scholar

Copyright information

© Springer International Publishing AG, part of Springer Nature 2018

Authors and Affiliations

  1. 1.Department of Software ScienceTallinn University of TechnologyTallinnEstonia
  2. 2.School of Computer ScienceReykjavik UniversityReykjavikIceland

Personalised recommendations