Program = Proof

Program = Proof
Author: Samuel Mimram
Publisher:
Total Pages: 539
Release: 2020-07-03
Genre:
ISBN:

This course provides a first introduction to the Curry-Howard correspondence between programs and proofs, from a theoretical programmer's perspective: we want to understand the theory behind logic and programming languages, but also to write concrete programs (in OCaml) and proofs (in Agda). After an introduction to functional programming languages, we present propositional logic, λ-calculus, the Curry-Howard correspondence, first-order logic, Agda, dependent types and homotopy type theory.

Program Proofs

Program Proofs
Author: K. Rustan M. Leino
Publisher: MIT Press
Total Pages: 498
Release: 2023-03-07
Genre: Computers
ISBN: 026254623X

This comprehensive and highly readable textbook teaches how to formally reason about computer programs using an incremental approach and the verification-aware programming language Dafny. Program Proofs shows students what it means to write specifications for programs, what it means for programs to satisfy those specifications, and how to write proofs that connect specifications and programs. Writing with clarity and humor, K. Rustan M. Leino first provides an overview of the basic theory behind reasoning about programs. He then gradually builds up to complex concepts and applications, until students are facing real programs using objects, data structures, and non-trivial recursion. To emphasize the practical nature of program proofs, all material and examples use the verification-aware programming language Dafny, but no previous knowledge of Dafny is assumed. Written in a highly readable and student-friendly style Builds up to complex concepts in an incremental manner Comprehensively covers how to write proofs and how to specify and verify both functional programs and imperative programs Uses real program text from a real programming language, not psuedo code Features engaging illustrations and hands-on learning exercises

Certified Programming with Dependent Types

Certified Programming with Dependent Types
Author: Adam Chlipala
Publisher: MIT Press
Total Pages: 437
Release: 2013-12-06
Genre: Computers
ISBN: 0262317885

A handbook to the Coq software for writing and checking mathematical proofs, with a practical engineering focus. 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.

Interactive Theorem Proving and Program Development

Interactive Theorem Proving and Program Development
Author: Yves Bertot
Publisher: Springer Science & Business Media
Total Pages: 492
Release: 2013-03-14
Genre: Mathematics
ISBN: 366207964X

A practical introduction to the development of proofs and certified programs using Coq. An invaluable tool for researchers, students, and engineers interested in formal methods and the development of zero-fault software.

Certified Programs and Proofs

Certified Programs and Proofs
Author: Jean-Pierre Jouannaud
Publisher: Springer
Total Pages: 414
Release: 2011-11-15
Genre: Computers
ISBN: 3642253792

This book constitutes the referred proceedings of the First International Conference on Certified Programs and Proofs, CPP 2011, held in Kenting, Taiwan, in December 2011. The 24 revised regular papers presented together with 4 invited talks were carefully reviewed and selected from 49 submissions. They are organized in topical sections on logic and types, certificates, formalization, proof assistants, teaching, programming languages, hardware certification, miscellaneous, and proof perls.

Proof And Computation Ii: From Proof Theory And Univalent Mathematics To Program Extraction And Verification

Proof And Computation Ii: From Proof Theory And Univalent Mathematics To Program Extraction And Verification
Author: Klaus Mainzer
Publisher: World Scientific
Total Pages: 425
Release: 2021-07-27
Genre: Mathematics
ISBN: 9811236496

This book is for graduate students and researchers, introducing modern foundational research in mathematics, computer science, and philosophy from an interdisciplinary point of view. Its scope includes proof theory, constructive mathematics and type theory, univalent mathematics and point-free approaches to topology, extraction of certified programs from proofs, automated proofs in the automotive industry, as well as the philosophical and historical background of proof theory. By filling the gap between (under-)graduate level textbooks and advanced research papers, the book gives a scholarly account of recent developments and emerging branches of the aforementioned fields.

Certified Programs and Proofs

Certified Programs and Proofs
Author: Georges Gonthier
Publisher: Springer
Total Pages: 318
Release: 2013-12-11
Genre: Computers
ISBN: 3319035452

This book constitutes the refereed proceedings of the Third International Conference on Certified Programs and Proofs, CPP 2013, colocated with APLAS 2013 held in Melbourne, Australia, in December 2013. The 18 revised regular papers presented together with 1 invited lecture were carefully reviewed and selected from 39 submissions. The papers are organized in topical sections on code verification, elegant proofs, proof libraries, certified transformations and security.

Mechanizing Proof

Mechanizing Proof
Author: Donald MacKenzie
Publisher: MIT Press
Total Pages: 448
Release: 2004-01-30
Genre: Social Science
ISBN: 9780262632959

Most aspects of our private and social lives—our safety, the integrity of the financial system, the functioning of utilities and other services, and national security—now depend on computing. But how can we know that this computing is trustworthy? In Mechanizing Proof, Donald MacKenzie addresses this key issue by investigating the interrelations of computing, risk, and mathematical proof over the last half century from the perspectives of history and sociology. His discussion draws on the technical literature of computer science and artificial intelligence and on extensive interviews with participants. MacKenzie argues that our culture now contains two ideals of proof: proof as traditionally conducted by human mathematicians, and formal, mechanized proof. He describes the systems constructed by those committed to the latter ideal and the many questions those systems raise about the nature of proof. He looks at the primary social influence on the development of automated proof—the need to predict the behavior of the computer systems upon which human life and security depend—and explores the involvement of powerful organizations such as the National Security Agency. He concludes that in mechanizing proof, and in pursuing dependable computer systems, we do not obviate the need for trust in our collective human judgment.

Tools and Algorithms for the Construction and Analysis of Systems

Tools and Algorithms for the Construction and Analysis of Systems
Author: Susanne Graf
Publisher: Springer
Total Pages: 570
Release: 2003-06-29
Genre: Computers
ISBN: 3540464190

This book constitutes the refereed proceedings of the 6th International Conference on Tools and Algorithms for the Construction and Analysis of Systems, TACAS 2000, held as part of ETAPS 2000 in Berlin, Germany, in March/April 2000. The 33 revised full papers presented together with one invited paper and two short tool descriptions were carefully reviewed and selected from a total of 107 submissions. The papers are organized in topical sections on software and formal methods, formal methods, timed and hybrid systems, infinite and parameterized systems, diagnostic and test generation, efficient model checking, model-checking tools, symbolic model checking, visual tools, and verification of critical systems.

Program Verification

Program Verification
Author: Timothy T.R. Colburn
Publisher: Springer Science & Business Media
Total Pages: 454
Release: 2012-12-06
Genre: Computers
ISBN: 9401117934

Among the most important problems confronting computer science is that of developing a paradigm appropriate to the discipline. Proponents of formal methods - such as John McCarthy, C.A.R. Hoare, and Edgar Dijkstra - have advanced the position that computing is a mathematical activity and that computer science should model itself after mathematics. Opponents of formal methods - by contrast, suggest that programming is the activity which is fundamental to computer science and that there are important differences that distinguish it from mathematics, which therefore cannot provide a suitable paradigm. Disagreement over the place of formal methods in computer science has recently arisen in the form of renewed interest in the nature and capacity of program verification as a method for establishing the reliability of software systems. A paper that appeared in Communications of the ACM entitled, `Program Verification: The Very Idea', by James H. Fetzer triggered an extended debate that has been discussed in several journals and that has endured for several years, engaging the interest of computer scientists (both theoretical and applied) and of other thinkers from a wide range of backgrounds who want to understand computer science as a domain of inquiry. The editors of this collection have brought together many of the most interesting and important studies that contribute to answering questions about the nature and the limits of computer science. These include early papers advocating the mathematical paradigm by McCarthy, Naur, R. Floyd, and Hoare (in Part I), others that elaborate the paradigm by Hoare, Meyer, Naur, and Scherlis and Scott (in Part II), challenges, limits and alternatives explored by C. Floyd, Smith, Blum, and Naur (in Part III), and recent work focusing on formal verification by DeMillo, Lipton, and Perlis, Fetzer, Cohn, and Colburn (in Part IV). It provides essential resources for further study. This volume will appeal to scientists, philosophers, and laypersons who want to understand the theoretical foundations of computer science and be appropriately positioned to evaluate the scope and limits of the discipline.