Verified Functional Programming in Agda Verified Functional Programming in Agda
ACM Books

Verified Functional Programming in Agda

    • ¥7,800
    • ¥7,800

発行者による作品情報

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.

ジャンル
コンピュータ/インターネット
発売日
2016年
2月1日
言語
EN
英語
ページ数
284
ページ
発行者
Association for Computing Machinery and Morgan & Claypool Publishers
販売元
Ingram DV LLC
サイズ
5.4
MB
Logic And Declarative Language Logic And Declarative Language
2004年
Concepts and Semantics of Programming Languages 1 Concepts and Semantics of Programming Languages 1
2021年
Theory of Computation and Application- Automata,Formal languages,Computational Complexity (2nd Edition) Theory of Computation and Application- Automata,Formal languages,Computational Complexity (2nd Edition)
2022年
Formal Methods in Computer Science Formal Methods in Computer Science
2019年
Computer Science: Questions and Answers Computer Science: Questions and Answers
2017年
An Introduction to the Analysis of Algorithms An Introduction to the Analysis of Algorithms
2018年
A Framework for Scientific Discovery through Video Games A Framework for Scientific Discovery through Video Games
2014年
Trust Extension as a Mechanism for Secure Code Execution on Commodity Computers Trust Extension as a Mechanism for Secure Code Execution on Commodity Computers
2014年
Embracing Interference in Wireless Systems Embracing Interference in Wireless Systems
2014年
Edmund Berkeley and the Social Responsibility of Computer Professionals Edmund Berkeley and the Social Responsibility of Computer Professionals
2015年
Candidate Multilinear Maps Candidate Multilinear Maps
2015年
Reactive Internet Programming Reactive Internet Programming
2016年