Parametric Inversion of Programs
Name
Morejon-dmorejon-meng-eecs-2021-thesis.pdf
Description
Thesis PDF
Size
415.87 KB
Format
Adobe PDF
Checksum (MD5)
28e176da249d10d5d8de727a932af155
Author(s)
Morejon, David
Advisor(s)
Tavares, Zenna
Solar-Lezama, Armando
Date Issued
June 2021
Publisher
Massachusetts Institute of Technology
Abstract
Programmers and mathematicians often find themselves in situations where they must solve an inverse problem for a particular function. Solving an inverse problem generally means determining the input that produced a given output. However, this is ambiguous for most functions since the function may have multiple inputs that produce an output. Parametric inversion takes a new approach to solving inverse problems by proposing a method to make a non-injective (many-to-one) function invertible through a parameter. This parameter is used to distinguish between elements in the input space of a function that produced a given output. The existing parametric inversion theory primarily describes inverting mathematical functions. This work extends the theory to encompass inversion of programs. Specifically, we introduce a language, IR, and address problems related to inversion of a simple code block, control flow, and re-use of variables. This includes a practical implementation in Julia that is able to correctly invert a suite of sample programs.
MIT Department
Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science
Terms of Use
In Copyright - Educational Use Permitted
Copyright MIT
Persistent DSpace Link