Academia.eduAcademia.edu

Outline

Synthesizing geometry constructions

2012, ACM SIGPLAN Notices

https://doi.org/10.1145/2345156.1993505

Abstract

In this paper, we study the problem of automatically solving ruler/compass based geometry construction problems. We first introduce a logic and a programming language for describing such constructions and then phrase the automation problem as a program synthesis problem. We then describe a new program synthesis technique based on three key insights: (i) reduction of symbolic reasoning to concrete reasoning (based on a deep theoretical result that reduces verification to random testing), (ii) extending the instruction set of the programming language with higher level primitives (representing basic constructions found in textbook chapters, inspired by how humans use their experience and knowledge gained from chapters to perform complicated constructions), and (iii) pruning the forward exhaustive search using a goal-directed heuristic (simulating backward reasoning performed by humans). Our tool can successfully synthesize constructions for various geometry problems picked up from high-school textbooks and examination papers in a reasonable amount of time. This opens up an amazing set of possibilities in the context of making classroom teaching interactive.

References (42)

  1. J. R. Anderson, C. F. Boyle, and G. Yost. The geometry tutor. In IJCAI, pages 1-7, 1985.
  2. Y. Bar-David and G. Taubenfeld. Automatic discovery of mutual exclusion algorithms. In DISC, 2003.
  3. S. Barmany, R. Bodik, S. Chandra, J. Galensony, D. Kimelman, C. Ro- darmory, and N. Tungy. Programming with angelic nondeterm. In POPL, 2010.
  4. B. Boigelot. On iterating linear transformations over recognizable sets of integers. TCS, 309(2), 2003.
  5. S. Chaudhuri and A. Solar-Lezama. Smooth interpretation. In PLDI, pages 279-291, 2010.
  6. S. Chou, X. Gao, and J. Zhang. Machine Proofs in Geometry- Automated Production of Readable Proofs for Geometric Theorems. World Scientific, 1994.
  7. S.-C. Chou, X.-S. Gao, and J.-Z. Zhang. Automated generation of construction steps for geometric constraint problems. In Automated reasoning and its applications: Essays in honor of Larry Wos, pages 49-69. 1997.
  8. A. Cypher, D. C. Halbert, D. Kurlander, H. Lieberman, D. Maulsby, B. A. Myers, and A. Turransky. Watch what I do: programming by demonstration. MIT Press, 1993.
  9. X.-S. Gao and Q. Lin. Mmp/geometer: A software package for auto. geometric reasoning. In Automated Deduction in Geometry, volume 2930 of LNCS. 2004.
  10. T. Granlund and R. Kenner. Eliminating branches using a superopti- mizer and the gnu c compiler. In PLDI, 1992.
  11. S. Gulwani. Dimensions in program synthesis (invited talk paper). In ACM Symposium on PPDP, 2010.
  12. S. Gulwani. Automating string processing in spreadsheets using input- output examples. In POPL, 2011.
  13. S. Gulwani, S. K. Jha, A. Tiwari, and R. Venkatesan. Synthesis of loop-free programs. In PLDI, 2011.
  14. B. Harris and S. Gulwani. Spreadsheet table transformations from examples. In PLDI, 2011.
  15. S. Itzhaky, S. Gulwani, N. Immerman, and M. Sagiv. A simple inductive synthesis methodology and its applications. In OOPSLA, pages 36-46, 2010.
  16. N. Jackiw. The geometer's sketchpad. Key Curriculum Press, Berke- ley, 1991-1995, http://www.keypress.com.
  17. S. Jha, S. Gulwani, S. Seshia, and A. Tiwari. Oracle-guided component-based program synthesis. In ICSE, 2010.
  18. D. Kapur. Using Gröbner bases to reason about geometry problems. J. Symb. Comput., 2(4), 1986.
  19. S. Katayama. Systematic search for lambda expressions. In Trends in Func. Programming, 2005.
  20. G. Katz and D. Peled. Genetic programming and model checking: Synthesizing new mutual exclusion algorithms. In ATVA, pages 33- 47, 2008.
  21. U. Kortenkamp and J. Richter-gebert. Using auto. theorem proving to improve the usability of geometry software. In Mathematical User Interfaces, 2004.
  22. V. Kuncak, M. Mayer, R. Piskac, and P. Suter. Complete functional synthesis. In PLDI, 2010.
  23. J.-M. Laborde and F. Bellemain. Cabri-geometry ii. http://www. cabri.net (1993-1998).
  24. T. Lau, L. Bergman, V. Castelli, and D. Oblinger. Programming shell scripts by demonstration. In Workshop on Supervisory Control of Learning and Adaptive Systems, AAAI, 2004.
  25. T. A. Lau, P. Domingos, and D. S. Weld. Version space algebra and its application to programming by demonstration. In ICML, pages 527- 534, 2000.
  26. N. Matsuda and K. Vanlehn. Gramy: A geometry theorem prover capable of construction. J. Autom. Reason., 32:3-33, January 2004.
  27. J. M. Robertson. Geometric Constructions Using Hinged Mirrors, pages 380-386. May 1996.
  28. P. Rondon. Programming lang. or how to sweet talk a computer, 2010. cseweb.ucsd.edu/∼prondon/talks/plintro.pdf.
  29. C. V. Sanders. Sharing Teaching Ideas: Geometric Constructions: Visualizing and Understanding Geometry, pages 554-556. October 1998.
  30. J. T. Schwartz. Fast probabilistic algorithms for verification of poly- nomial identities. J. ACM, 27(4):701-717, 1980.
  31. L. Shustek. An interview with Ed Feigenbaum. Commun. ACM, 53(6):41-45, 2010.
  32. A. Solar-Lezama. Program Synthesis by Sketching. PhD thesis, University of California, Berkeley, 2008.
  33. A. Solar-Lezama, C. G. Jones, and R. Bodík. Sketching concurrent data structures. In PLDI, 2008.
  34. S. Srivastava, S. Gulwani, S. Chaudhuri, and J. Foster. Path-based inductive synthesis for program inversion. In PLDI, 2011.
  35. S. Srivastava, S. Gulwani, and J. S. Foster. From program verification to program synthesis. In POPL, pages 313-326, 2010.
  36. A. Taly, S. Gulwani, and A. Tiwari. Synthesizing switching logic using constraint solving. In VMCAI, pages 305-319, 2009.
  37. A. Tarski. A Decision Method for Elementary Algebra and Geometry. University of California Press, 1948.
  38. M. T. Vechev and E. Yahav. Deriving linearizable fine-grained con- current objects. In PLDI, 2008.
  39. W. Weimer, T. Nguyen, C. L. Goues, and S. Forrest. Automatically finding patches using genetic programming. In ICSE, pages 364-374, 2009.
  40. S. Wilson and J. D. Fleuriot. Combining dynamic geometry, auto- mated geometry theorem proving and diagrammatic proofs. In UITP, 2005.
  41. W.-T. Wu. Basic principles of mechanical theorem proving in elemen- tary geometrics. J. Autom. Reason., 2(3), 1987.
  42. J. Zhang, L. Yang, and M. Deng. The parallel numerical method of mechanical theorem proving. Theor. Comp. Sci., 74:253-271, 1990.