Mercurial > cpdt > repo
comparison src/Intro.v @ 244:0400fa005d5a
New release
author | Adam Chlipala <adamc@hcoop.net> |
---|---|
date | Wed, 09 Dec 2009 14:12:33 -0500 |
parents | 52b9e43be069 |
children | de53c8bcfa8d |
comparison
equal
deleted
inserted
replaced
243:b2c72c77ad47 | 244:0400fa005d5a |
---|---|
47 We would all like to have programs check that our programs are correct. Due in no small part to some bold but unfulfilled promises in the history of computer science, today most people who write software, practitioners and academics alike, assume that the costs of formal program verification outweigh the benefits. The purpose of this book is to convince you that the technology of program verification is mature enough today that it makes sense to use it in a support role in many kinds of research projects in computer science. Beyond the convincing, I also want to provide a handbook on practical engineering of certified programs with the Coq proof assistant. | 47 We would all like to have programs check that our programs are correct. Due in no small part to some bold but unfulfilled promises in the history of computer science, today most people who write software, practitioners and academics alike, assume that the costs of formal program verification outweigh the benefits. The purpose of this book is to convince you that the technology of program verification is mature enough today that it makes sense to use it in a support role in many kinds of research projects in computer science. Beyond the convincing, I also want to provide a handbook on practical engineering of certified programs with the Coq proof assistant. |
48 | 48 |
49 There are a good number of (though definitely not "many") tools that are in wide use today for building machine-checked mathematical proofs and machine-certified programs. This is my attempt at an exhaustive list of interactive "proof assistants" satisfying a few criteria. First, the authors of each tool must intend for it to be put to use for software-related applications. Second, there must have been enough engineering effort put into the tool that someone not doing research on the tool itself would feel his time was well spent using it. A third criterion is more of an empirical validation of the second: the tool must have a significant user community outside of its own development team. | 49 There are a good number of (though definitely not "many") tools that are in wide use today for building machine-checked mathematical proofs and machine-certified programs. This is my attempt at an exhaustive list of interactive "proof assistants" satisfying a few criteria. First, the authors of each tool must intend for it to be put to use for software-related applications. Second, there must have been enough engineering effort put into the tool that someone not doing research on the tool itself would feel his time was well spent using it. A third criterion is more of an empirical validation of the second: the tool must have a significant user community outside of its own development team. |
50 | 50 |
51 % | 51 % |
52 \medskip | |
53 | |
52 \begin{tabular}{rl} | 54 \begin{tabular}{rl} |
53 \textbf{ACL2} & \url{http://www.cs.utexas.edu/users/moore/acl2/} \\ | 55 \textbf{ACL2} & \url{http://www.cs.utexas.edu/users/moore/acl2/} \\ |
54 \textbf{Coq} & \url{http://coq.inria.fr/} \\ | 56 \textbf{Coq} & \url{http://coq.inria.fr/} \\ |
55 \textbf{Isabelle/HOL} & \url{http://isabelle.in.tum.de/} \\ | 57 \textbf{Isabelle/HOL} & \url{http://isabelle.in.tum.de/} \\ |
56 \textbf{PVS} & \url{http://pvs.csl.sri.com/} \\ | 58 \textbf{PVS} & \url{http://pvs.csl.sri.com/} \\ |
57 \textbf{Twelf} & \url{http://www.twelf.org/} \\ | 59 \textbf{Twelf} & \url{http://www.twelf.org/} \\ |
58 \end{tabular} | 60 \end{tabular} |
61 | |
62 \medskip | |
59 % | 63 % |
60 # | 64 # |
61 <table align="center"> | 65 <table align="center"> |
62 <tr><td align="right"><b>ACL2</b></td> <td><a href="http://www.cs.utexas.edu/users/moore/acl2/">http://www.cs.utexas.edu/users/moore/acl2/</a></td></tr> | 66 <tr><td align="right"><b>ACL2</b></td> <td><a href="http://www.cs.utexas.edu/users/moore/acl2/">http://www.cs.utexas.edu/users/moore/acl2/</a></td></tr> |
63 <tr><td align="right"><b>Coq</b></td> <td><a href="http://coq.inria.fr/">http://coq.inria.fr/</a></td></tr> | 67 <tr><td align="right"><b>Coq</b></td> <td><a href="http://coq.inria.fr/">http://coq.inria.fr/</a></td></tr> |