Content area

Abstract

This paper aims to develop a verification method for procedural programs via a transformation into Logically Constrained Term Rewriting Systems (LCTRSs). To this end, we extend transformation methods based on integer TRSs to handle arbitrary data types, global variables, function calls and arrays, as well as encode safety checks. Then we adapt existing rewriting induction methods to LCTRSs and propose a simple yet effective method to generalize equations. We show that we can automatically verify memory safety and prove correctness of realistic functions. Our approach proves equivalence between two implementations, so in contrast to other works, we do not require an explicit specification in a separate specification language.

Details

1009240
Title
Verifying Procedural Programs via Constrained Rewriting Induction
Publication title
arXiv.org; Ithaca
Publication year
2017
Publication date
Feb 25, 2017
Section
Computer Science
Publisher
Cornell University Library, arXiv.org
Source
arXiv.org
Place of publication
Ithaca
Country of publication
United States
University/institution
Cornell University Library arXiv.org
e-ISSN
2331-8422
Source type
Working Paper
Language of publication
English
Document type
Working Paper
Publication history
 
 
Online publication date
2017-02-28
Milestone dates
2014-08-30 (Submission v1); 2015-12-21 (Submission v2); 2016-09-30 (Submission v3); 2016-10-03 (Submission v4); 2017-02-25 (Submission v5)
Publication history
 
 
   First posting date
28 Feb 2017
ProQuest document ID
2075531248
Document URL
https://www.proquest.com/working-papers/verifying-procedural-programs-via-constrained/docview/2075531248/se-2?accountid=208611
Full text outside of ProQuest
Copyright
© 2017. This work is published under http://arxiv.org/licenses/nonexclusive-distrib/1.0/ (the “License”). Notwithstanding the ProQuest Terms and Conditions, you may use this content in accordance with the terms of the License.
Last updated
2019-05-24
Database
ProQuest One Academic