Implementing mathematics with the Nuprl proof development system
Implementing mathematics with the Nuprl proof development system
Foundations of logic programming; (2nd extended ed.)
Foundations of logic programming; (2nd extended ed.)
Information and Computation - Semantics of Data Types
Equivalences of logic programs
Foundations of deductive databases and logic programming
Veritas+: a specification language based on type theory
Proceedings of the Mathematical Sciences Institute workshop on Hardware specification, verification and synthesis: mathematical aspects
Tactical theorem proving in program verification
CADE-10 Proceedings of the tenth international conference on Automated deduction
CADE-10 Proceedings of the tenth international conference on Automated deduction
Logic programming in the LF logical framework
Logical frameworks
A theory of binding structures and applications to rewriting
Theoretical Computer Science
Middle-out reasoning for logic program synthesis
ICLP'93 Proceedings of the tenth international conference on logic programming on Logic programming
A Transformation System for Developing Recursive Programs
Journal of the ACM (JACM)
A Deductive Approach to Program Synthesis
ACM Transactions on Programming Languages and Systems (TOPLAS)
Symbolic Logic and Mechanical Theorem Proving
Symbolic Logic and Mechanical Theorem Proving
Tutorial Notes: Reasoning about Logic Programs
LPSS '92 Proceedings of the Second International Logic Programming Summer School on Logic Programming in Action
Programs Viewed as SKOLEM Functions
Method of Programming, Selected Papers on the CIP-Project
Specifying Theorem Provers in a Higher-Order Logic Programming Language
Proceedings of the 9th International Conference on Automated Deduction
Using Middle-Out Reasoning to Control the Synthesis of Tail-Recursive Programs
CADE-11 Proceedings of the 11th International Conference on Automated Deduction: Automated Deduction
Logic Program Synthesis in a Higher-Order Setting
CL '00 Proceedings of the First International Conference on Computational Logic
Hi-index | 0.00 |
Often, calculi for manipulating and reasoning about programs can be recast as calculi for synthesizing programs. The difference involves often only a slight shift of perspective: admitting metavariables into proofs. We propose that such calculi should be implemented in logical frameworks that support this kind of proof construction and that such an implementation can unify program verification and synthesis. Our proposal is illustrated with a worked example developed in Paulson's Isabelle system. We also give examples of existent calculi that are closely related to the methodology we are proposing and others that can be profitably recast using our approach.