Implementing mathematics with the Nuprl proof development system
Implementing mathematics with the Nuprl proof development system
Deductive synthesis of sorting programs
Journal of Symbolic Computation
Fundamentals of Deductive Program Synthesis
IEEE Transactions on Software Engineering
Rippling: a heuristic for guiding inductive proofs
Artificial Intelligence
Experiments with a Heuristic Compiler
Journal of the ACM (JACM)
Automation inductive specification proofs
Fundamenta Informaticae - Special issue on symbolic computation and artificial intelligence
A Deductive Approach to Program Synthesis
ACM Transactions on Programming Languages and Systems (TOPLAS)
An improved program-synthesizing algorithm and its correctness
Communications of the ACM
A higher-order interpretation of deductive tableau
Journal of Symbolic Computation
Symbolic Logic and Mechanical Theorem Proving
Symbolic Logic and Mechanical Theorem Proving
Automatic Synthesis of Recursive Programs: The Proof-Planning Paradigm
Automated Software Engineering
Proceedings of the 10th International Conference on Automated Deduction
Rippling: meta-level guidance for mathematical reasoning
Rippling: meta-level guidance for mathematical reasoning
Inductive Synthesis of Functional Programs: An Explanation Based Generalization Approach
The Journal of Machine Learning Research
Constructing Induction Rules for Deductive Synthesis Proofs
Electronic Notes in Theoretical Computer Science (ENTCS)
Automatic deductive synthesis of lisp programs in the system ALISA
JELIA'06 Proceedings of the 10th European conference on Logics in Artificial Intelligence
Hi-index | 0.01 |
The work deals with automatic deductive synthesis of functional programs. Formal specification of a program is taken as a mathematical existence theorem and while proving it, we derive a program and simultaneously prove that this program corresponds to given specification. Several problems have to be resolved for automatic synthesis: the choice of synthesis rules that allows us to derive the basic constructions of a functional program, order of rule application and choice of a particular induction rule. The method proposed here is based on the deductive tableau method. The basic method gives rules for functional program construction. To determine the proof strategy we use some external heuristics, including rippling. And for the induction hypothesis formation the combination of rippling and the deductive tableau method became very useful. The proposed techniques are implemented in the system ALISA (Automatic Lisp Synthesizer) and used for automatic synthesis of several functions in the Lisp language.