Automatic Deductive Synthesis of Lisp Programs in the System ALISA
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.
KeywordsInduction Hypothesis Functional Program Goal Function Induction Rule Automatic Synthesis
Unable to display preview. Download preview PDF.
- 3.Basin, D., Walsh, T.: Difference Unification. In: Bajcsy, R. (ed.) Proceedings of the 13th IJCAI, pp. 116–122. Morgan Kaufmann, San Francisco (1993)Google Scholar
- 5.Bundy, A., Stevens, A., van Harmelen, F., Ireland, A., Smaill, A.: Rippling: A heuristic for guiding inductive proofs. Artificial Intelligence 62 (1993)Google Scholar
- 8.Burback, R., Manna, Z., Waldinger, R., et al.: Using the Deductive Tableau System, MacIntosh Educational Software Collection, Chariot Software Group (1990)Google Scholar
- 10.Korukhova, Y.: Planning Proof in the Deductive Tableau Using Rippling. In: Proceedings of the 5th International Conference RASC, Nottingham, Trent University, UK, pp. 384–389 (2004)Google Scholar
- 19.Tyugu, E.H.: Konceptual’noe programmirovanie (Conceptual programming) – Moscow, Nauka (1984) (in Russian)Google Scholar