Certified Programming with Dependent Types


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.
Download free tutorial in PDF (368 pages) created by Adam Chlipala .
Pages : 368
Size :
File type : HTML
Downloads: 186
Created: 2021-05-15
License: Free
Author(s): 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 Certified Programming Tutorials

Others related eBooks about Certified Programming with Dependent Types

Wireless Hacking tutorial

Download free PDF tutorial about Wireless Hacking and Technic of protection, training document under 70 pages intended to beginners by Edri Guy....

Guide to NumPy

NumPy is an extension of Python, which provides highly optimized arrays and numerical operations. NumPy replaces a lot of the functionality of Matlab and Mathematica specifically vectorized operations, but in contrast to those products is free and open source. In today's world of science and technol...

Cyber Security Planning Guide

The cybersecurity action plan is a critical element of cybersecurity readiness. This tutorial explains what goes into these plans and how to start one....

The Little Go Book

Download free course The Little Go Book, pdf file on 84 pages by Karl Seguin....

Download free Scala tutorial

Download free Scala tutorial course in PDF, training file in 62 chapters and 218 pages. Free unaffiliated ebook created from Stack OverFlow contributor....

Efficient Learning Machines: Theories, Concepts, and Applications for Engineers and System Designers

Machine learning techniques provide cost-effective alternatives to traditional methods for extracting underlying relationships between information and data and for predicting future events by processing existing information to train models. Efficient Learning Machines explores the major topics of ma...

Code the Classics

Download free course Code the Classics, pdf file on 224 pages by David Crookes, Andrew Gillett, Liz Upton, Eben Upton, Sean M. Tracey, Dan Malone, Allister Brimble....

New Frontiers in Graph Theory

Nowadays, graph theory is an important analysis tool in mathematics and computer science. Because of the inherent simplicity of graph theory, it can be used to model many different physical and abstract systems such as transportation and communication networks, models for business administration, po...

Elixir Succinctly

Download free course Elixir Succinctly, pdf file on 84 pages by Emanuele DelBono....

Microservices vs Service-Oriented Architecture (SOA)

For anyone who has been developing web applications for 10 years or more, the recent rise of microservices sounds a lot like a development approach we already knew - service-oriented architecture (SOA). Both architectures are focused on breaking up large monolithic applications into collections of...