2014
DOI: 10.1093/logcom/exu032
|View full text |Cite
|
Sign up to set email alerts
|

Proof automation for functional correctness in separation logic

Abstract: We describe an approach to automatically prove the functional correctness of pointer programs that involve iteration and recursion. Building upon separation logic, our approach has been implemented as a tightly integrated tool chain incorporating a novel combination of proof planning and invariant generation. Starting from shape analysis, performed by the Smallfoot static analyser, we have developed a proof strategy that combines shape and functional aspects of the verification task. By focusing on both iterat… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1

Citation Types

0
2
0

Year Published

2015
2015
2021
2021

Publication Types

Select...
4

Relationship

0
4

Authors

Journals

citations
Cited by 4 publications
(2 citation statements)
references
References 34 publications
(53 reference statements)
0
2
0
Order By: Relevance
“…Proof Planning: Our development of proof methods and meta-level reasoning crystallised into proof planning: specifying proof tactics so that plan formation could be used to construct a plan for a whole proof [8] (see §6.5.1). Applications of Proof Planning to Formal Methods: Since inductive reasoning is required for reasoning about repetition in both software and hardware, our automation of it could be applied to software verification [37,51,49], hardware verification [17] and program synthesis [43,27,38] (see §6.6.1). Applications to Cyber Security: Inductive reasoning was also applied to discover attacks on security protocols [69].…”
Section: Rolling Funding and Platform Grantsmentioning
confidence: 99%
“…Proof Planning: Our development of proof methods and meta-level reasoning crystallised into proof planning: specifying proof tactics so that plan formation could be used to construct a plan for a whole proof [8] (see §6.5.1). Applications of Proof Planning to Formal Methods: Since inductive reasoning is required for reasoning about repetition in both software and hardware, our automation of it could be applied to software verification [37,51,49], hardware verification [17] and program synthesis [43,27,38] (see §6.6.1). Applications to Cyber Security: Inductive reasoning was also applied to discover attacks on security protocols [69].…”
Section: Rolling Funding and Platform Grantsmentioning
confidence: 99%
“…Having − * is a desirable feature, since many algorithms/programs are verified using this connective, especially when expressing tail-recursive operations [26], iterators [23], septraction in rely/guarantee [37] etc.. Moreover, − * is useful in the weakest precondition calculus for SL, which introduces − * "in each statement in the program being analysed" [25]. See the introduction of [24] and [36] for other examples requiring − * .…”
Section: Introductionmentioning
confidence: 99%