The AutoProof Verifier: Usability by Non-Experts and on Standard Code

@inproceedings{Furia2015TheAV,
  title={The AutoProof Verifier: Usability by Non-Experts and on Standard Code},
  author={Carlo A. Furia and Christopher M. Poskitt and Julian Tschannen},
  booktitle={F-IDE},
  year={2015}
}
Formal verification tools are often developed by experts for experts; as a result, their usability by programmers with little formal methods experience may be severely limited. In this paper, we discuss this general phenomenon with reference to AutoProof: a tool that can verify the full functional correctness of object-oriented software. In particular, we present our experiences of using AutoProof in two contrasting contexts representative of non-expert usage. First, we discuss its usability by… 

Tables from this paper

Usability of AutoProof: a case study of software verification
TLDR
The usability of a recent and promising verification tool: AutoProof is evaluated using a well-known benchmark, the Tokeneer problem, and the results show the efficacy of the tool in verifying a real piece of software and automatically discharging nearly two thirds of verification conditions.
Tool-Assisted Loop Invariant Development and Analysis
TLDR
The objective of this research is to present a method to help understand the difficulties students face in developing suitable loop invariants, and assist them in the process.
Scaling Up Automated Verification: A Case Study and a Formalization IDE for Building High Integrity Software
TLDR
This research investigates the intrinsic complexity in this challenge using a componentbased case study and seeks to minimize the extrinsic complexities of this challenge through the development and usage of a formalization integrated development environment (F-IDE) built for specifying, developing, and using verified reusable software components.
Towards A Broader Acceptance Of Formal Verification Tools: The Role Of Education
TLDR
The study results infer that teaching programs need to be modified by including pre-requisite courses to make formal methods easily adapted by students and promote their usage in software development process.
F-IDEs with Features and VCs Designed to Assist Human Reasoning When Verification Fails
This paper summarizes our efforts to aid human reasoning when verification fails through the use of two distinct Formalization Integrated Development Environments (F-IDEs) that we have developed.
Automated Usable Functional Verification of Object-Oriented Programs
TLDR
This thesis has built a state-of-the-art automated verifier for object-oriented sequential programs with complex functional specifications, and built a high-level technique to combine multiple tools in an IDE to make verification of object- oriented programs more usable.
AutoProof: auto-active functional verification of object-oriented programs
TLDR
This paper presents AutoProof, a state-of-the-art auto-active verifier for object-oriented sequential programs with complex functional specifications, which fully supports advanced object- oriented features and a powerful methodology for framing and class invariants, which make it applicable in practice to idiomaticobject-oriented patterns.
A fully verified container library
TLDR
This work presents the experience verifying the full functional correctness of EiffelBase2: a container library offering all the features customary in modern language frameworks, such as external iterators, and hash tables with generic mutable keys and load balancing.
Initial Steps Towards Assessing the Usability of a Verification Tool
TLDR
The experience of using AutoProof for static verification of a small object oriented program is reported, and the problems that emerge are identified and classified according to their nature.
Fourteen Years of Software Engineering at ETH Zurich
TLDR
A Chair of Software Engineering existed at ETH Zurich, the Swiss Federal Insti-tute of Technology, from 1 October 2001 to 31 January 2016, under my leader-ship, with object technology in the Eiffel method as the unifying thread.
...
...

References

SHOWING 1-10 OF 22 REFERENCES
Dafny: An Automatic Program Verifier for Functional Correctness
TLDR
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, is given and the full functional specification of the Schorr-Waite algorithm is shown.
AutoProof meets some verification challenges
TLDR
Some of AutoProof’s capabilities when tackling the three challenges of the VerifyThis verification competition held at FM 2012 are illustrated, as well as on three other problems proposed in related events.
Refactoring, Refinement, and Reasoning - A Logical Characterization for Hybrid Systems
TLDR
This work develops proof-aware refactorings for CPS and shows how the impact of model transformations on correctness can be characterized by different notions of refinement in differential dynamic logic.
AutoProof: auto-active functional verification of object-oriented programs
TLDR
This paper presents AutoProof, a state-of-the-art auto-active verifier for object-oriented sequential programs with complex functional specifications, which fully supports advanced object- oriented features and a powerful methodology for framing and class invariants, which make it applicable in practice to idiomaticobject-oriented patterns.
Usable Verification of Object-Oriented Programs by Combining Static and Dynamic Techniques
TLDR
The paper discusses the general principles behind the integration of heterogeneous verification tools; the peculiar challenges involved in combining static proofs and dynamic testing techniques; and how the combination, implemented in Eve through a blackboard architecture, can improve the user experience with little overhead over usual development practices.
Teaching Formal Methods, Second International Conference, TFM 2009, Eindhoven, The Netherlands, November 2-6, 2009. Proceedings
TLDR
This book discusses teaching Formal Methods based on Rewriting Logic and Maude, as well as teaching Concurrency: Theory in Practice, and how to explain mistakes.
A fully verified container library
TLDR
This work presents the experience verifying the full functional correctness of EiffelBase2: a container library offering all the features customary in modern language frameworks, such as external iterators, and hash tables with generic mutable keys and load balancing.
Teaching Program Specification and Verification Using JML and ESC/Java2
TLDR
The paper summarises the experiences teaching formal program specification and verification using the specification language JML and the automated program verification tool ESC/Java2 to students with no prior knowledge of formal methods.
VCC: A Practical System for Verifying Concurrent C
TLDR
This paper motivates VCC, describes the verification methodology, the architecture of VCC is described, and the experience using VCC to verify the Microsoft Hyper-V hypervisor is reported on.
This is Boogie 2
TLDR
This paper is a reference manual for Boogie version 2.0, which serves as a resource for static program verifiers of various source languages and abstracts over the interfaces to various theorem provers.
...
...