Publication:
Forward with separation logic

dc.contributor.advisor Klein, Gerwin en_US
dc.contributor.advisor Hoefner, Peter en_US
dc.contributor.author Bannister, Callum en_US
dc.date.accessioned 2022-03-23T09:57:34Z
dc.date.available 2022-03-23T09:57:34Z
dc.date.issued 2019 en_US
dc.description.abstract The use of Hoare logic in combination with weakest preconditions and strongest postconditions is a standard tool for program verification, known as backward and forward reasoning. Separation logic, an extension of Hoare logic, finds countless applications in the areas of program verification, but the requirement of frame calculation when using it as an assertion language for specifications limits automation. In this thesis, we develop techniques to allow backward and forward reasoning for separation logic. While the former was known, it required the use of separating implication, an operator of separation often left unsupported. We provide the required support for separating implication, and demonstrate that it is an effective technique for backward reasoning in separation logic by applying it to a case study: the system initialiser proof for the microkernel seL4. We discovered separating coimplication, which, as the dual of separating conjunction and the adjoint of septraction, completes the set of separation logic operators. We demonstrate that it can be used for forward reasoning in separation logic, allowing the choice of forward or backward reasoning to be determined by what is suitable for the program and properties being proved, not the limitations of separation logic. Our technique for forward reasoning, in standard separation logic, is limited to the setting of partial correctness. As strongest postconditions do not exist in general in total correctness, we target general correctness, which unifies partial and total correctness. To support forward reasoning in this setting, separation logic needs to be equipped with a failure element. We present several ways on how to add such an element. We show that none of the obvious extensions preserve all the algebraic properties desired. We develop more complicated models, satisfying the desired properties, and discuss their use for forward reasoning. We implement our framework, including all of the above, in the interactive proof assistant Isabelle/HOL, and enable automation with several interactive proof tactics. en_US
dc.identifier.uri http://hdl.handle.net/1959.4/61712
dc.language English
dc.language.iso EN en_US
dc.publisher UNSW, Sydney en_US
dc.rights CC BY-NC-ND 3.0 en_US
dc.rights.uri https://creativecommons.org/licenses/by-nc-nd/3.0/au/ en_US
dc.subject.other Isabelle en_US
dc.subject.other Separation logic en_US
dc.subject.other Forward reasoning en_US
dc.title Forward with separation logic en_US
dc.type Thesis en_US
dcterms.accessRights open access
dcterms.rightsHolder Bannister, Callum
dspace.entity.type Publication en_US
unsw.accessRights.uri https://purl.org/coar/access_right/c_abf2
unsw.identifier.doi https://doi.org/10.26190/unsworks/21135
unsw.relation.faculty Engineering
unsw.relation.originalPublicationAffiliation Bannister, Callum, Computer Science & Engineering, Faculty of Engineering, UNSW en_US
unsw.relation.originalPublicationAffiliation Klein, Gerwin, Computer Science & Engineering, Faculty of Engineering, UNSW en_US
unsw.relation.originalPublicationAffiliation Hoefner, Peter, Computer Science & Engineering, Faculty of Engineering, UNSW en_US
unsw.relation.school School of Computer Science and Engineering *
unsw.thesis.degreetype PhD Doctorate en_US
Files
Original bundle
Now showing 1 - 1 of 1
No Thumbnail Available
Name:
public version.pdf
Size:
963.45 KB
Format:
application/pdf
Description:
Resource type