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.</p
AbstractIn this paper we demonstrate that the basic rules and calculational techniques used in two e...
Relational program verification is a variant of program verification where one focuses on guaranteei...
If you have never met a metaprogram in a dependently typed programming lan-guage like Agda [Norell, ...
Relational program derivation is the technique of stepwise refining a relational specification to a ...
Relational program derivation is the technique of stepwise refining a relational specification to a ...
Abstract. Dependent type theory is rich enough to express that a pro-gram satisfies an input/output ...
Dependent type theory is rich enough to express that a program satisfies an input/output relational ...
Dependently typed programming is hard, because ideally dependently typed programs should share struc...
Dependently typed programming is hard, because ideally depen-dently typed programs should share stru...
We give an overview of Agda, the latest in a series of dependently typed programming languages deve...
In these lecture notes we give an introduction to functional programming with dependent types. We us...
We give an overview of Agda, the latest in a series of dependently typed programming languages dev...
Most existing programming languages provide little support to formally state and prove properties ab...
Modern dependently typed functional programming languages like Agda allow very specific restrictions...
In this paper we demonstrate that the basic rules and calculational techniques used in two extensive...
AbstractIn this paper we demonstrate that the basic rules and calculational techniques used in two e...
Relational program verification is a variant of program verification where one focuses on guaranteei...
If you have never met a metaprogram in a dependently typed programming lan-guage like Agda [Norell, ...
Relational program derivation is the technique of stepwise refining a relational specification to a ...
Relational program derivation is the technique of stepwise refining a relational specification to a ...
Abstract. Dependent type theory is rich enough to express that a pro-gram satisfies an input/output ...
Dependent type theory is rich enough to express that a program satisfies an input/output relational ...
Dependently typed programming is hard, because ideally dependently typed programs should share struc...
Dependently typed programming is hard, because ideally depen-dently typed programs should share stru...
We give an overview of Agda, the latest in a series of dependently typed programming languages deve...
In these lecture notes we give an introduction to functional programming with dependent types. We us...
We give an overview of Agda, the latest in a series of dependently typed programming languages dev...
Most existing programming languages provide little support to formally state and prove properties ab...
Modern dependently typed functional programming languages like Agda allow very specific restrictions...
In this paper we demonstrate that the basic rules and calculational techniques used in two extensive...
AbstractIn this paper we demonstrate that the basic rules and calculational techniques used in two e...
Relational program verification is a variant of program verification where one focuses on guaranteei...
If you have never met a metaprogram in a dependently typed programming lan-guage like Agda [Norell, ...