Algebraic identities for program calculation
The Computer Journal - Special issue on Lazy functional programming
The maximum-segment-sum problem
Formal development programs and proofs
Extracting &ohgr;'s programs from proofs in the calculus of constructions
POPL '89 Proceedings of the 16th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Deforestation: transforming programs to eliminate trees
Proceedings of the Second European Symposium on Programming
Introduction to algorithms
TAPSOFT '89 2nd international joint conference on Theory and practice of software development
The ALF proof editor and its proof engine
TYPES '93 Proceedings of the international workshop on Types for proofs and programs
Science of Computer Programming - Special issue on mathematics of program construction
Science of Computer Programming - Special issue on mathematics of program construction
Algebra of programming
Cayenne—a language with dependent types
ICFP '98 Proceedings of the third ACM SIGPLAN international conference on Functional programming
Functional Programming with Bananas, Lenses, Envelopes and Barbed Wire
Proceedings of the 5th ACM Conference on Functional Programming Languages and Computer Architecture
Deliverables: A Categorial Approach to Program Development in Type Theory
MFCS '93 Proceedings of the 18th International Symposium on Mathematical Foundations of Computer Science
Elements of a Relational Theory of Datatypes
Proceedings of the IFIP TC2/WG 2.1 State-of-the-Art Report on Formal Program Development
Induction and Recursion on Datatypes
MPC '95 Mathematics of Program Construction
Galois connections and fixed point calculus
Algebraic and coalgebraic methods in the mathematics of program construction
Journal of Functional Programming
Theory and applications of inverting functions as folds
Science of Computer Programming - Special issue on mathematics of program construction (MPC 2002)
Modelling general recursion in type theory
Mathematical Structures in Computer Science
Formal certification of a compiler back-end or: programming a compiler with a proof assistant
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The next mainstream programming language: a game developer's perspective
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Dependent ML An approach to practical programming with dependent types
Journal of Functional Programming
A coinductive monad for prop-bounded recursion
PLPV '07 Proceedings of the 2007 workshop on Programming languages meets program verification
Maximum segment sum is back: deriving algorithms for two segment problems with bounded lengths
PEPM '08 Proceedings of the 2008 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
AMAST'10 Proceedings of the 13th international conference on Algebraic methodology and software technology
Trends in Trends in Functional Programming 1999/2000 versus 2007/2008
Higher-Order and Symbolic Computation
Towards certifiable implementation of graph transformation via relation categories
RAMiCS'12 Proceedings of the 13th international conference on Relational and Algebraic Methods in Computer Science
Relational algebraic ornaments
Proceedings of the 2013 ACM SIGPLAN workshop on Dependently-typed programming
Hi-index | 0.00 |
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.