Certified Programming with Dependent Types



Download free course Certified Programming with Dependent Types, pdf file on 368 pages by Adam Chlipala.
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.


Table of contents

  • Introduction
  • Some Quick Examples
  • Introducing Inductive Types
  • Inductive Predicates
  • Infinite Data and Proofs
  • Subset Types and Variations
  • General Recursion
  • More Dependent Types
  • Dependent Data Structures
  • Reasoning About Equality Proofs
  • Generic Programming
  • Universes and Axioms
  • Proof Search by Logic Programming
  • Proof Search in Ltac
  • Proof by Reflection
  • Proving in the Large
  • A Taste of Reasoning About Programming Language Syntax
Pages : 368
Size : 4.3 MB
File type : PDF
Downloads: 62
Created: 2022-02-01
License: CC BY-NC-ND
Author(s): by Adam Chlipala
Certified Programming with Dependent Types

Others Programming Tutorials

A Field Guide to Genetic Programming

Practical Foundations for Programming Languages

Introduction to Computers and Programming

C Programming for Arduino

Programming Languages and Systems

Others related eBooks about Certified Programming with Dependent Types

Introduction to ADA 2012

This course is for developers who already know Ada 95 and want to learn about the new possibilities brought by Ada 2005 and Ada 2012. A brief introduction to Ada 2012 by John Barnes....

ADA course in PDF

Welcome to the Ada Programming tutorial in PDF, training document under 200 pages intended to beginners....

Interpretable Machine Learning

Download free course Interpretable Machine Learning, pdf file on 312 pages by Christoph Molnar....

Android Programming Tutorials

This book shows you what you can do with Android, through a series of 40 individual exercises. It gives you hands-on instruction in how to build sophisticated Android applications, using many of the technologies outlined in CommonsWare's other Android books. ...

Visual Basic .NET Programming Tutorial

Download free Visual Basic tutorial course in PDF, training file in 51 chapters and 149 pages. Free unaffiliated ebook created from Stack OverFlow contributor....

O'Reilly® Think Python, 2nd Edition, - How to Think Like a Computer Scientist

Think Python is an introduction to Python programming for students with no programming experience. It starts with the most basic concepts of programming, and is carefully designed to define all terms when they are first used and to develop each new concept in a logical progression. Larger pieces, ...

Modern Java EE Design Patterns

Download free course Modern Java EE Design Patterns, pdf file on 67 pages by Markus Eisele....

Don't Panic: Mobile Developer's Guide to The Galaxy, 18th Edition

This project was initiated in 2009 with the aim to spread knowledge about mobile technolog..., download free Mobile Development tutorial in PDF (337 pages) created by Marco Tabor ....

How To Make Video Games

Learn How To Make Video Games, This ebook shows you everything you need to know to make video games....

A Whirlwind Tour of Python

A Whirlwind Tour of Python is a fast-paced introduction to essential features of the Python language, aimed at researchers and developers who are already familiar with programming in another language. The material is particularly designed for those who wish to use Python for data science and/or scie...