Verified Functional Programming in Agda

Nonfiction, Computers, Advanced Computing, Computer Science, Programming, Programming Languages, General Computing
Cover of the book Verified Functional Programming in Agda by Aaron Stump, Association for Computing Machinery and Morgan & Claypool Publishers
View on Amazon View on AbeBooks View on Kobo View on B.Depository View on eBay View on Walmart
Author: Aaron Stump ISBN: 9781970001266
Publisher: Association for Computing Machinery and Morgan & Claypool Publishers Publication: February 1, 2016
Imprint: ACM Books Language: English
Author: Aaron Stump
ISBN: 9781970001266
Publisher: Association for Computing Machinery and Morgan & Claypool Publishers
Publication: February 1, 2016
Imprint: ACM Books
Language: English

Agda is an advanced programming language based on Type Theory. Agda's type system is expressive enough to support full functional verification of programs, in two styles. In external verification, we write pure functional programs and then write proofs of properties about them. The proofs are separate external artifacts, typically using structural induction. In internal verification, we specify properties of programs through rich types for the programs themselves. This often necessitates including proofs inside code, to show the type checker that the specified properties hold. The power to prove properties of programs in these two styles is a profound addition to the practice of programming, giving programmers the power to guarantee the absence of bugs, and thus improve the quality of software more than previously possible. Verified Functional Programming in Agda is the first book to provide a systematic exposition of external and internal verification in Agda, suitable for undergraduate students of Computer Science. No familiarity with functional programming or computer-checked proofs is presupposed. The book begins with an introduction to functional programming through familiar examples like booleans, natural numbers, and lists, and techniques for external verification. Internal verification is considered through the examples of vectors, binary search trees, and Braun trees. More advanced material on type-level computation, explicit reasoning about termination, and normalization by evaluation is also included. The book also includes a medium-sized case study on Huffman encoding and decoding.

View on Amazon View on AbeBooks View on Kobo View on B.Depository View on eBay View on Walmart

Agda is an advanced programming language based on Type Theory. Agda's type system is expressive enough to support full functional verification of programs, in two styles. In external verification, we write pure functional programs and then write proofs of properties about them. The proofs are separate external artifacts, typically using structural induction. In internal verification, we specify properties of programs through rich types for the programs themselves. This often necessitates including proofs inside code, to show the type checker that the specified properties hold. The power to prove properties of programs in these two styles is a profound addition to the practice of programming, giving programmers the power to guarantee the absence of bugs, and thus improve the quality of software more than previously possible. Verified Functional Programming in Agda is the first book to provide a systematic exposition of external and internal verification in Agda, suitable for undergraduate students of Computer Science. No familiarity with functional programming or computer-checked proofs is presupposed. The book begins with an introduction to functional programming through familiar examples like booleans, natural numbers, and lists, and techniques for external verification. Internal verification is considered through the examples of vectors, binary search trees, and Braun trees. More advanced material on type-level computation, explicit reasoning about termination, and normalization by evaluation is also included. The book also includes a medium-sized case study on Huffman encoding and decoding.

More books from Association for Computing Machinery and Morgan & Claypool Publishers

Cover of the book The Handbook of Multimodal-Multisensor Interfaces, Volume 3 by Aaron Stump
Cover of the book Computational Prediction of Protein Complexes from Protein Interaction Networks by Aaron Stump
Cover of the book Ada's Legacy by Aaron Stump
Cover of the book The VR Book by Aaron Stump
Cover of the book An Architecture for Fast and General Data Processing on Large Clusters by Aaron Stump
Cover of the book The Handbook of Multimodal-Multisensor Interfaces, Volume 1 by Aaron Stump
Cover of the book The Handbook of Multimodal-Multisensor Interfaces, Volume 2 by Aaron Stump
Cover of the book Smarter Than Their Machines by Aaron Stump
Cover of the book Frontiers of Multimedia Research by Aaron Stump
Cover of the book Edmund Berkeley and the Social Responsibility of Computer Professionals by Aaron Stump
Cover of the book Candidate Multilinear Maps by Aaron Stump
Cover of the book Shared-Memory Parallelism Can be Simple, Fast, and Scalable by Aaron Stump
Cover of the book Trust Extension as a Mechanism for Secure Code Execution on Commodity Computers by Aaron Stump
Cover of the book The Sparse Fourier Transform by Aaron Stump
Cover of the book A Framework for Scientific Discovery through Video Games by Aaron Stump
We use our own "cookies" and third party cookies to improve services and to see statistical information. By using this website, you agree to our Privacy Policy