Certified programming with dependent types a pragmatic introduction to the Coq proof assistant

The technology of mechanized program verification can play a supporting role in many kinds of research projects in computer science, and related tools for formal proof-checking are seeing increasing adoption in mathematics and engineering. This book provides an introduction to the Coq software for w...

Full description

Bibliographic Details
Main Author: Chlipala, Adam
Format: eBook
Language:English
Published: Cambridge, MA The MIT Press 2013
Subjects:
Online Access:
Collection: MIT Press eBook Archive - Collection details see MPG.ReNa
LEADER 02619nmm a2200337 u 4500
001 EB002071269
003 EBX01000000000000001211359
005 00000000000000.0
007 cr|||||||||||||||||||||
008 220922 ||| eng
020 |a 0262317869 
020 |a 9780262317863 
050 4 |a QA76.9.A96 
100 1 |a Chlipala, Adam 
245 0 0 |a Certified programming with dependent types  |h Elektronische Ressource  |b a pragmatic introduction to the Coq proof assistant  |c Adam Chlipala 
260 |a Cambridge, MA  |b The MIT Press  |c 2013 
300 |a xii, 424 pages 
653 |a Computer programming 
653 |a COMPUTER SCIENCE/Programming Languages 
653 |a COMPUTER SCIENCE/General 
653 |a Coq (Electronic resource) 
653 |a Automatic theorem proving / Computer programs 
041 0 7 |a eng  |2 ISO 639-2 
989 |b MITArchiv  |a MIT Press eBook Archive 
028 5 0 |a 10.7551/mitpress/9153.001.0001 
776 |z 0262026651 
776 |z 9780262317870 
776 |z 9780262026659 
856 4 0 |u https://doi.org/10.7551/mitpress/9153.001.0001?locatt=mode:legacy  |x Verlag  |3 Volltext 
082 0 |a 005.1 
520 |a The technology of mechanized program verification can play a supporting role in many kinds of research projects in computer science, and related tools for formal proof-checking are seeing increasing adoption in mathematics and engineering. This book provides an introduction to the Coq software for writing and checking mathematical proofs. It takes a practical engineering focus throughout, emphasizing techniques that will help users to build, understand, and maintain large Coq developments and minimize the cost of code change over time. Two topics, rarely discussed elsewhere, are covered in detail: effective dependently typed programming (making productive use of a feature at the heart of the Coq system) and construction of domain-specific proof tactics. Almost every subject covered is also relevant to interactive computer theorem proving in general, not just program verification, demonstrated through examples of verified programs applied in many different sorts of formalizations. The book develops a unique automated proof style and applies it throughout; even experienced Coq users may benefit from reading about basic Coq concepts from this novel perspective. The book also offers a library of tactics, or programs that find proofs, designed for use with examples in the book. Readers will acquire the necessary skills to reimplement these tactics in other settings by the end of the book. All of the code appearing in the book is freely available online