Abstract
This paper presents a verification framework that is parametric in a (trusted) operational semantics of some programming language. The underlying proof system is language-independent and consists of eight proof rules. The proof system is proved partially correct and relatively complete (with respect to the programming language configuration model). To show its practicality, the generic framework is instantiated with a fragment of C and evaluated with encouraging results.
- A. W. Appel. Verified software toolchain. In ESOP, volume 6602 of LNCS, pages 1--17, 2011. Google Scholar
Digital Library
- C. Barrett and C. Tinelli. CVC3. In CAV, pages 298--302, 2007. Google Scholar
Digital Library
- G. Berry and G. Boudol. The chemical abstract machine. Th. Comp. Sci., 96(1):217--248, 1992. Google Scholar
Digital Library
- S. Blazy and X. Leroy. Mechanized semantics for the Clight subset of the C language. J. Autom. Reasoning, 43(3):263--288, 2009.Google Scholar
Cross Ref
- A. Chlipala. Mostly-automated verification of low-level pro-grams in computational separation logic. In PLDI, pages 234--245, 2011. Google Scholar
Digital Library
- M. Clavel, F. Durán, S. Eker, J. Meseguer, P. Lincoln, N. Martí-Oliet, and C. Talcott. All About Maude, volume 4350 of LNCS. 2007.Google Scholar
- O. Danvy and L. Nielsen. Refocusing in reduction semantics. Technical Report RS-04-26, BRICS, 2004.Google Scholar
Cross Ref
- L. M. de Moura and N. Bjørner. Z3: An efficient SMT solver. In TACAS, volume 4963 of LNCS, pages 337--340, 2008. Google Scholar
Digital Library
- D. Distefano, P. W. O'Hearn, and H. Yang. A local shape analysis based on separation logic. In TACAS, volume 3920 of LNCS, pages 287--302, 2006. Google Scholar
Digital Library
- C. Ellison and G. Rosu. An executable formal semantics of C with applications. In POPL, pages 533--544, 2012. Google Scholar
Digital Library
- M. Felleisen and R. Hieb. The revised report on the syntactic theories of sequential control and state. Th. Comp. Sci., 103 (2):235--271, 1992. Google Scholar
Digital Library
- M. Felleisen, R. B. Findler, and M. Flatt. Semantics Engineer-ing with PLT Redex. MIT, 2009. Google Scholar
Digital Library
- R. W. Floyd. Assigning meaning to programs. In Symposium on Applied Mathematics, volume 19, pages 19--32, 1967.Google Scholar
Cross Ref
- J. Goguen and G. Malcolm. Algebraic Semantics of Imperative Programs. MIT Press, 1996. Google Scholar
Digital Library
- D. Harel, D. Kozen, and J. Tiuryn. Dynamic logic. In Handbook of Philosophical Logic, pages 497--604, 1984.Google Scholar
Cross Ref
- A. Hobor, A. W. Appel, and F. Z. Nardelli. Oracle semantics for concurrent separation logic. In ESOP, volume 4960 of LNCS, pages 353--367, 2008. Google Scholar
Digital Library
- T. Hubert and C. Marché. A case study of C source code verification: the Schorr-Waite algorithm. In SEFM, pages 190--199, 2005. Google Scholar
Digital Library
- A. Loginov, T. W. Reps, and M. Sagiv. Automated verification of the Deutsch-Schorr-Waite tree-traversal algorithm. In SAS, 2006. Google Scholar
Digital Library
- J. Meseguer. Conditioned rewriting logic as a united model of concurrency. Theor. Comput. Sci., 96(1):73--155, 1992. Google Scholar
Digital Library
- P. D. Mosses. CASL Reference Manual, volume 2960 of LNCS. Springer, 2004.Google Scholar
- T. Nipkow. Winskel is (almost) right: Towards a mechanized semantics textbook. Formal Aspects of Computing, 10:171--186, 1998.Google Scholar
Digital Library
- P. W. O'Hearn and D. J. Pym. The logic of bunched implications. Bulletin of Symb. Logic, 5(2):215--244, 1999.Google Scholar
Cross Ref
- P. W. O'Hearn, J. C. Reynolds, and H. Yang. Local reasoning about programs that alter data structures. In CSL, pages 1--19, 2001. Google Scholar
Digital Library
- D. Pavlovic and D. R. Smith. Composition and refinement of behavioral specifications. In ASE, pages 157--165, 2001. Google Scholar
Digital Library
- J. C. Reynolds. Separation logic: A logic for shared mutable data structures. In LICS, pages 55--74, 2002. Google Scholar
Digital Library
- G. Rosu and T.-F. Serbanuta. An overview of the K semantic framework. J. Log. Algebr. Program., 79(6):397--434, 2010.Google Scholar
Cross Ref
- G. Rosu and A. Stefanescu. Matching logic: a new program verification approach (NIER track). In ICSE, pages 868--871, 2011. Google Scholar
Digital Library
- G. Rosu and A. Stefanescu. Towards a unified theory of operational and axiomatic semantics. In ICALP (2), volume 7392 of LNCS, pages 351--363, 2012. Google Scholar
Digital Library
- G. Rosu and A. Stefanescu. From Hoare logic to matching logic. In FM, To appear, 2012.Google Scholar
- G. Rosu and A. Stefanescu. Checking reachability using matching logic. Technical Report http://hdl.handle.net/2142/33771, Univ. of Illinois, Aug. 2012.Google Scholar
Digital Library
- G. Rosu, C. Ellison, and W. Schulte. Matching logic: An alternative to Hoare/Floyd logic. In AMAST, volume 6486 of LNCS, pages 142--162, 2010. Google Scholar
Digital Library
- S. Sagiv, T. W. Reps, and R. Wilhelm. Parametric shape analysis via 3-valued logic. ACM Trans. Prog. Lang. Syst., 24(3):217--298, 2002. Google Scholar
Digital Library
- G. Winskel. The formal semantics of programming languages - an introduction. Foundation of computing series. MIT Press, 1993. Google Scholar
Digital Library
- A. Wright and M. Felleisen. A syntactic approach to type soundness. Inf. & Computation, 115(1):38--94, 1994. Google Scholar
Digital Library
Index Terms
Checking reachability using matching logic
Recommendations
Checking reachability using matching logic
OOPSLA '12: Proceedings of the ACM international conference on Object oriented programming systems languages and applicationsThis paper presents a verification framework that is parametric in a (trusted) operational semantics of some programming language. The underlying proof system is language-independent and consists of eight proof rules. The proof system is proved ...
One-Path Reachability Logic
LICS '13: Proceedings of the 2013 28th Annual ACM/IEEE Symposium on Logic in Computer ScienceThis paper introduces *(one-path) reach ability logic*, a language-independent proof system for program verification, which takes an operational semantics as axioms and derives *reach ability rules*, which generalize Hoare triples. This system improves ...
Incremental reachability checking of KernelC programs using matching logic
ICSE Companion 2014: Companion Proceedings of the 36th International Conference on Software EngineeringA fundamental phase in software development deals with verifying that software behaves correctly. Although accurate testing can discover many wrong behaviours, formal software verification techniques can help in developing applications that dependably ...







Comments