Filters








131 Hits in 1.3 sec

Verification of Concurrent Programs with Chalice [chapter]

K. Rustan M. Leino, Peter Müller, Jan Smans
2009 Lecture Notes in Computer Science  
These lecture notes describe a verifier for concurrent programs called Chalice. Chalice's verification methodology centers around permissions and permission transfer.  ...  Proper use of permissions allows Chalice to deduce upper bounds on the set of locations modifiable by a method and guarantees the absence of data races for concurrent programs.  ...  Acknowledgments Jan Smans is a research assistant of the Fund for Scientific Research -Flanders (FWO).  ... 
doi:10.1007/978-3-642-03829-7_7 fatcat:3tomishqkvbmzbiiftkpcqnz6u

The VerCors Tool for Verification of Concurrent Programs [chapter]

Stefan Blom, Marieke Huisman
2014 Lecture Notes in Computer Science  
The VerCors tool implements thread-modular static verification of concurrent programs, annotated with functional properties and heap access permissions.  ...  The tool verifies programs by first encoding the specified program into a much simpler programming language and then applying the Chalice verifier to the simplified program.  ...  We mainly use Chalice [10] , a verifier for an idealized concurrent programming language, as our back-end, but for sequential programs we also use the intermediate program verification language Boogie  ... 
doi:10.1007/978-3-319-06410-9_9 fatcat:ojkwokatm5gzbcnamuaam3dnkm

An Expressive Framework for Verifying Deadlock Freedom [chapter]

Duy-Khanh Le, Wei-Ngan Chin, Yong-Meng Teo
2013 Lecture Notes in Computer Science  
This paper presents an expressive specification and verification framework for ensuring deadlock freedom of shared-memory concurrent programs that manipulate locks.  ...  We introduce a novel delayed lockset checking technique to guarantee deadlock freedom of programs with interactions between thread and lock operations.  ...  We thank Peter Müller for his insightful discussions about Chalice, and the anonymous reviewers for comments. This work is supported by MOE Project 2009-T2-1-063.  ... 
doi:10.1007/978-3-319-02444-8_21 fatcat:e7dxh2jhubbn3imnldqwokbley

The VerCors project

Afshin Amighi, Stefan Blom, Marieke Huisman, Marina Zaharieva-Stojanovski
2012 Proceedings of the sixth workshop on Programming languages meets program verification - PLPV '12  
The VerCors project is about Verification of Concurrent Data Structures.  ...  For the verification, the program and its annotations are encoded into Chalice, and then we reuse the Chalice translation to Boogie to generate the proof obligations.  ...  Encoding Verification Problems in Chalice Chalice [37] is a verifier for concurrent programs. The input language has objects, but no inheritance or interfaces.  ... 
doi:10.1145/2103776.2103785 dblp:conf/plpv/AmighiBHZ12 fatcat:lbjvldqewbccldfyfgo3muftvq

Fractional permissions without the fractions

Stefan Heule, K. Rustan M. Leino, Peter Müller, Alexander J. Summers
2011 Proceedings of the 13th Workshop on Formal Techniues for Java-Like Programs - FTfJP '11  
The methodology is flexible and modular, and has been implemented in the verification tool Chalice.  ...  Fractional Permissions are a popular approach to reasoning about programs that use shared-memory concurrency.  ...  Acknowledgements We would like to thank the attendees of the Dublin Concurrency Workshop 2011, particularly Andrew Butterfield and Peter O'Hearn, for encouraging feedback on a preliminary presentation  ... 
doi:10.1145/2076674.2076675 dblp:conf/ecoop/HeuleL0S11 fatcat:mlohpepeinhqrdcgfdste4dcnu

Automated and Modular Refinement Reasoning for Concurrent Programs [chapter]

Chris Hawblitzel, Erez Petrank, Shaz Qadeer, Serdar Tasiran
2015 Lecture Notes in Computer Science  
We present civl, a language and verifier for concurrent programs based on automated and modular refinement reasoning. civl supports reasoning about a concurrent program at many levels of abstraction.  ...  We have used civl to refine a realistic concurrent garbage collection algorithm from a simple high-level specification down to a highly-concurrent implementation described in terms of individual memory  ...  VCC [8] is a tool for verifying concurrent C programs. Chalice [33] is a language and modular verification tool for concurrent programs.  ... 
doi:10.1007/978-3-319-21668-3_26 fatcat:n2eslalhbzfbtbeplhbj65pwju

Deadlock-Free Channels and Locks [chapter]

K. Rustan M. Leino, Peter Müller, Jan Smans
2010 Lecture Notes in Computer Science  
Background on Chalice Chalice [21, 22] is a programming language and program verifier for concurrent programming.  ...  Sec. 1 describes the existing features of the Chalice program verifier that are relevant to this paper. In Sec. 2 and 3, we extend Chalice with channels and show how deadlock can be avoided.  ...  The verification technique has been proven sound and was implemented in the Chalice program verifier.  ... 
doi:10.1007/978-3-642-11957-6_22 fatcat:g2dvqems6bgqlijd7yi272pvzm

Abstract Read Permissions: Fractional Permissions without the Fractions [chapter]

Stefan Heule, K. Rustan M. Leino, Peter Müller, Alexander J. Summers
2013 Lecture Notes in Computer Science  
It has been implemented in the verification tool Chalice.  ...  Fractional Permissions are a popular approach to reasoning about programs that use shared-memory concurrency, because they provide a way of proving data race freedom while permitting concurrent read access  ...  Acknowledgements We would like to thank the attendees and reviewers of the Formal Techniques for Java-like Programs 2011 workshop, as well as the attendees of the Dublin Concurrency Workshop 2011, particularly  ... 
doi:10.1007/978-3-642-35873-9_20 fatcat:hrh7jvlitffuramsqo7q55rl6q

Witnessing the elimination of magic wands

Stefan Blom, Marieke Huisman
2015 International Journal on Software Tools for Technology Transfer (STTT)  
This paper discusses static verification of programs that have been specified using separation logic with magic wands.  ...  Besides our encoding of magic wands, we also discuss the encoding of other aspects of annotated Java programs into Chalice, and in particular, the encoding of abstract predicates with permis-sion parameters  ...  Open Access This article is distributed under the terms of the Creative Commons Attribution License which permits any use, distribution, and reproduction in any medium, provided the original author(s)  ... 
doi:10.1007/s10009-015-0372-3 pmid:27194940 pmcid:PMC4841211 fatcat:cwin6u4objgfneuy4esstm75ue

The Relationship between Separation Logic and Implicit Dynamic Frames [chapter]

Matthew J. Parkinson, Alexander J. Summers
2011 Lecture Notes in Computer Science  
As a consequence of this connection, we show that a fragment of separation logic can be faithfully encoded in a first-order automatic verification tool (Chalice).  ...  Separation logic is a concise method for specifying programs that manipulate dynamically allocated storage.  ...  Acknowledgements We thank Mike Dodds, David Naumann, Ioannis Kassios, Peter Müller and Sophia Drossopoulou for feedback on drafts of this paper.  ... 
doi:10.1007/978-3-642-19718-5_23 fatcat:ufuchwb7sfel3lgy7md5tjzs74

Formal Specifications for Java's Synchronisation Classes

Afshin Amighi, Stefan Blom, Marieke Huisman, Wojciech Mostowski, Marina Zaharieva-Stojanovski
2014 2014 22nd Euromicro International Conference on Parallel, Distributed, and Network-Based Processing  
In many verification systems for concurrent programs, synchronisation is treated as a primitive operation.  ...  This paper discusses formal specification and verification of the synchronisation classes of the Java API.  ...  Moreover, successful verification of all program threads annotated with permissions guarantees that the concurrent program is free of data races.  ... 
doi:10.1109/pdp.2014.31 dblp:conf/pdp/AmighiBHMZ14 fatcat:2mcimhn2wzayxgtcjls27eun54

Automatic Inference of Access Permissions [chapter]

Pietro Ferrara, Peter Müller
2012 Lecture Notes in Computer Science  
requirements of each heap access in the program.  ...  concurrent code.  ...  This work was partially supported by the SNF project "Verification-Driven Inference of Contracts".  ... 
doi:10.1007/978-3-642-27940-9_14 fatcat:du6gq2af2jfvblwwvfurd2t26y

Stepwise refinement of heap-manipulating code in Chalice

K. Rustan M. Leino, Kuat Yessenov
2012 Formal Aspects of Computing  
This paper describes a system with automated tool support for refinement, powered by a stateof-the-art verification engine that uses an SMT solver.  ...  Unlike previous refinement systems, users of the presented system interact only via declarations in the programming language.  ...  Acknowledgments We are grateful to Peter Müller who suggested we might try to base our refinements on the permissions in Chalice rather than on the dynamic frames of Dafny [29] , where we had started.  ... 
doi:10.1007/s00165-012-0254-3 fatcat:s5mgcqnkwbeupl2pilyvdjb524

Tracking Heaps That Hop with Heap-Hop [chapter]

Jules Villard, Étienne Lozes, Cristiano Calcagno
2010 Lecture Notes in Computer Science  
Programs are annotated with pre and post-conditions and loop invariants, written in a fragment of separation logic. Communications are governed by a form of session types called contracts.  ...  Heap-Hop is a program prover for concurrent heap-manipulating programs that use Hoare monitors and message-passing synchronization.  ...  We first introduce the programming language and annotations with a few examples of increasing complexity, and then give some insights on Heap-Hop's internals. We conclude with some related works.  ... 
doi:10.1007/978-3-642-12002-2_23 fatcat:fxipnhjfifbojouryfy5j7c47i

Mechanized verification of fine-grained concurrent programs

Ilya Sergey, Aleksandar Nanevski, Anindya Banerjee
2015 SIGPLAN notices  
In this paper, we present the first completely formalized framework for mechanized verification of full functional correctness of fine-grained concurrent programs.  ...  We illustrate the proof layout in FCSL by example, and report on our experience of using FCSL to verify a number of concurrent algorithms and data structures.  ...  Chalice is an experimental firstorder concurrent language, supplied with a tool that generates verification conditions (VCs) for client-annotated Chalice programs.  ... 
doi:10.1145/2813885.2737964 fatcat:nfb54qyyozbtjglecmxbg6yfym
« Previous Showing results 1 — 15 out of 131 results