English

Proving Program Properties as First-Order Satisfiability

Logic in Computer Science 2018-12-03 v2

Abstract

Program semantics can often be expressed as a (many-sorted) first-order theory S, and program properties as sentences φ\varphi which are intended to hold in the canonical model of such a theory, which is often incomputable. Recently, we have shown that properties φ\varphi expressed as the existential closure of a boolean combination of atoms can be disproved by just finding a model of S and the negation ¬φ\neg\varphi of φ\varphi. Furthermore, this idea works quite well in practice due to the existence of powerful tools for the automatic generation of models for (many-sorted) first-order theories. In this paper we extend our previous result to arbitrary properties, expressed as sentences without any special restriction. Consequently, one can prove a program property φ\varphi by just finding a model of an appropriate theory (including S and possibly something else) and an appropriate first-order formula related to φ\varphi. Beyond its possible theoretical interest, we show that our results can also be of practical use in several respects.

Keywords

Cite

@article{arxiv.1808.04111,
  title  = {Proving Program Properties as First-Order Satisfiability},
  author = {Salvador Lucas},
  journal= {arXiv preprint arXiv:1808.04111},
  year   = {2018}
}

Comments

Pre-proceedings paper presented at the 28th International Symposium on Logic-Based Program Synthesis and Transformation (LOPSTR 2018), Frankfurt am Main, Germany, 4-6 September 2018 (arXiv:1808.03326)