Verifying Graph Programs with First-Order Logic (Extended Version)
Abstract
We consider Hoare-style verification for the graph programming language GP 2. In previous work, graph properties were specified by so-called E-conditions which extend nested graph conditions. However, this type of assertions is not easy to comprehend by programmers that are used to formal specifications in standard first-order logic. In this paper, we present an approach to verify GP 2 programs with a standard first-order logic. We show how to construct a strongest liberal postcondition with respect to a rule schema and a precondition. We then extend this construction to obtain strongest liberal postconditions for arbitrary loop-free programs. Compared with previous work, this allows to reason about a vastly generalised class of graph programs. In particular, many programs with nested loops can be verified with the new calculus.
Keywords
Cite
@article{arxiv.2010.14549,
title = {Verifying Graph Programs with First-Order Logic (Extended Version)},
author = {Gia Wulandari and Detlef Plump},
journal= {arXiv preprint arXiv:2010.14549},
year = {2020}
}
Comments
Extended version of a paper to appear at GCM 2020 post-proceeding