Automatic Deductive Synthesis of Lisp Programs in the System ALISA

  • Yulia Korukhova
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4160)


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.


Induction Hypothesis Functional Program Goal Function Induction Rule Automatic Synthesis 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Armando, A., Smaill, A., Green, I.: Automatic Synthesis of Recursive Programs: The Proof-Planning Paradigm. Automated Software Engineering 6(4), 329–356 (1999)CrossRefGoogle Scholar
  2. 2.
    Ayari, A., Basin, D.: A Higher-Order Interpretation of Deductive Tableau. Journal of symbolic computation 31(5), 487–520 (2001)zbMATHCrossRefMathSciNetGoogle Scholar
  3. 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
  4. 4.
    Basin, D., Walsh, T.: A Calculus for and Termination of Rippling. Journal of Automated Reasoning 16, 147–180 (1996)zbMATHCrossRefMathSciNetGoogle Scholar
  5. 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
  6. 6.
    Bundy, A.: The Automation of Proof by Mathematical Induction. In: Handbook of automated reasoning, vol. 1. Elsevier Science Publishers B.V., Amsterdam (2001)CrossRefGoogle Scholar
  7. 7.
    Bundy, A., Basin, D., Hutter, D., Ireland, A.: Rippling: Meta-level Guidance for Mathematical Reasoning. Cambridge University Press, Cambridge (2005)zbMATHCrossRefGoogle Scholar
  8. 8.
    Burback, R., Manna, Z., Waldinger, R., et al.: Using the Deductive Tableau System, MacIntosh Educational Software Collection, Chariot Software Group (1990)Google Scholar
  9. 9.
    Chang, C.-L., Lee, R.: Symbolic Logic and Mechanical Theorem Proving. Academic Press Inc., New York (1973)zbMATHGoogle Scholar
  10. 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
  11. 11.
    Kraan, I., Basin, D., Bundy, A.: Middle-Out Reasoning for Synthesis and Induction. Journal of Symbolic Computation 16(1-2), 113–145 (1996)zbMATHMathSciNetGoogle Scholar
  12. 12.
    Lee, R.C.T., Chang, C.L., Waldinger, R.J.: An Improved program synthesizing algorithm and its correctness. Communications ACM 17(4), 211–217 (1974)zbMATHCrossRefMathSciNetGoogle Scholar
  13. 13.
    Manna, Z., Waldinger, R.: A Deductive approach to Program Synthesis. ACM Trans. Programming Languages and Systems 2(1), 90–121 (1980)zbMATHCrossRefGoogle Scholar
  14. 14.
    Manna, Z., Waldinger, R.: Fundamentals of Deductive Program Synthesis. IEEE Transactions on Software Engineering 18(8), 674–704 (1992)CrossRefGoogle Scholar
  15. 15.
    Paulson, L.C.: Isabelle. LNCS, vol. 828, p. 321. Springer, Heidelberg (1994)zbMATHCrossRefGoogle Scholar
  16. 16.
    Pientka, B., Kreitz, C.: Automating inductive specification proofs. Fundamenta Informatica 39(1-2), 189–208 (1999)zbMATHMathSciNetGoogle Scholar
  17. 17.
    Simon, H.A.: Experiments with a Heuristic Compiler. Journal ACM 10(4), 493–506 (1963)zbMATHCrossRefGoogle Scholar
  18. 18.
    Traugott, J.: Deductive Synthesis of Sorting Programs. Journal of Symbolic Computation 7, 533–572 (1989)zbMATHCrossRefGoogle Scholar
  19. 19.
    Tyugu, E.H.: Konceptual’noe programmirovanie (Conceptual programming) – Moscow, Nauka (1984) (in Russian)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Yulia Korukhova
    • 1
  1. 1.Computational Mathematics and Cybernetics FacultyLomonosov Moscow State UniversityMoscowRussia

Personalised recommendations