Algebra of programming in Agda: Dependent types for relational program derivation

31Citations
Citations of this article
32Readers
Mendeley users who have this article in their library.

Abstract

Relational program derivation is the technique of stepwise refining a relational specification to a program by algebraic rules. The program thus obtained is correct by construction. Meanwhile, dependent type theory is rich enough to express various correctness properties to be verified by the type checker. We have developed a library, AoPA (Algebra of Programming in Agda), to encode relational derivations in the dependently typed programming language Agda. A program is coupled with an algebraic derivation whose correctness is guaranteed by the type system. Two non-trivial examples are presented: an optimisation problem and a derivation of quicksort in which well-founded recursion is used to model terminating hylomorphisms in a language with inductive types. © 2009 Cambridge University Press.

Cite

CITATION STYLE

APA

Mu, S. C., Ko, H. S., & Jansson, P. (2009). Algebra of programming in Agda: Dependent types for relational program derivation. Journal of Functional Programming, 19(5), 545–579. https://doi.org/10.1017/S0956796809007345

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free