Using Gröbner bases to reason about geometry problems
Journal of Symbolic Computation
Basic principles of mechanical theorem proving in elementary geometrics
Journal of Automated Reasoning
The parallel numerical method of mechanical theorem proving
Theoretical Computer Science
Eliminating branches using a superoptimizer and the GNU C compiler
PLDI '92 Proceedings of the ACM SIGPLAN 1992 conference on Programming language design and implementation
Watch what I do: programming by demonstration
Watch what I do: programming by demonstration
Automated generation of construction steps for geometric constraint problems
Automated reasoning and its applications
Fast Probabilistic Algorithms for Verification of Polynomial Identities
Journal of the ACM (JACM)
Version Space Algebra and its Application to Programming by Demonstration
ICML '00 Proceedings of the Seventeenth International Conference on Machine Learning
On iterating linear transformations over recognizable sets of integers
Theoretical Computer Science
GRAMY: A Geometry Theorem Prover Capable of Construction
Journal of Automated Reasoning
Deriving linearizable fine-grained concurrent objects
Proceedings of the 2008 ACM SIGPLAN conference on Programming language design and implementation
Sketching concurrent data structures
Proceedings of the 2008 ACM SIGPLAN conference on Programming language design and implementation
Genetic Programming and Model Checking: Synthesizing New Mutual Exclusion Algorithms
ATVA '08 Proceedings of the 6th International Symposium on Automated Technology for Verification and Analysis
Synthesizing Switching Logic Using Constraint Solving
VMCAI '09 Proceedings of the 10th International Conference on Verification, Model Checking, and Abstract Interpretation
Automatically finding patches using genetic programming
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
IJCAI'85 Proceedings of the 9th international joint conference on Artificial intelligence - Volume 1
From program verification to program synthesis
Proceedings of the 37th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Programming with angelic nondeterminism
Proceedings of the 37th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Program synthesis by sketching
Program synthesis by sketching
An interview with Ed Feigenbaum
Communications of the ACM
PLDI '10 Proceedings of the 2010 ACM SIGPLAN conference on Programming language design and implementation
PLDI '10 Proceedings of the 2010 ACM SIGPLAN conference on Programming language design and implementation
Oracle-guided component-based program synthesis
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1
Dimensions in program synthesis
Proceedings of the 12th international ACM SIGPLAN symposium on Principles and practice of declarative programming
A simple inductive synthesis methodology and its applications
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Automating string processing in spreadsheets using input-output examples
Proceedings of the 38th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Synthesis of loop-free programs
Proceedings of the 32nd ACM SIGPLAN conference on Programming language design and implementation
Spreadsheet table transformations from examples
Proceedings of the 32nd ACM SIGPLAN conference on Programming language design and implementation
Path-based inductive synthesis for program inversion
Proceedings of the 32nd ACM SIGPLAN conference on Programming language design and implementation
Synthesis of loop-free programs
Proceedings of the 32nd ACM SIGPLAN conference on Programming language design and implementation
Path-based inductive synthesis for program inversion
Proceedings of the 32nd ACM SIGPLAN conference on Programming language design and implementation
QuickDraw: improving drawing experience for geometric diagrams
Proceedings of the SIGCHI Conference on Human Factors in Computing Systems
Can modern statistical parsers lead to better natural language understanding for education?
CICLing'12 Proceedings of the 13th international conference on Computational Linguistics and Intelligent Text Processing - Volume Part I
Automated synthesis of symbolic instruction encodings from I/O samples
Proceedings of the 33rd ACM SIGPLAN conference on Programming Language Design and Implementation
Finding suitable programs: semantic search with incomplete and lightweight specifications
Proceedings of the 34th International Conference on Software Engineering
Towards understanding triangle construction problems
CICM'12 Proceedings of the 11th international conference on Intelligent Computer Mathematics
Synthesizing number transformations from input-output examples
CAV'12 Proceedings of the 24th international conference on Computer Aided Verification
Toward semantic search via SMT solver
Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering
From relational verification to SIMD loop synthesis
Proceedings of the 18th ACM SIGPLAN symposium on Principles and practice of parallel programming
Automated feedback generation for introductory programming assignments
Proceedings of the 34th ACM SIGPLAN conference on Programming language design and implementation
SmartSynth: synthesizing smartphone automation scripts from natural language
Proceeding of the 11th annual international conference on Mobile systems, applications, and services
A trace-based framework for analyzing and synthesizing educational progressions
Proceedings of the SIGCHI Conference on Human Factors in Computing Systems
CAV'13 Proceedings of the 25th international conference on Computer Aided Verification
Creating task-specific maps with map content transformations
Proceedings of the 1st ACM SIGSPATIAL International Workshop on MapInteraction
Automatically generating problems and solutions for natural deduction
IJCAI'13 Proceedings of the Twenty-Third international joint conference on Artificial Intelligence
Probabilistic equivalence verification approach for automatic mathematical solution assessment
IJCAI'13 Proceedings of the Twenty-Third international joint conference on Artificial Intelligence
Hi-index | 0.00 |
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.