## A certified verifier for a fragment of Separation logic (2007)

Venue: | In JSSST Workshop on Programming and Programming Languages (PPL’07). Japan Society for Software Science and Technology |

Citations: | 7 - 0 self |

### BibTeX

@INPROCEEDINGS{Marti07acertified,

author = {Nicolas Marti and Reynald Affeldt},

title = {A certified verifier for a fragment of Separation logic},

booktitle = {In JSSST Workshop on Programming and Programming Languages (PPL’07). Japan Society for Software Science and Technology},

year = {2007}

}

### OpenURL

### Abstract

Separation logic is an extension of Hoare logic to verify imperative programs with pointers and mutable datastructures. Although there exist several implementations of verifiers for separation logic, none of them has actually been itself verified. In this paper, we present a verifier for a fragment of separation logic that is verified inside the Coq proof assistant. This verifier is implemented as a Coq tactic by reflection to verify separation logic triples. Thanks to the extraction facility to OCaml, we can also derive a certified, stand-alone and efficient verifier for separation logic. 1

### Citations

713 | Separation logic: A logic for shared mutable data structures
- Reynolds
- 2002
(Show Context)
Citation Context ...tified, stand-alone and efficient verifier for separation logic. 1 Introduction Separation logic is an extension of Hoare logic to verify imperative programs with pointers and mutable data-structures =-=[4]-=-. There exist several implementations of verifiers for separation logic [9, 10, 12], but they all share a common weak point: they are not themselves verified. It makes little doubt that a verifier for... |

102 | Symbolic execution with separation logic
- Berdine, Calcagno, et al.
(Show Context)
Citation Context ...tion Separation logic is an extension of Hoare logic to verify imperative programs with pointers and mutable data-structures [4]. There exist several implementations of verifiers for separation logic =-=[9, 10, 12]-=-, but they all share a common weak point: they are not themselves verified. It makes little doubt that a verifier for separation logic can be verified using, say, a proof assistant. The real question ... |

74 | A decidable fragment of separation logic
- Berdine, Calcagno, et al.
- 2004
(Show Context)
Citation Context ...paration logic. For the assertions, we cannot use the full separation logic language because the validity is undecidable. Instead, we deal with a fragment identified in previous work by other authors =-=[5, 9]-=- as a good candidate for automation. We extend this language with Presburger arithmetic so as to be able to handle pointer arithmetic. The only datatypes we provide are singlylinked lists, but the ide... |

52 | Automated verification of shape and size properties via separation logic
- Nguyen, David, et al.
- 2007
(Show Context)
Citation Context ...tion Separation logic is an extension of Hoare logic to verify imperative programs with pointers and mutable data-structures [4]. There exist several implementations of verifiers for separation logic =-=[9, 10, 12]-=-, but they all share a common weak point: they are not themselves verified. It makes little doubt that a verifier for separation logic can be verified using, say, a proof assistant. The real question ... |

50 | Computability and complexity results for a spatial assertion language for data structures
- Calcagno, O’Hearn, et al.
- 2001
(Show Context)
Citation Context ...econdition generator for separation logic) produces postconditions with separating implications for which there exists no automatic prover (as pointed out in [9]). Although decidability results exist =-=[3, 8, 7]-=-, the separating implication is actually seldom used in specifications of algorithms (one notable exception is [2]). However, forward reasoning has the disadvantage of adding, for each variable modifi... |

24 | Verification of the heap manager of an operating system using separation logic - Marti, Affeldt, et al. - 2006 |

21 | An example of local reasoning in BI pointer logic: the Schorr-Waite graph marking algorithm
- Yang
- 2001
(Show Context)
Citation Context ...o automatic prover (as pointed out in [9]). Although decidability results exist [3, 8, 7], the separating implication is actually seldom used in specifications of algorithms (one notable exception is =-=[2]-=-). However, forward reasoning has the disadvantage of adding, for each variable modification, a conjunctive clause with possibly 11a fresh variable. This is not desirable in practice because decision... |

14 | From separation logic to first-order logic
- Calcagno, Gardner, et al.
- 2005
(Show Context)
Citation Context ...econdition generator for separation logic) produces postconditions with separating implications for which there exists no automatic prover (as pointed out in [9]). Although decidability results exist =-=[3, 8, 7]-=-, the separating implication is actually seldom used in specifications of algorithms (one notable exception is [2]). However, forward reasoning has the disadvantage of adding, for each variable modifi... |

11 | Verifying and reflecting quantifier elimination for Presburger arithmetic
- Chaieb, Nipkow
- 2005
(Show Context)
Citation Context ...als. A certified implementation of a more efficient decision procedure (such as the Cooper algorithm) is among our future work (Chaieb and Nipkow already did this work in the Isabelle proof assistant =-=[6]-=-). Table 2 summarizes the measurements (hardware: Pentium IV 2.4GHz with 1GB of RAM). 12〈true_b,x↦→vy**y↦→vx〉 ⊢ 〈true_b,x↦→vy**y↦→vx〉 {〈true_b,x↦→vy**y↦→vx〉}t2’<-vy;t1<-vx;t2<-t2’{〈true_b,x↦→vy**y↦→v... |

8 | Characterizing provability in BI’s pointer logic through resource graphs
- Galmiche, Méry
- 2005
(Show Context)
Citation Context ...econdition generator for separation logic) produces postconditions with separating implications for which there exists no automatic prover (as pointed out in [9]). Although decidability results exist =-=[3, 8, 7]-=-, the separating implication is actually seldom used in specifications of algorithms (one notable exception is [2]). However, forward reasoning has the disadvantage of adding, for each variable modifi... |

1 |
Cooper’s Algorithm for Presburger Arithmetic
- Harrison
(Show Context)
Citation Context ...d by reflection). Of course, this decision procedure has also been verified in Coq (file expr_b_dp.v in [13]). The second version uses a non-certified decision procedure based on the Cooper algorithm =-=[14]-=-. The reason why we provide this second version is that our decision procedure for arithmetic, though necessary for use inside of Coq, is not optimized enough to solve large arithmetic subgoals. A cer... |