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...
Main Authors: | , , , |
---|---|
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 |