Removing Unnecessary Variables from Horn Clause Verification Conditions

Verification conditions (VCs) are logical formulas whose satisfiability guarantees program correctness. We consider VCs in the form of constrained Horn clauses (CHC) which are automatically generated from the encoding of (an interpreter of) the operational semantics of the programming language. VC...

Full description

Bibliographic Details
Main Authors: Emanuele De Angelis, Fabio Fioravanti, Alberto Pettorossi, Maurizio Proietti
Format: Article
Language:English
Published: Open Publishing Association 2016-07-01
Series:Electronic Proceedings in Theoretical Computer Science
Online Access:http://arxiv.org/pdf/1607.04460v1
id doaj-2aa1afa006c244a287660b12eed23729
record_format Article
spelling doaj-2aa1afa006c244a287660b12eed237292020-11-24T21:23:18ZengOpen Publishing AssociationElectronic Proceedings in Theoretical Computer Science2075-21802016-07-01219Proc. HCVS2016495510.4204/EPTCS.219.5:3Removing Unnecessary Variables from Horn Clause Verification ConditionsEmanuele De AngelisFabio FioravantiAlberto PettorossiMaurizio ProiettiVerification conditions (VCs) are logical formulas whose satisfiability guarantees program correctness. We consider VCs in the form of constrained Horn clauses (CHC) which are automatically generated from the encoding of (an interpreter of) the operational semantics of the programming language. VCs are derived through program specialization based on the unfold/fold transformation rules and, as it often happens when specializing interpreters, they contain unnecessary variables, that is, variables which are not required for the correctness proofs of the programs under verification. In this paper we adapt to the CHC setting some of the techniques that were developed for removing unnecessary variables from logic programs, and we show that, in some cases, the application of these techniques increases the effectiveness of Horn clause solvers when proving program correctness.http://arxiv.org/pdf/1607.04460v1
collection DOAJ
language English
format Article
sources DOAJ
author Emanuele De Angelis
Fabio Fioravanti
Alberto Pettorossi
Maurizio Proietti
spellingShingle Emanuele De Angelis
Fabio Fioravanti
Alberto Pettorossi
Maurizio Proietti
Removing Unnecessary Variables from Horn Clause Verification Conditions
Electronic Proceedings in Theoretical Computer Science
author_facet Emanuele De Angelis
Fabio Fioravanti
Alberto Pettorossi
Maurizio Proietti
author_sort Emanuele De Angelis
title Removing Unnecessary Variables from Horn Clause Verification Conditions
title_short Removing Unnecessary Variables from Horn Clause Verification Conditions
title_full Removing Unnecessary Variables from Horn Clause Verification Conditions
title_fullStr Removing Unnecessary Variables from Horn Clause Verification Conditions
title_full_unstemmed Removing Unnecessary Variables from Horn Clause Verification Conditions
title_sort removing unnecessary variables from horn clause verification conditions
publisher Open Publishing Association
series Electronic Proceedings in Theoretical Computer Science
issn 2075-2180
publishDate 2016-07-01
description Verification conditions (VCs) are logical formulas whose satisfiability guarantees program correctness. We consider VCs in the form of constrained Horn clauses (CHC) which are automatically generated from the encoding of (an interpreter of) the operational semantics of the programming language. VCs are derived through program specialization based on the unfold/fold transformation rules and, as it often happens when specializing interpreters, they contain unnecessary variables, that is, variables which are not required for the correctness proofs of the programs under verification. In this paper we adapt to the CHC setting some of the techniques that were developed for removing unnecessary variables from logic programs, and we show that, in some cases, the application of these techniques increases the effectiveness of Horn clause solvers when proving program correctness.
url http://arxiv.org/pdf/1607.04460v1
work_keys_str_mv AT emanueledeangelis removingunnecessaryvariablesfromhornclauseverificationconditions
AT fabiofioravanti removingunnecessaryvariablesfromhornclauseverificationconditions
AT albertopettorossi removingunnecessaryvariablesfromhornclauseverificationconditions
AT maurizioproietti removingunnecessaryvariablesfromhornclauseverificationconditions
_version_ 1725992331912413184