Program verification in a logical theory of construction
Proc. of a conference on Functional programming languages and computer architecture
Advanced School on Mathematical models for the semantics of parallelism
A functional programming approach to the specification and verification of concurrent systems
Formal Aspects of Computing
Comparing integrated and external logics of functional programs
Science of Computer Programming
Two frameworks of theories and their implementation in Isabelle
Logical frameworks
A framework for defining logics
Journal of the ACM (JACM)
QuickCheck: a lightweight tool for random testing of Haskell programs
ICFP '00 Proceedings of the fifth ACM SIGPLAN international conference on Functional programming
Theorem Proving for Functional Programmers
IFL '02 Selected Papers from the 13th International Workshop on Implementation of Functional Languages
Verifying haskell programs using constructive type theory
Proceedings of the 2005 ACM SIGPLAN workshop on Haskell
Modelling general recursion in type theory
Mathematical Structures in Computer Science
The logic of demand in Haskell
Journal of Functional Programming
Defining and reasoning about recursive functions: a practical tool for the coq proof assistant
FLOPS'06 Proceedings of the 8th international conference on Functional and Logic Programming
Connecting a logical framework to a first-order logic prover
FroCoS'05 Proceedings of the 5th international conference on Frontiers of Combining Systems
Equational reasoning about programs with general recursion and call-by-value semantics
PLPV '12 Proceedings of the sixth workshop on Programming languages meets program verification
Combining interactive and automatic reasoning in first order theories of functional programs
FOSSACS'12 Proceedings of the 15th international conference on Foundations of Software Science and Computational Structures
Trends in Trends in Functional Programming 1999/2000 versus 2007/2008
Higher-Order and Symbolic Computation
Hi-index | 0.00 |
We propose a new way to reason about general recursive functional programs in the dependently typed programming language Agda, which is based on Martin-Löf's intuitionistic type theory. We show how to embed an external programming logic, Aczel's Logical Theory of Constructions (LTC) inside Agda. To this end we postulate the existence of a domain of untyped functional programs and the conversion rules for these programs. Furthermore, we represent the inductive notions in LTC (intuitionistic predicate logic with equality, and totality predicates) as inductive notions in Agda. To illustrate our approach we specify an LTC-style logic for PCF, and show how to prove the termination and correctness of a general recursive algorithm for computing the greatest common divisor of two numbers.