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







Comments