Computer ScienceScience & MathematicsEconomics & FinanceBusiness & ManagementPolitics & GovernmentHistoryPhilosophy

Certified Programming with Dependent Types

A Pragmatic Introduction to the Coq Proof Assistant

by Adam Chlipala

Certified Programming with Dependent Types

Subscribe to new books via dBooks.org telegram channel

Join
DescriptionTable of ContentsDetailsHashtagsReport an issue

Book Description

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.

This open book is licensed under a Creative Commons License (CC BY-NC-ND). You can download Certified Programming with Dependent Types ebook for free in PDF format (4.3 MB).

Table of Contents

Chapter 1
Introduction
Chapter 2
Some Quick Examples
Chapter 3
Introducing Inductive Types
Chapter 4
Inductive Predicates
Chapter 5
Infinite Data and Proofs
Chapter 6
Subset Types and Variations
Chapter 7
General Recursion
Chapter 8
More Dependent Types
Chapter 9
Dependent Data Structures
Chapter 10
Reasoning About Equality Proofs
Chapter 11
Generic Programming
Chapter 12
Universes and Axioms
Chapter 13
Proof Search by Logic Programming
Chapter 14
Proof Search in Ltac
Chapter 15
Proof by Reflection
Chapter 16
Proving in the Large
Chapter 17
A Taste of Reasoning About Programming Language Syntax

Book Details

Title
Certified Programming with Dependent Types
Subject
Computer Science
Publisher
MIT Press
Published
2019
Pages
368
Edition
1
Language
English
ISBN13 Digital
9780262026659
ISBN10 Digital
0262026651
PDF Size
4.3 MB
License
CC BY-NC-ND

Book Hashtags

Related Books

Introduction to Programming with Fortran
This fourth Edition presents new examples on submodules, derived type i/o, object oriented programming, abstract interfaces and procedure pointers, C interop, sorting and searching, statistics and converting to more modern versions of Fortran.Key FeaturesHighlights the core language features of modern Fortran including data typing, array processing...
Pro TBB
This book is a modern guide for all C++ programmers to learn Threading Building Blocks (TBB). Written by TBB and parallel programming experts, this book reflects their collective decades of experience in developing and teaching parallel programming with TBB, offering their insights in an approachable manner. Throughout the book the authors present ...
Programming for Computations - Python
This book presents computer programming as a key method for solving mathematical problems. This second edition of the well-received book has been extensively revised: All code is now written in Python version 3.6 (no longer version 2.7). In addition, the two first chapters of the previous edition have been extended and split up into five new chapte...
XcalableMP PGAS Programming Language
XcalableMP is a directive-based parallel programming language based on Fortran and C, supporting a Partitioned Global Address Space (PGAS) model for distributed memory parallel systems. This open book presents XcalableMP language from its programming model and basic concept to the experience and performance of applications described in XcalableMP.�...
Fundamentals of Computer Programming with C#
This open book aims to provide novice programmers solid foundation of basic knowledge regardless of the programming language. This book covers the fundamentals of programming that have not changed significantly over the last 10 years. Educational content was developed by an authoritative author team led by Svetlin Nakov from the Software University...
Defensive Database Programming with SQL Server
Resilient T-SQL code is code that is designed to last, and to be safely reused by others. The goal of defensive database programming, the goal of this book, is to help you to produce resilient T-SQL code that robustly and gracefully handles cases of unintended use, and is resilient to common changes to the database environment. Too often as deve...