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: 77
Created: 2022-02-01
License: CC BY-NC-ND
Author(s): by Adam Chlipala
Certified Programming with Dependent Types

Warning: Trying to access array offset on false in /home/tutovnfz/public_html/article.php on line 233

Others Programming Tutorials

Basic Programming Concepts

C Programming Notes for Professionals

The C Programming Language Handbook

Java-Based Real-Time Programming

A Field Guide to Genetic Programming

Others related eBooks about Certified Programming with Dependent Types

Rexx Programmer's Reference

Download free course Rexx Programmer's Reference, pdf file on 723 pages by Howard Fosdick....

Introduction to Microsoft SharePoint 2016

Download a free document of SharePoint 2016, a course in pdf on 64 pages for beginners....

Python 3 Patterns, Recipes and Idioms

This book is aimed at more experienced Python programmers who are looking to deepen their understanding of the language and modern programming idioms. Much of the material focuses on some of the more advanced techniques used by libraries, frameworks, and applications. ...

IPython Interactive Computing and Visualization Cookbook

This book contains many ready-to-use, focused recipes for high-performance scientific computing and data analysis, from the latest IPython/Jupyter features to the most advanced tricks, to help you write better and faster code. You will apply these state-of-the-art methods to various real-world examp...

Modeling and Simulation in Python

Modeling and Simulation in Python is an introduction to physical modeling using a computat..., download free Python tutorial in PDF (245 pages) created by ....

Principles of Programming Languages

Download free course Principles of Programming Languages, pdf file on 163 pages by Mike Grant, Zachary Palmer, Scott Smith....

Building Back-End Web Apps with Java, JPA and JSF

This book shows how to build back-end web applications with Java, JPA and JSF. A back-end web app is a distributed web app where essentially all work is performed by the back-end component, including data validation and UI page creation, while the front-end only consists of a web browser's renderi...

Android on x86

Download free course Android on x86, pdf file on 375 pages by by Iggy Krajci, Darren Cummings....

Learning iOS eBook (PDF)

Download free IOS tutorial course material and training in PDF file 1131 pages....

Tools and Algorithms for the Construction and Analysis of Systems

Download free course Tools and Algorithms for the Construction and Analysis of Systems, pdf file on 426 pages by Tomáš Vojnar, Lijun Zhang....