Parametric Inversion of Programs
Author(s)
Morejon, David
DownloadThesis PDF (415.8Kb)
Advisor
Tavares, Zenna
Solar-Lezama, Armando
Terms of use
Metadata
Show full item recordAbstract
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.
Date issued
2021-06Department
Massachusetts Institute of Technology. Department of Electrical Engineering and Computer SciencePublisher
Massachusetts Institute of Technology