skip to main content
research-article

Synthesizing geometry constructions

Published:04 June 2011Publication History
Skip Abstract Section

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

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

Recommendations

Comments

Login options

Check if you have access through your login credentials or your institution to get full access on this article.

Sign in

Full Access

PDF Format

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader
About Cookies On This Site

We use cookies to ensure that we give you the best experience on our website.

Learn more

Got it!