Home
Feedback
FAQ
Getting Started
Discussions
Site operation discussions
Recent Posts
(new topic)
Departments
Courses
Research Papers
Design Docs
Quotations
Genealogical Diagrams
Archives
The PVS Specification and Verification System from SRI is being released as open source.
Also coming with version 4.0 is the PVS wiki.
As an autodidact in PL, I have much interest in formal methods and program verification, but very little experience or context for their theoretical bases and practical applications. Could someone provide me with some insight into PVS, ACL2, Coq, and other such theorem proving systems? I am particularly interested in comparisons of their design choices, and in their strengths when applied in industrial settings.
Freek Wiedijk lists seventeen proof assistants and their proofs of the irrationality of sqrt(2). The accompanying consumer test succinctly presents various aspects of the proof assistants. In section 1.3 on related work, you'll find references to other comparisons of proof assistants applied in computer science.
One categorisation of these systems is in terms of the expressiveness of their logics. In order from least expressive to most, I'd order some of the well-known systems as follows: ACL2, HOL, Isabelle/HOL, (PVS & Coq).
All of these systems are capable of mechanising big chunks of mathematics and logic. All have been used in industrial applications. I'd say ACL2 has probably been most used in this way, particularly because of its amazing support for efficient execution of logical models.
Isabelle/HOL, HOL and Coq are all implemented in ML and follow the "LCF approach" of using the ML type system to implement theorems as an abstract datatype. In this way, the programming language plus what you'd hope would be a small kernel of fundamental operations are used to guarantee soundness of the rest of the system.
Thank you for your comments and links.
Having read about the famous Therac-25 incidents, I have always wondered what steps the software engineers have taken to improve the reliability of critical software. I understand that large portions of safety controls are implemented as hardware locks, but do they also apply formal methods in medical systems?
I'm not sure about PVS, but Z has definitely seen some use in the medical domain. Jonathan Jacky has made excerpts of a Z spec for a radiation therapy machine available on his website. Jacky is the author of the excellent The Way of Z, which is one of the more accessible and practically oriented books on formal methods that I've seen, and which builds on his experiences working with Z on the development of various medical devices.
Recent comments
27 weeks 2 days ago
27 weeks 2 days ago
27 weeks 2 days ago
49 weeks 3 days ago
1 year 1 week ago
1 year 3 weeks ago
1 year 3 weeks ago
1 year 5 weeks ago
1 year 10 weeks ago
1 year 10 weeks ago