Program verification in a logical theory of construction
Proc. of a conference on Functional programming languages and computer architecture
ACM SIGPLAN Notices
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
A framework for defining logics
Journal of the ACM (JACM)
Optimized Encodings of Fragments of Type Theory in First Order Logic
TYPES '95 Selected papers from the International Workshop on Types for Proofs and Programs
Theorem Proving for Functional Programmers
IFL '02 Selected Papers from the 13th International Workshop on Implementation of Functional Languages
Modelling general recursion in type theory
Mathematical Structures in Computer Science
The logic of demand in Haskell
Journal of Functional Programming
Automation for interactive proof: first prototype
Information and Computation - Special issue: Combining logical systems
Embedding a logical theory of constructions in Agda
Proceedings of the 3rd workshop on Programming languages meets program verification
The TPTP Problem Library and Associated Infrastructure
Journal of Automated Reasoning
Partial and Nested Recursive Function Definitions in Higher-order Logic
Journal of Automated Reasoning
Connecting a logical framework to a first-order logic prover
FroCoS'05 Proceedings of the 5th international conference on Frontiers of Combining Systems
A tool for automated theorem proving in agda
TYPES'04 Proceedings of the 2004 international conference on Types for Proofs and Programs
Dependently typed programming based on automated theorem proving
MPC'12 Proceedings of the 11th international conference on Mathematics of Program Construction
HALO: haskell to logic through denotational semantics
POPL '13 Proceedings of the 40th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Hi-index | 0.00 |
We propose a new approach to the computer-assisted verification of functional programs. We work in first order theories of functional programs which are obtained by extending Aczel's first order theory of combinatory formal arithmetic with positive inductive and coinductive predicates. Rather than building a special purpose system we implement our theories in Agda, a proof assistant for dependent type theory which can be used as a generic theorem prover. Agda provides support for interactive reasoning by encoding first order theories using the formulae-as-types principle. Further support is provided by off-the-shelf automatic theorem provers for first order logic which can be called by a program which translates Agda representations of first order formulae into the TPTP language understood by the provers. We show some examples where we combine interactive and automatic reasoning, covering both proof by induction and coinduction.