Journal of Automated Reasoning
Toward reliable modular programs
Toward reliable modular programs
Ownership types for flexible alias protection
Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Data groups: specifying the modification of extended state
Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Combining Algebraic and Algorithmic Reasoning: An Approach to the Schorr-Waite Algorithm
ACM Transactions on Programming Languages and Systems (TOPLAS)
An efficient machine-independent procedure for garbage collection in various list structures
Communications of the ACM
Extended static checking for Java
PLDI '02 Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation
Object-Oriented Software Construction
Object-Oriented Software Construction
Data abstraction and information hiding
ACM Transactions on Programming Languages and Systems (TOPLAS)
Ownership, encapsulation and the disjointness of type and effect
OOPSLA '02 Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Separation Logic: A Logic for Shared Mutable Data Structures
LICS '02 Proceedings of the 17th Annual IEEE Symposium on Logic in Computer Science
Verifying the Safety of a Practical Concurrent Garbage Collector
CAV '96 Proceedings of the 8th International Conference on Computer Aided Verification
Transition predicate abstraction and fair termination
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Simplify: a theorem prover for program checking
Journal of the ACM (JACM)
A case study of C source code verification: the Schorr-Waite algorithm
SEFM '05 Proceedings of the Third IEEE International Conference on Software Engineering and Formal Methods
Preliminary design of JML: a behavioral interface specification language for java
ACM SIGSOFT Software Engineering Notes
Modular invariants for layered object structures
Science of Computer Programming - Special issue on source code analysis and manipulation (SCAM 2005)
Full functional verification of linked data structures
Proceedings of the 2008 ACM SIGPLAN conference on Programming language design and implementation
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
A Hoare Logic for Call-by-Value Functional Programs
MPC '08 Proceedings of the 9th international conference on Mathematics of Program Construction
Regional Logic for Local Reasoning about Global Invariants
ECOOP '08 Proceedings of the 22nd European conference on Object-Oriented Programming
Incremental Benchmarks for Software Verification Tools and Techniques
VSTTE '08 Proceedings of the 2nd international conference on Verified Software: Theories, Tools, Experiments
Reasoning about comprehensions with first-order SMT solvers
Proceedings of the 2009 ACM symposium on Applied Computing
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
Implicit Dynamic Frames: Combining Dynamic Frames and Separation Logic
Genoa Proceedings of the 23rd European Conference on ECOOP 2009 --- Object-Oriented Programming
VCC: A Practical System for Verifying Concurrent C
TPHOLs '09 Proceedings of the 22nd International Conference on Theorem Proving in Higher Order Logics
seL4: formal verification of an OS kernel
Proceedings of the ACM SIGOPS 22nd symposium on Operating systems principles
FM '09 Proceedings of the 2nd World Congress on Formal Methods
Proving pointer programs in higher-order logic
Information and Computation - Special issue: 19th international conference on automated deduction (CADE-19)
Checking interference with fractional permissions
SAS'03 Proceedings of the 10th international conference on Static analysis
The Why/Krakatoa/Caduceus platform for deductive program verification
CAV'07 Proceedings of the 19th international conference on Computer aided verification
CAV'07 Proceedings of the 19th international conference on Computer aided verification
TACAS'08/ETAPS'08 Proceedings of the Theory and practice of software, 14th international conference on Tools and algorithms for the construction and analysis of systems
An automatic verifier for Java-like programs based on dynamic frames
FASE'08/ETAPS'08 Proceedings of the Theory and practice of software, 11th international conference on Fundamental approaches to software engineering
Verification of equivalent-results methods
ESOP'08/ETAPS'08 Proceedings of the Theory and practice of software, 17th European conference on Programming languages and systems
Verification of object-oriented software: The KeY approach
Verification of object-oriented software: The KeY approach
Dafny meets the verification benchmarks challenge
VSTTE'10 Proceedings of the Third international conference on Verified software: theories, tools, experiments
Boogie: a modular reusable verifier for object-oriented programs
FMCO'05 Proceedings of the 4th 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
ESC/Java2: uniting ESC/Java and JML
CASSIS'04 Proceedings of the 2004 international conference on Construction and Analysis of Safe, Secure, and Interoperable Smart Devices
Dynamic frames: support for framing, dependencies and sharing without restrictions
FM'06 Proceedings of the 14th international conference on Formal Methods
Using the spec# language, methodology, and tools to write bug-free programs
Advanced Lectures on Software Engineering
A polymorphic intermediate verification language: design and logical encoding
TACAS'10 Proceedings of the 16th international conference on Tools and Algorithms for the Construction and Analysis of Systems
Dafny meets the verification benchmarks challenge
VSTTE'10 Proceedings of the Third international conference on Verified software: theories, tools, experiments
Local reasoning and dynamic framing for the composite pattern and its clients
VSTTE'10 Proceedings of the Third international conference on Verified software: theories, tools, experiments
Proceedings of the 5th ACM workshop on Programming languages meets program verification
Robust, generic, modularly-verified map: a software verification challenge problem
Proceedings of the 5th ACM workshop on Programming languages meets program verification
Loop invariant synthesis in a combined domain
ICFEM'10 Proceedings of the 12th international conference on Formal engineering methods and software engineering
Kopitiam: modular incremental interactive full functional static verification of java code
NFM'11 Proceedings of the Third international conference on NASA Formal methods
The relationship between separation logic and implicit dynamic frames
ESOP'11/ETAPS'11 Proceedings of the 20th European conference on Programming languages and systems: part of the joint European conferences on theory and practice of software
Enforcing structural invariants using dynamic frames
TACAS'11/ETAPS'11 Proceedings of the 17th international conference on Tools and algorithms for the construction and analysis of systems: part of the joint European conferences on theory and practice of software
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
Heaps and data structures: a challenge for automated provers
CADE'11 Proceedings of the 23rd international conference on Automated deduction
Software verification using k-induction
SAS'11 Proceedings of the 18th international conference on Static analysis
A formalisation of java strings for program specification and verification
SEFM'11 Proceedings of the 9th international conference on Software engineering and formal methods
The boogie verification debugger
SEFM'11 Proceedings of the 9th international conference on Software engineering and formal methods
ACM Transactions on Programming Languages and Systems (TOPLAS)
Behavioral interface specification languages
ACM Computing Surveys (CSUR)
Automating induction with an SMT solver
VMCAI'12 Proceedings of the 13th international conference on Verification, Model Checking, and Abstract Interpretation
Decision procedures for region logic
VMCAI'12 Proceedings of the 13th international conference on Verification, Model Checking, and Abstract Interpretation
Developing verified programs with dafny
VSTTE'12 Proceedings of the 4th international conference on Verified Software: theories, tools, experiments
A lightweight technique for distributed and incremental program verification
VSTTE'12 Proceedings of the 4th international conference on Verified Software: theories, tools, experiments
Formalized verification of snapshotable trees: separation and sharing
VSTTE'12 Proceedings of the 4th international conference on Verified Software: theories, tools, experiments
Verified resource guarantees for heap manipulating programs
FASE'12 Proceedings of the 15th international conference on Fundamental Approaches to Software Engineering
Automatically proving thousands of verification conditions using an SMT solver: an empirical study
NFM'12 Proceedings of the 4th international conference on NASA Formal Methods
Verifying backwards compatibility of object-oriented libraries using Boogie
Proceedings of the 14th Workshop on Formal Techniques for Java-like Programs
Specification engineering and modular verification using a web-integrated verifying compiler
Proceedings of the 34th International Conference on Software Engineering
Preventing arithmetic overflows in alloy
ABZ'12 Proceedings of the Third international conference on Abstract State Machines, Alloy, B, VDM, and Z
Beyond first-order satisfaction: fixed points, interpolants, automata and polynomials
SPIN'12 Proceedings of the 19th international conference on Model Checking Software
The COST IC0701 verification competition 2011
FoVeOOS'11 Proceedings of the 2011 international conference on Formal Verification of Object-Oriented Software
Verification of snapshotable trees using access permissions and typestate
TOOLS'12 Proceedings of the 50th international conference on Objects, Models, Components, Patterns
Predicate abstraction of Java programs with collections
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Reducing the barriers to writing verified specifications
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Program extrapolation with jennisys
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Proceedings of the 3rd annual conference on Systems, programming, and applications: software for humanity
Loop invariant synthesis in a combined abstract domain
Journal of Symbolic Computation
Developing verified programs with Dafny
Proceedings of the 2012 ACM conference on High integrity language technology
A verifier for functional properties of sequence-manipulating programs
ATVA'12 Proceedings of the 10th international conference on Automated Technology for Verification and Analysis
The ramifications of sharing in data structures
POPL '13 Proceedings of the 40th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Verifying security invariants in ExpressOS
Proceedings of the eighteenth international conference on Architectural support for programming languages and operating systems
Increasing human-tool interaction via the web
Proceedings of the 11th ACM SIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools and Engineering
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)
Verifying higher-order programs with the dijkstra monad
Proceedings of the 34th ACM SIGPLAN conference on Programming language design and implementation
RADA: a tool for reasoning about algebraic data types with abstractions
Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering
Loop summarization using state and transition invariants
Formal Methods in System Design
Inductive invariant generation via abductive inference
Proceedings of the 2013 ACM SIGPLAN international conference on Object oriented programming systems languages & applications
Growing solver-aided languages with rosette
Proceedings of the 2013 ACM international symposium on New ideas, new paradigms, and reflections on programming & software
CADE'13 Proceedings of the 24th international conference on Automated Deduction
Automating theorem proving with SMT
ITP'13 Proceedings of the 4th international conference on Interactive Theorem Proving
Symbolic optimization with SMT solvers
Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
Syrus: providing practice problems in discrete mathematics with instant feedback
Proceedings of the 45th ACM technical symposium on Computer science education
Object ownership in program verification
Aliasing in Object-Oriented Programming
State based encapsulation for modular reasoning about behavior-preserving refactorings
Aliasing in Object-Oriented Programming
Aliasing in Object-Oriented Programming
Automata-Theoretic Semantics of Idealized Algol with Passive Expressions
Electronic Notes in Theoretical Computer Science (ENTCS)
Automatically refining partial specifications for heap-manipulating programs
Science of Computer Programming
Hi-index | 0.00 |
Traditionally, the full verification of a program's functional correctness has been obtained with pen and paper or with interactive proof assistants, whereas only reduced verification tasks, such as extended static checking, have enjoyed the automation offered by satisfiability-modulo-theories (SMT) solvers. More recently, powerful SMT solvers and well-designed program verifiers are starting to break that tradition, thus reducing the effort involved in doing full verification. This paper gives a tour of the language and verifier Dafny, which has been used to verify the functional correctness of a number of challenging pointer-based programs. The paper describes the features incorporated in Dafny, illustrating their use by small examples and giving a taste of how they are coded for an SMT solver. As a larger case study, the paper shows the full functional specification of the Schorr-Waite algorithm in Dafny.