Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/1993498.1993505acmconferencesArticle/Chapter ViewAbstractPublication PagespldiConference Proceedingsconference-collections
research-article

Synthesizing geometry constructions

Published: 04 June 2011 Publication History

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

Cited By

View all
  • (2024)Program Synthesis Meets Visual What-Comes-Next PuzzlesProceedings of the 39th IEEE/ACM International Conference on Automated Software Engineering10.1145/3691620.3695015(418-429)Online publication date: 27-Oct-2024
  • (2024)Efficient Bottom-Up Synthesis for Programs with Local VariablesProceedings of the ACM on Programming Languages10.1145/36328948:POPL(1540-1568)Online publication date: 5-Jan-2024
  • (2023)Automated triangle constructions in hyperbolic geometryAnnals of Mathematics and Artificial Intelligence10.1007/s10472-023-09850-591:6(821-849)Online publication date: 12-Jun-2023
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
PLDI '11: Proceedings of the 32nd ACM SIGPLAN Conference on Programming Language Design and Implementation
June 2011
668 pages
ISBN:9781450306638
DOI:10.1145/1993498
  • General Chair:
  • Mary Hall,
  • Program Chair:
  • David Padua
  • cover image ACM SIGPLAN Notices
    ACM SIGPLAN Notices  Volume 46, Issue 6
    PLDI '11
    June 2011
    652 pages
    ISSN:0362-1340
    EISSN:1558-1160
    DOI:10.1145/1993316
    Issue’s Table of Contents
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 04 June 2011

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. abstraction
  2. forward and backward analysis
  3. program synthesis
  4. ruler-compass geometry constructions

Qualifiers

  • Research-article

Conference

PLDI '11
Sponsor:

Acceptance Rates

Overall Acceptance Rate 406 of 2,067 submissions, 20%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)31
  • Downloads (Last 6 weeks)1
Reflects downloads up to 27 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2024)Program Synthesis Meets Visual What-Comes-Next PuzzlesProceedings of the 39th IEEE/ACM International Conference on Automated Software Engineering10.1145/3691620.3695015(418-429)Online publication date: 27-Oct-2024
  • (2024)Efficient Bottom-Up Synthesis for Programs with Local VariablesProceedings of the ACM on Programming Languages10.1145/36328948:POPL(1540-1568)Online publication date: 5-Jan-2024
  • (2023)Automated triangle constructions in hyperbolic geometryAnnals of Mathematics and Artificial Intelligence10.1007/s10472-023-09850-591:6(821-849)Online publication date: 12-Jun-2023
  • (2022)Program Synthesis for Artifacts beyond ProgramsCompanion Proceedings of the 2022 ACM SIGPLAN International Conference on Systems, Programming, Languages, and Applications: Software for Humanity10.1145/3563768.3565544(13-16)Online publication date: 29-Nov-2022
  • (2022)Phrase2Set: Phrase-to-Set Machine Translation and Its Software Engineering Applications2022 IEEE International Conference on Software Analysis, Evolution and Reengineering (SANER)10.1109/SANER53432.2022.00068(502-513)Online publication date: Mar-2022
  • (2021)On Automating Triangle Constructions in Absolute and Hyperbolic GeometryElectronic Proceedings in Theoretical Computer Science10.4204/EPTCS.352.3352(14-26)Online publication date: 30-Dec-2021
  • (2021)Reverse engineering for reduction parallelization via semiring polynomialsProceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation10.1145/3453483.3454079(820-834)Online publication date: 19-Jun-2021
  • (2021)Combining the top-down propagation and bottom-up enumeration for inductive program synthesisProceedings of the ACM on Programming Languages10.1145/34343355:POPL(1-28)Online publication date: 4-Jan-2021
  • (2020)Discourse in MultimediaComputational Linguistics10.1162/coli_a_0036045:4(627-665)Online publication date: 1-Jan-2020
  • (2020)Boosting component-based synthesis with control structure recommendationProceedings of the 1st ACM SIGSOFT International Workshop on Representation Learning for Software Engineering and Program Languages10.1145/3416506.3423579(19-28)Online publication date: 8-Nov-2020
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media