Introduction to HOL: a theorem proving environment for higher order logic
Introduction to HOL: a theorem proving environment for higher order logic
Dependent Types for Program Termination Verification
Higher-Order and Symbolic Computation
Fix-Point Equations for Well-Founded Recursion in Type Theory
TPHOLs '00 Proceedings of the 13th International Conference on Theorem Proving in Higher Order Logics
Efficient Reasoning about Executable Specifications in Coq
TPHOLs '02 Proceedings of the 15th International Conference on Theorem Proving in Higher Order Logics
Type-Theoretic Functional Semantics
TPHOLs '02 Proceedings of the 15th International Conference on Theorem Proving in Higher Order Logics
TYPES '00 Selected papers from the International Workshop on Types for Proofs and Programs
A Formal Executable Semantics of the JavaCard Platform
ESOP '01 Proceedings of the 10th European Symposium on Programming Languages and Systems
Type-based termination of recursive definitions
Mathematical Structures in Computer Science
Journal of Functional Programming
Interactive Theorem Proving and Program Development
Interactive Theorem Proving and Program Development
Definitions by rewriting in the Calculus of Constructions
Mathematical Structures in Computer Science
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
Extracting a data flow analyser in constructive logic
Theoretical Computer Science - Applied semantics: Selected topics
Isabelle/HOL: a proof assistant for higher-order logic
Isabelle/HOL: a proof assistant for higher-order logic
Proving equalities in a commutative ring done right in coq
TPHOLs'05 Proceedings of the 18th international conference on Theorem Proving in Higher Order Logics
A coinductive monad for prop-bounded recursion
PLPV '07 Proceedings of the 2007 workshop on Programming languages meets program verification
Formal verification of translation validators: a case study on instruction scheduling optimizations
Proceedings of the 35th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Tilting at Windmills with Coq: Formal Verification of a Compilation Algorithm for Parallel Moves
Journal of Automated Reasoning
Extraction in Coq: An Overview
CiE '08 Proceedings of the 4th conference on Computability in Europe: Logic and Theory of Algorithms
TPHOLs '08 Proceedings of the 21st International Conference on Theorem Proving in Higher Order Logics
Embedding a logical theory of constructions in Agda
Proceedings of the 3rd workshop on Programming languages meets program verification
Another Look at Function Domains
Electronic Notes in Theoretical Computer Science (ENTCS)
A Formally Verified Compiler Back-end
Journal of Automated Reasoning
Partial and Nested Recursive Function Definitions in Higher-order Logic
Journal of Automated Reasoning
Verification of the redecoration algorithm for triangular matrices
TYPES'07 Proceedings of the 2007 international conference on Types for proofs and programs
Finding lexicographic orders for termination proofs in Isabelle/HOL
TPHOLs'07 Proceedings of the 20th international conference on Theorem proving in higher order logics
Termination of Isabelle functions via termination of rewriting
ITP'11 Proceedings of the Second international conference on Interactive theorem proving
CIC∧: type-based termination of recursive definitions in the calculus of inductive constructions
LPAR'06 Proceedings of the 13th international conference on Logic for Programming, Artificial Intelligence, and Reasoning
Partial recursive functions in higher-order logic
IJCAR'06 Proceedings of the Third international joint conference on Automated Reasoning
Automated synthesis of induction axioms for programs with second-order recursion
IJCAR'10 Proceedings of the 5th international conference on Automated Reasoning
The optimal fixed point combinator
ITP'10 Proceedings of the First international conference on Interactive Theorem Proving
Equations: a dependent pattern-matching compiler
ITP'10 Proceedings of the First international conference on Interactive Theorem Proving
Hi-index | 0.00 |
We present a practical tool for defining and proving properties of recursive functions in the Coq proof assistant. The tool generates from pseudo-code the graph of the intended function as an inductive relation. Then it proves that the relation actually represents a function, which is by construction the function that we are trying to define. Then, we generate induction and inversion principles, and a fixpoint equation for proving other properties of the function. Our tool builds upon state-of-the-art techniques for defining recursive functions, and can also be used to generate executable functions from inductive descriptions of their graph. We illustrate the benefits of our tool on two case studies.