Solving Linear Algebra by Program Synthesis
Iddo Drori, Nakul Verma
TL;DR
The paper presents a pipeline that converts linear algebra questions into program synthesis tasks solved by Codex, achieving perfect accuracy on two university-level datasets. It demonstrates an interactive workflow where prompts are refined and, when needed, questions are augmented to reveal missing components like projections, enabling both numerical solutions and plotting outputs. Key contributions include perfect dataset performance, evidence of close text-prompt similarity to original questions, and the ability to generate new course questions automatically. The work suggests a scalable direction for automated problem solving and content generation across STEM education, with notable implications for grading and curriculum development.
Abstract
We solve MIT's Linear Algebra 18.06 course and Columbia University's Computational Linear Algebra COMS3251 courses with perfect accuracy by interactive program synthesis. This surprisingly strong result is achieved by turning the course questions into programming tasks and then running the programs to produce the correct answers. We use OpenAI Codex with zero-shot learning, without providing any examples in the prompts, to synthesize code from questions. We quantify the difference between the original question text and the transformed question text that yields a correct answer. Since all COMS3251 questions are not available online the model is not overfitting. We go beyond just generating code for questions with numerical answers by interactively generating code that also results visually pleasing plots as output. Finally, we automatically generate new questions given a few sample questions which may be used as new course content. This work is a significant step forward in solving quantitative math problems and opens the door for solving many university level STEM courses by machine.
