Journal article icon

Journal article

Algebra of Programming in Agda: Dependent Types for Relational Program Derivation

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, 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 where well-founded recursion is used to model terminating hylomorphisms in a language with inductive types.

Actions


Access Document


Publisher copy:
10.1017/S0956796809007345

Authors



Journal:
Journal of Functional Programming More from this journal
Volume:
19
Issue:
5
Pages:
545-579
Publication date:
2009-01-01
DOI:


UUID:
uuid:3dc49e23-10df-4c8f-b672-1485c7f1c8f5
Local pid:
cs:5006
Deposit date:
2015-03-31

Terms of use



Views and Downloads






If you are the owner of this record, you can report an update to it here: Report update to this record

TO TOP