Automatic verification of pointer programs using monadic second-order logic
Proceedings of the ACM SIGPLAN 1997 conference on Programming language design and implementation
Enforcing high-level protocols in low-level software
Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation
The pointer assertion logic engine
Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation
Extended static checking for Java
PLDI '02 Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation
Using data groups to specify and check side effects
PLDI '02 Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation
Parametric shape analysis via 3-valued logic
ACM Transactions on Programming Languages and Systems (TOPLAS)
Thread-Modular Verification for Shared-Memory Programs
ESOP '02 Proceedings of the 11th European Symposium on Programming Languages and Systems
Separation Logic: A Logic for Shared Mutable Data Structures
LICS '02 Proceedings of the 17th Annual IEEE Symposium on Logic in Computer Science
Simple Ownership Types for Object Containment
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
A Semantic Basis for Local Reasoning
FoSSaCS '02 Proceedings of the 5th International Conference on Foundations of Software Science and Computation Structures
Alias Types for Recursive Data Structures
TIC '00 Selected papers from the Third International Workshop on Types in Compilation
Local Reasoning about Programs that Alter Data Structures
CSL '01 Proceedings of the 15th International Workshop on Computer Science Logic
Wanted: a compositional approach to concurrency
Programming methodology
Local reasoning about a copying garbage collector
Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Separation and information hiding
Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Hazard Pointers: Safe Memory Reclamation for Lock-Free Objects
IEEE Transactions on Parallel and Distributed Systems
Permission accounting in separation logic
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A semantics for procedure local heaps and its abstractions
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Ownership confinement ensures representation independence for object-oriented programs
Journal of the ACM (JACM)
Safe Concurrency for Aggregate Objects with Invariants
SEFM '05 Proceedings of the Third IEEE International Conference on Software Engineering and Formal Methods
A semantics for concurrent separation logic
Theoretical Computer Science
Resources, concurrency, and local reasoning
Theoretical Computer Science
Proofs of Networks of Processes
IEEE Transactions on Software Engineering
Checking interference with fractional permissions
SAS'03 Proceedings of the 10th international conference on Static analysis
Symbolic execution with separation logic
APLAS'05 Proceedings of the Third Asian conference on Programming Languages and Systems
Assertion-based encapsulation, object invariants and simulations
FMCO'04 Proceedings of the Third international conference on Formal Methods for Components and Objects
The spec# programming system: an overview
CASSIS'04 Proceedings of the 2004 international conference on Construction and Analysis of Safe, Secure, and Interoperable Smart Devices
Reasoning about iterators with separation logic
Proceedings of the 2006 conference on Specification and verification of component-based systems
Context logic as modal logic: completeness and parametric inexpressivity
Proceedings of the 34th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Local Reasoning about Data Update
Electronic Notes in Theoretical Computer Science (ENTCS)
Formal Software Analysis Emerging Trends in Software Model Checking
FOSE '07 2007 Future of Software Engineering
Cyclic proofs of program termination in separation logic
Proceedings of the 35th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Cooperative reasoning for automatic software verification
Proceedings of the second workshop on Automated formal methods
Full functional verification of linked data structures
Proceedings of the 2008 ACM SIGPLAN conference on Programming language design and implementation
Local Hoare reasoning about DOM
Proceedings of the twenty-seventh ACM SIGMOD-SIGACT-SIGART symposium on Principles of database systems
Scalable Specification and Reasoning: Challenges for Program Logic
Verified Software: Theories, Tools, Experiments
VeriCool: An Automatic Verifier for a Concurrent Object-Oriented Language
FMOODS '08 Proceedings of the 10th IFIP WG 6.1 international conference on Formal Methods for Open Object-Based Distributed Systems
Tutorial on Separation Logic (Invited Tutorial)
CAV '08 Proceedings of the 20th international conference on Computer Aided Verification
Enhancing Program Verification with Lemmas
CAV '08 Proceedings of the 20th international conference on Computer Aided Verification
Separation Logic Contracts for a Java-Like Language with Fork/Join
AMAST 2008 Proceedings of the 12th international conference on Algebraic Methodology and Software Technology
jStar: towards practical verification for java
Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
TPHOLs '08 Proceedings of the 21st International Conference on Theorem Proving in Higher Order Logics
ICLP '08 Proceedings of the 24th International Conference on Logic Programming
Local reasoning for abstraction and sharing
Proceedings of the 2009 ACM symposium on Applied Computing
Logic-Based Program Synthesis and Transformation
Beyond Shapes: Lists with Ordered Data
FOSSACS '09 Proceedings of the 12th International Conference on Foundations of Software Science and Computational Structures: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009
Verifying Reference Counting Implementations
TACAS '09 Proceedings of the 15th International Conference on Tools and Algorithms for the Construction and Analysis of Systems: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009,
Automatic Parallelization with Separation Logic
ESOP '09 Proceedings of the 18th European Symposium on Programming Languages and Systems: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009
A Basis for Verifying Multi-threaded Programs
ESOP '09 Proceedings of the 18th European Symposium on Programming Languages and Systems: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009
Certifying Low-Level Programs with Hardware Interrupts and Preemptive Threads
Journal of Automated Reasoning
Aliasing, Confinement, and Ownership in Object-Oriented Programming
Object-Oriented Technology. ECOOP 2008 Workshop Reader
International Workshop on Aliasing, Confinement and Ownership in Object-Oriented Programming
Effective interactive proofs for higher-order imperative programs
Proceedings of the 14th ACM SIGPLAN international conference on Functional programming
Automatic Parallelization and Optimization of Programs by Proof Rewriting
SAS '09 Proceedings of the 16th International Symposium on Static Analysis
Practical Tactics for Separation Logic
TPHOLs '09 Proceedings of the 22nd International Conference on Theorem Proving in Higher Order Logics
A Formalisation of Smallfoot in HOL
TPHOLs '09 Proceedings of the 22nd International Conference on Theorem Proving in Higher Order Logics
Separation Logic Verification of C Programs with an SMT Solver
Electronic Notes in Theoretical Computer Science (ENTCS)
A relational approach to interprocedural shape analysis
ACM Transactions on Programming Languages and Systems (TOPLAS)
Memory Usage Verification Using Hip/Sleek
ATVA '09 Proceedings of the 7th International Symposium on Automated Technology for Verification and Analysis
Reasoning about Memory Layouts
FM '09 Proceedings of the 2nd World Congress on Formal Methods
Bi-abductive Resource Invariant Synthesis
APLAS '09 Proceedings of the 7th Asian Symposium on Programming Languages and Systems
Structuring the verification of heap-manipulating programs
Proceedings of the 37th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
VMCAI'07 Proceedings of the 8th international conference on Verification, model checking, and abstract interpretation
Automated verification of shape and size properties via separation logic
VMCAI'07 Proceedings of the 8th international conference on Verification, model checking, and abstract interpretation
Runtime checking for separation logic
VMCAI'08 Proceedings of the 9th international conference on Verification, model checking, and abstract interpretation
FOSSACS'08/ETAPS'08 Proceedings of the Theory and practice of software, 11th international conference on Foundations of software science and computational structures
Small specifications for tree update
WS-FM'09 Proceedings of the 6th international conference on Web services and formal methods
Reasoning about memory layouts
Formal Methods in System Design
Loop invariant synthesis in a combined domain
ICFEM'10 Proceedings of the 12th international conference on Formal engineering methods and software engineering
Reasoning about assignments in recursive data structures
SBMF'10 Proceedings of the 13th Brazilian conference on Formal methods: foundations and applications
Mostly-automated verification of low-level programs in computational separation logic
Proceedings of the 32nd ACM SIGPLAN conference on Programming language design and implementation
Separation logic + superposition calculus = heap theorem prover
Proceedings of the 32nd ACM SIGPLAN conference on Programming language design and implementation
Hoare logic for higher order store using simple semantics
WoLLIC'11 Proceedings of the 18th international conference on Logic, language, information and computation
Variable side conditions and greatest relations in algebraic separation logic
RAMICS'11 Proceedings of the 12th international conference on Relational and algebraic methods in computer science
The 1st verified software competition: experience report
FM'11 Proceedings of the 17th international conference on Formal methods
Structured specifications for better verification of heap-manipulating programs
FM'11 Proceedings of the 17th international conference on Formal methods
Verification of unloadable modules
FM'11 Proceedings of the 17th international conference on Formal methods
Annotation inference for separation logic based verifiers
FMOODS'11/FORTE'11 Proceedings of the joint 13th IFIP WG 6.1 and 30th IFIP WG 6.1 international conference on Formal techniques for distributed systems
Specification patterns and proofs for recursion through the store
FCT'11 Proceedings of the 18th international conference on Fundamentals of computation theory
Characteristic formulae for the verification of imperative programs
Proceedings of the 16th ACM SIGPLAN international conference on Functional programming
Tractable reasoning in a fragment of separation logic
CONCUR'11 Proceedings of the 22nd international conference on Concurrency theory
Immutable specifications for more concise and precise verification
Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications
Compositional Shape Analysis by Means of Bi-Abduction
Journal of the ACM (JACM)
Mutation in linked data structures
ICFEM'11 Proceedings of the 13th international conference on Formal methods and software engineering
Developer-oriented correctness proofs a case study of Cheney's algorithm
ICFEM'11 Proceedings of the 13th international conference on Formal methods and software engineering
Beyond reachability: shape abstraction in the presence of pointer arithmetic
SAS'06 Proceedings of the 13th international conference on Static Analysis
Towards a program logic for JavaScript
POPL '12 Proceedings of the 39th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Resource-sensitive synchronization inference by abduction
POPL '12 Proceedings of the 39th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Syntactic control of interference for separation logic
POPL '12 Proceedings of the 39th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Tracking heaps that hop with heap-hop
TACAS'10 Proceedings of the 16th international conference on Tools and Algorithms for the Construction and Analysis of Systems
VeriSmall: verified smallfoot shape analysis
CPP'11 Proceedings of the First international conference on Certified Programs and Proofs
Behavioral interface specification languages
ACM Computing Surveys (CSUR)
Crowfoot: a verifier for higher-order store programs
VMCAI'12 Proceedings of the 13th international conference on Verification, Model Checking, and Abstract Interpretation
Comparing verification condition generation with symbolic execution: an experience report
VSTTE'12 Proceedings of the 4th international conference on Verified Software: theories, tools, experiments
The CORE system: Animation and functional correctness of pointer programs
ASE '11 Proceedings of the 2011 26th IEEE/ACM International Conference on Automated Software Engineering
Safe asynchronous multicore memory operations
ASE '11 Proceedings of the 2011 26th IEEE/ACM International Conference on Automated Software Engineering
Efficient and formal generalized symbolic execution
Automated Software Engineering
Science of Computer Programming
Verifying the reflective visitor pattern
Proceedings of the 14th Workshop on Formal Techniques for Java-like Programs
FoVeOOS'11 Proceedings of the 2011 international conference on Formal Verification of Object-Oriented Software
Verified heap theorem prover by paramodulation
Proceedings of the 17th ACM SIGPLAN international conference on Functional programming
Formalised inductive reasoning in the logic of bunched implications
SAS'07 Proceedings of the 14th international conference on Static Analysis
Modular safety checking for fine-grained concurrency
SAS'07 Proceedings of the 14th international conference on Static Analysis
Variable permissions for concurrency verification
ICFEM'12 Proceedings of the 14th international conference on Formal Engineering Methods: formal methods and software engineering
Separation predicates: a taste of separation logic in first-order logic
ICFEM'12 Proceedings of the 14th international conference on Formal Engineering Methods: formal methods and software engineering
A theorem prover for Boolean BI
POPL '13 Proceedings of the 40th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Compositional invariant checking for overlaid and nested linked lists
ESOP'13 Proceedings of the 22nd European conference on Programming Languages and Systems
Natural proofs for structure, data, and separation
Proceedings of the 34th ACM SIGPLAN conference on Programming language design and implementation
Local Reasoning for Global Invariants, Part I: Region Logic
Journal of the ACM (JACM)
Proof-Directed Parallelization Synthesis by Separation Logic
ACM Transactions on Programming Languages and Systems (TOPLAS)
Proceedings of the 18th ACM SIGPLAN international conference on Functional programming
Programming with permissions in Mezzo
Proceedings of the 18th ACM SIGPLAN international conference on Functional programming
A formal semantics for isorecursive and equirecursive state abstractions
ECOOP'13 Proceedings of the 27th European conference on Object-Oriented Programming
ECOOP'13 Proceedings of the 27th European conference on Object-Oriented Programming
Automating separation logic using SMT
CAV'13 Proceedings of the 25th international conference on Computer Aided Verification
A proof system for separation logic with magic wand
Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
Specification patterns for reasoning about recursion through the store
Information and Computation
Alias control for deterministic parallelism
Aliasing in Object-Oriented Programming
Verification of complex dynamic data tree with mu-calculus
Automated Software Engineering
Automatically refining partial specifications for heap-manipulating programs
Science of Computer Programming
Hi-index | 0.00 |
Separation logic is a program logic for reasoning about programs that manipulate pointer data structures. We describe Smallfoot, a tool for checking certain lightweight separation logic specifications. The assertions describe the shapes of data structures rather than their detailed contents, and this allows reasoning to be fully automatic. The presentation in the paper is tutorial in style. We illustrate what the tool can do via examples which are oriented toward novel aspects of separation logic, namely: avoidance of frame axioms (which say what a procedure does not change); embracement of “dirty” features such as memory disposal and address arithmetic; information hiding in the presence of pointers; and modular reasoning about concurrent programs.