dc.contributor.advisor | Tavares, Zenna | |
dc.contributor.advisor | Solar-Lezama, Armando | |
dc.contributor.author | Morejon, David | |
dc.date.accessioned | 2022-01-14T14:41:38Z | |
dc.date.available | 2022-01-14T14:41:38Z | |
dc.date.issued | 2021-06 | |
dc.date.submitted | 2021-06-17T20:13:52.482Z | |
dc.identifier.uri | https://hdl.handle.net/1721.1/138965 | |
dc.description.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. | |
dc.publisher | Massachusetts Institute of Technology | |
dc.rights | In Copyright - Educational Use Permitted | |
dc.rights | Copyright MIT | |
dc.rights.uri | http://rightsstatements.org/page/InC-EDU/1.0/ | |
dc.title | Parametric Inversion of Programs | |
dc.type | Thesis | |
dc.description.degree | M.Eng. | |
dc.contributor.department | Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science | |
mit.thesis.degree | Master | |
thesis.degree.name | Master of Engineering in Electrical Engineering and Computer Science | |