2015 · 16 citations · 18 references
ComputingComputer ScienceComputer SystemsFormal MethodsOperating SystemsProgramming LanguagesData-flow AnalysisFile SystemsPredicate LogicFile System SemanticsFirst-order Logic ProgrammingFirst-order Logic ReasoningFrame RuleSeparation LogicSymbolic Link Analysis
We introduce a program logic for specifying a core sequential subset of the POSIX file system and for reasoning abstractly about client programs working with the file system. The challenge is to reason about the combination of local directory update and global pathname traversal (including '..' and symbolic links) which may overlap the directories being updated. Existing reasoning techniques are either based on first-order logic and do not scale, or on separation logic and can only handle linear pathnames (no '..' or symbolic links). We introduce fusion logic for reasoning about local update and global pathname traversal, introducing a novel effect frame rule to propagate the effect of a local update on overlapping pathnames. We apply our reasoning to the standard recursive remove utility (rm -r), discovering bugs in well-known implementations.
18
Separation logic: a logic for shared mutable data structures
John Reynolds · 2003 · 2.2K citations
Checking interference with fractional permissions
2003 · 388 citations
Permission accounting in separation logic
Richard Bornat, Cristiano Calcagno, Peter W. O’Hearn et al. · 2005 · 370 citations
Concurrent abstract predicates
Thomas Dinsdale-Young, Mike Dodds, Philippa Gardner et al. · 2010 · 197 citations
Thomas Dinsdale-Young, Lars Birkedal, Philippa Gardner et al. · 2013 · 158 citations