Automatic program verification in Dynamic Logic with applications to smart contracts
ResumoIn critical systems, failures or errors can cause catastrophes, such as deaths or considerably losses of money. Model checking provides an automated way to prove the correctness of programs' requirements. It is a convenient technique to use in systems that need reliability. Propositional Dynamic Logic (PDL) is a formal system designed to reason about programs. This work presents a compiler implementation from a subset of the C language and also for the Smacco model, both to the PDL language, and after that to the language of the nuXmv model checker. This implementation is linked with a Blockchain model generation system to model and reason about smart contracts.
H. R. Andersen. An introduction to binary decision diagrams. Lecture notes, available online, IT University of Copenhagen, p. 5, 1997.
David M. Beazley. PLY (Python Lex-Yacc). https://www.dabeaz.com/ply/ply.html.
R. Cavada, A. Cimatti, M. Dorigatti, A. Griggio, A. Mariotti, A. Micheli, S. Mover, M. Roveri, and S. Tonetta. The nuxmv symbolic model checker. CAV, ser. Lecture Notes in Computer Science, A. Biere and R. Bloem, Eds., vol. 8559, Springer, 2014,pp. 334–342.
Alessandro Cimatti, Edmund Clarke, Enrico Giunchiglia, Fausto Giunchiglia, Marco Pi-store, Marco Roveri, Roberto Sebastiani, and Armando Tacchella. Nusmv 2: An opensource tool for symbolic model checking. Computer Aided Verification, E.Brinksma and K. G. Larsen, Eds. Berlin, Heidelberg: Springer Berlin Heidelberg,2002, pp. 359–364.
Vitor N. Coelho, Thays A. Oliveira, Wellington Tavares, and Igor M. Coelho. Smart accounts for decentralized governance on smart cities (to appear).Smart Cities, 2021.
Bruno Olímpio Costa. Verificação formal de modelos de blockchain. Master’s thesis, Universidade Federal Fluminense, 2019.
S. Gerhart, D. Craigen, and T. Ralston. Case study: Paris metro signaling system. IEEE Software, vol. 11, no. 1, pp. 32–28, 1994.
David Harel, Dexter Kozen, and Jerzy Tiuryn. Dynamic Logic. MIT Press, 2000.
Michael J.Fischer and Richard E.Ladner. Propositional dynamic logic of regular programs. Journal of Computer and System Sciences, 1979.
J. C. Knight. Safety critical systems: challenges and directions. Proceedings of the 24th International Conference on Software Engineering, ACM, 2002, pp. 547–550.
Yubi Lee. flex-bison. https://github.com/eubnara/flex-bison.
Igor Machado. Smacco. https://neo-smacco.readthedocs.io/en/latest/intro.html.
Satoshi Nakamoto. Bitcoin: A peer-to-peer electronic cash system. https://bitcoin.org/bitcoin.pdf, 2009.
C. Sinz, W. Kuchlin, and T. Lumpp. Towards a verification of the rule-based expert system of the ibm sa for os/390 automation manager. In Proceedings Second Asia-Pacific Conference on Quality Software, pages 367–374, 2001.