Automatic program verification in Dynamic Logic with applications to smart contracts - Patrick, Allan; Coelho, Igor Machado; Lopes, Bruno (Anais do Workshop Brasileiro de Lógica (WBL); 2021: Anais do II Workshop Brasileiro de LógicaDO - 10.5753/wbl.2021.15772, 2021)
In 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.