6 CONCLUSION
In this paper we presented our ongoing work on devel-
oping an approach to check the equivalence of soft-
ware programs using a novel translation validation
technique for handling loops. In addition, our ap-
proach makes use of SMT solvers to validate arith-
metic transformations. Such constructions cannot be
handled by state-of-the-art equivalence checkers.
We presented an initial validation of the approach
for a standard benchmark. Currently this valida-
tion was performed manually. Therefore, our future
work is to implement a tool-chain supporting the ap-
proach and validate it on a larger benchmark. For
this, we will reuse existing compiler front-ends (e.g.
GCC) and automatically construct the Petri Net mod-
els from the generated intermediate code representa-
tion so that the approach can be tested on different
programming languages, potentially including exist-
ing architecture description languages such as UML,
SysML and AADL. This will also allow us to fur-
ther characterize the domain of applicability of the ap-
proach; i.e. which language constructions and trans-
lations are handled by our approach and to evaluate
scalability for large programs.
ACKNOWLEDGEMENT
The authors would like to thank Didier Buchs and
Dipankar Sarkar for initial ideas regarding the refine-
ment of the Petri net model.
REFERENCES
Amini, M., Creusillet, B., Even, S., Keryell, R., Goubier,
O., Guelton, S., Mcmahon, J., Pasquier, F.-X., P
´
ean,
G., and Villalon, P. (2012). Par4all: From convex ar-
ray regions to heterogeneous computing. Workshop
IMPACT.
Bacon, D. F., Graham, S. L., and Sharp, O. J. (1994). Com-
piler transformations for high-performance comput-
ing. ACM Computing Survey, 26(4).
Bandyopadhyay, S. (2016). Path based equivalence check-
ing of Petri net representation of programs for trans-
lation validation. PhD thesis, IIT, Kharagpur.
Bandyopadhyay, S., Sarkar, D., and Mandal, C. (2018).
Equivalence checking of petri net models of programs
using static and dynamic cut-points. Acta Informatica.
Bandyopadhyay, S., Sarkar, S., Sarkar, D., and Mandal,
C. A. (2017). Samatulyata: An efficient path based
equivalence checking tool. In ATVA.
Banerjee, K., Karfa, C., Sarkar, D., and Mandal, C. (2014).
Verification of code motion techniques using value
propagation. IEEE TCAD, 33(8).
Banerjee, K., Sarkar, D., and Mandal, C. (2014). Extend-
ing the fsmd framework for validating code motions
of array-handling programs. IEEE TCAD, 33(12).
Bell, C. J. (2013). Certifiably sound parallelizing transfor-
mations. In CPP, pages 227–242.
Bondhugula, U., Hartono, A., Ramanujam, J., and Sadayap-
pan, P. (2008). Pluto: A practical and fully automatic
polyhedral program optimization system. In PLDI.
Charron-Bost, B., Merz, S., Rybalchenko, A., and Wid-
der, J. (2013). Formal verification of distributed algo-
rithms (dagstuhl seminar 13141). Dagstuhl Reports,
3(4):1–16.
Chouksey, R., Karfa, C., and Bhaduri, P. (2019). Translation
validation of code motion transformations involving
loops. IEEE TCADICS, 38(7).
Corradini, A., Ribeiro, L., Dotti, F. L., and Mendizabal,
O. M. (2013). A formal model for the deferred up-
date replication technique. In TGC.
de Moura, L. and Bjørner, N. (2008). Z3: An efficient smt
solver. In TACAS, pages 337–340.
Felsing, D., Grebing, S., Klebanov, V., R
¨
ummer, P., and Ul-
brich, M. (2014). Automating regression verification.
In ACM/IEEE International Conference on ASE.
Jensen, K. and Kristensen, L. M. (2009). Coloured Petri
Nets - Modelling and Validation of Concurrent Sys-
tems. Springer.
Karfa, C., Mandal, C., and Sarkar, D. (2012). Formal ver-
ification of code motion techniques using data-flow-
driven equivalence checking. ACM TODAES, 17(3).
Kundu, S., Lerner, S., and Gupta, R. (2008). Validating
high-level synthesis. CAV.
Lime, D., Roux, O. H., Seidner, C., and Traonouez, L.
(2009). Romeo: A parametric model-checker for petri
nets with stopwatches. In TACAS.
Milner, R. (1989). Communication and Concurrency.
Prentice-Hall, Inc.
Mittal, R., Banerjee, R., Sarkar, S., and Bandyopadhyay, S.
(2020). Translation validation of loop involving code
optimizing transformations using petri net based mod-
els of programs. In PNSE Workshop.
Necula, G. C. (2000). Translation validation for an optimiz-
ing compiler. In PLDI.
Pnueli, A., Siegel, M., and Singerman, E. (1998). Transla-
tion validation. In TACAS.
Rinard, M. and Diniz, P. (1999). Credible compilation.
Technical Report MIT-LCS-TR-776, MIT.
Westergaard, M. (2012). Verifying parallel algorithms and
programs using coloured petri nets. Trans. on Petri
Nets and Other Models of Concurrency.
Towards an Approach for Translation Validation of Thread-level Parallelizing Transformations using Colored Petri Nets
541