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
Rippling: meta-level guidance for mathematical reasoning
Rippling: meta-level guidance for mathematical reasoning
IJCAI'93 Proceedings of the 13th international joint conference on Artifical intelligence - Volume 1
An approach to automatic deductive synthesis of functional programs
Annals of Mathematics and Artificial Intelligence
Hi-index | 0.00 |
The work deals with deductive synthesis of functional programs. During this synthesis formal specification of a program is taken as a mathe-matical existence theorem and while proving it, we derive a program and prove that this program corresponds to given specification. Our method of synthesis is based on the deductive tableau method, that allows to derive three basic constructions of a functional program. But the full search of possible proof attempts in the deductive tableau induces a very large search space; the proof is needed to be guided. For using this method in the automatic mode additional heuristics are required. Some of such heuristics are proposed in this work. They consist in proof planning by using rippling and in the use of sorted logic with type hierarchy that reduces search space and blocks some branches of proof, corresponding to synthesis of incorrect functions. The proposed techniques are implemented in the system ALISA and used for automatic synthesis of several functions on Lisp language.