{"id":{"repo_id":"mit","oai_identifier":"oai:dspace.mit.edu:1721.1/84731"},"canonical_url":"https://search.dev.ndltd.org/etd/mit/oai:dspace.mit.edu:1721.1/84731","repository":{"repo_id":"mit","name":"MIT","base_url":"https://dspace.mit.edu/oai/request"},"display":{"title":"Synthesizing a synthesis tool","abstract":"SMT/SAT solvers are used by many tools for program verification and analysis. Most of these tools have an optimization layer which applies transformations (or \"rewrite rules\") to simplify the internal representation of the problem. These hard coded rules can drastically affect the performance of the solver. They are usually hand-picked by experts and verified using trial and error. These rules are very domain-specific as well (the domain from which the tool receives its inputs) and leverage the recurring patterns in the domain. The goal of this thesis is to automatically synthesize this optimization layer by learning an optimal set of rules from a corpus of problems taken from a given domain. To achieve this goal, we will use two key technologies: Machine Learning and Program Synthesis (Sketch tool). Sketch is a state of the art tool for generating programs automatically from high level specifications. We propose a Machine Learning and Sketch based method to automatically generate \"statistically significant\" optimization rules (rules that can be applied at significant number of places in benchmarks from a particular domain) and then generate efficient code to apply the rules for that particular domain. In addition to using Sketch as a tool, we will also use it as a target for this technology. Sketch uses SAT/SMT solver in its back-end, and, like any other tool it has its own hand-built optimization layer. In particular, Sketch uses a set of pre- determined optimization rules to modify the internal representation of the formula in a way that results in faster SAT/SMT solving. Sketch is being used for synthesizing programs in various domains like Storyboard Programming[21], SQL queries for databases[5], MPI based Parallel Programming, Autograder for MOOCs[20]; The current optimizer has to work well for each one of these domains and one of our goals is to have a domain specific optimizer that can take advantage of specific features of each domain. Hence, Sketch is an ideal use-case for our analysis and all our experiments are conducted on the Sketch tool for various domains.","abstract_html":"SMT/SAT solvers are used by many tools for program verification and analysis. Most of these tools have an optimization layer which applies transformations (or &quot;rewrite rules&quot;) to simplify the internal representation of the problem. These hard coded rules can drastically affect the performance of the solver. They are usually hand-picked by experts and verified using trial and error. These rules are very domain-specific as well (the domain from which the tool receives its inputs) and leverage the recurring patterns in the domain. The goal of this thesis is to automatically synthesize this optimization layer by learning an optimal set of rules from a corpus of problems taken from a given domain. To achieve this goal, we will use two key technologies: Machine Learning and Program Synthesis (Sketch tool). Sketch is a state of the art tool for generating programs automatically from high level specifications. We propose a Machine Learning and Sketch based method to automatically generate &quot;statistically significant&quot; optimization rules (rules that can be applied at significant number of places in benchmarks from a particular domain) and then generate efficient code to apply the rules for that particular domain. In addition to using Sketch as a tool, we will also use it as a target for this technology. Sketch uses SAT/SMT solver in its back-end, and, like any other tool it has its own hand-built optimization layer. In particular, Sketch uses a set of pre- determined optimization rules to modify the internal representation of the formula in a way that results in faster SAT/SMT solving. Sketch is being used for synthesizing programs in various domains like Storyboard Programming[21], SQL queries for databases[5], MPI based Parallel Programming, Autograder for MOOCs[20]; The current optimizer has to work well for each one of these domains and one of our goals is to have a domain specific optimizer that can take advantage of specific features of each domain. Hence, Sketch is an ideal use-case for our analysis and all our experiments are conducted on the Sketch tool for various domains.","abstract_has_math":false,"creators":["Singh, Rohit, Ph. D. Massachusetts Institute of Technology."],"institution":"Massachusetts Institute of Technology","degree_name":null,"degree_level":null,"degree_discipline":null,"degree_department":"Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science.","school":null,"contributors":[],"advisors":["Armando Solar-Lezama."],"committee_chairs":[],"committee_members":[],"year":2013,"date_issued":"2013","date_published":"2013","updated_at":"2026-07-22T22:22:22Z","subjects":["Electrical Engineering and Computer Science."],"languages":["eng"],"rights":["M.I.T. theses are protected by copyright. They may be viewed from this source for any purpose, but reproduction or distribution in any format is prohibited without written permission. See provided URL for inquiries about permission."],"rights_urls":["http://dspace.mit.edu/handle/1721.1/7582"],"identifier_entries":[]},"links":{"outbound_url":"http://hdl.handle.net/1721.1/84731","outbound_label":"Handle","outbound_source":"dc:identifier.uri"},"metadata_groups":[{"id":"people","label":"People","entries":[{"key":"dc:contributor.advisor","label":"Advisor","values":["Armando Solar-Lezama."]},{"key":"dc:contributor.department","label":"Department","values":["Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science."]},{"key":"dc:contributor.other","label":"Dc Contributor Other","values":["Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science."]},{"key":"dc:creator","label":"Author","values":["Singh, Rohit, Ph. D. Massachusetts Institute of Technology."]}]},{"id":"academic_context","label":"Academic Context","entries":[{"key":"dc:date.accessioned","label":"Dc Date Accessioned","values":["2014-02-10T15:05:16Z"]},{"key":"dc:date.available","label":"Dc Date Available","values":["2014-02-10T15:05:16Z"]},{"key":"dc:date.issued","label":"Date","values":["2013"]},{"key":"dc:publisher","label":"Institution","values":["Massachusetts Institute of Technology"]},{"key":"dc:type","label":"Dc Type","values":["Thesis"]}]},{"id":"subjects_keywords","label":"Subjects and Keywords","entries":[{"key":"dc:subject","label":"Dc Subject","values":["Electrical Engineering and Computer Science."]}]},{"id":"language_rights","label":"Language and Rights","entries":[{"key":"dc:language.iso","label":"Language (ISO)","values":["eng"]},{"key":"dc:rights","label":"Dc Rights","values":["M.I.T. theses are protected by copyright. They may be viewed from this source for any purpose, but reproduction or distribution in any format is prohibited without written permission. See provided URL for inquiries about permission."]},{"key":"dc:rights.uri","label":"Rights URI","values":["http://dspace.mit.edu/handle/1721.1/7582"]}]},{"id":"identifiers","label":"Identifiers","entries":[{"key":"dc:identifier.uri","label":"Identifier URI","values":["http://hdl.handle.net/1721.1/84731"]}]},{"id":"additional","label":"Additional Metadata","entries":[{"key":"dc:description","label":"Description","values":["Thesis (S.M.)--Massachusetts Institute of Technology, Dept. of Electrical Engineering and Computer Science, 2013.","This electronic version was submitted by the student author. The certified thesis is available in the Institute Archives and Special Collections.","Cataloged from student-submitted PDF version of thesis.","Includes bibliographical references (pages 85-87)."]},{"key":"dc:description.abstract","label":"Abstract","values":["SMT/SAT solvers are used by many tools for program verification and analysis. Most of these tools have an optimization layer which applies transformations (or \"rewrite rules\") to simplify the internal representation of the problem. These hard coded rules can drastically affect the performance of the solver. They are usually hand-picked by experts and verified using trial and error. These rules are very domain-specific as well (the domain from which the tool receives its inputs) and leverage the recurring patterns in the domain. The goal of this thesis is to automatically synthesize this optimization layer by learning an optimal set of rules from a corpus of problems taken from a given domain. To achieve this goal, we will use two key technologies: Machine Learning and Program Synthesis (Sketch tool). Sketch is a state of the art tool for generating programs automatically from high level specifications. We propose a Machine Learning and Sketch based method to automatically generate \"statistically significant\" optimization rules (rules that can be applied at significant number of places in benchmarks from a particular domain) and then generate efficient code to apply the rules for that particular domain. In addition to using Sketch as a tool, we will also use it as a target for this technology. Sketch uses SAT/SMT solver in its back-end, and, like any other tool it has its own hand-built optimization layer. In particular, Sketch uses a set of pre- determined optimization rules to modify the internal representation of the formula in a way that results in faster SAT/SMT solving. Sketch is being used for synthesizing programs in various domains like Storyboard Programming[21], SQL queries for databases[5], MPI based Parallel Programming, Autograder for MOOCs[20]; The current optimizer has to work well for each one of these domains and one of our goals is to have a domain specific optimizer that can take advantage of specific features of each domain. Hence, Sketch is an ideal use-case for our analysis and all our experiments are conducted on the Sketch tool for various domains."]},{"key":"dc:description.degree","label":"Dc Description Degree","values":["S.M."]},{"key":"dc:title","label":"Title","values":["Synthesizing a synthesis tool"]}]}],"canonical_facts":{"dc:contributor.advisor":["Armando Solar-Lezama."],"dc:contributor.department":["Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science."],"dc:contributor.other":["Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science."],"dc:creator":["Singh, Rohit, Ph. D. Massachusetts Institute of Technology."],"dc:date.accessioned":["2014-02-10T15:05:16Z"],"dc:date.available":["2014-02-10T15:05:16Z"],"dc:date.issued":["2013"],"dc:description":["Thesis (S.M.)--Massachusetts Institute of Technology, Dept. of Electrical Engineering and Computer Science, 2013.","This electronic version was submitted by the student author. The certified thesis is available in the Institute Archives and Special Collections.","Cataloged from student-submitted PDF version of thesis.","Includes bibliographical references (pages 85-87)."],"dc:description.abstract":["SMT/SAT solvers are used by many tools for program verification and analysis. Most of these tools have an optimization layer which applies transformations (or \"rewrite rules\") to simplify the internal representation of the problem. These hard coded rules can drastically affect the performance of the solver. They are usually hand-picked by experts and verified using trial and error. These rules are very domain-specific as well (the domain from which the tool receives its inputs) and leverage the recurring patterns in the domain. The goal of this thesis is to automatically synthesize this optimization layer by learning an optimal set of rules from a corpus of problems taken from a given domain. To achieve this goal, we will use two key technologies: Machine Learning and Program Synthesis (Sketch tool). Sketch is a state of the art tool for generating programs automatically from high level specifications. We propose a Machine Learning and Sketch based method to automatically generate \"statistically significant\" optimization rules (rules that can be applied at significant number of places in benchmarks from a particular domain) and then generate efficient code to apply the rules for that particular domain. In addition to using Sketch as a tool, we will also use it as a target for this technology. Sketch uses SAT/SMT solver in its back-end, and, like any other tool it has its own hand-built optimization layer. In particular, Sketch uses a set of pre- determined optimization rules to modify the internal representation of the formula in a way that results in faster SAT/SMT solving. Sketch is being used for synthesizing programs in various domains like Storyboard Programming[21], SQL queries for databases[5], MPI based Parallel Programming, Autograder for MOOCs[20]; The current optimizer has to work well for each one of these domains and one of our goals is to have a domain specific optimizer that can take advantage of specific features of each domain. Hence, Sketch is an ideal use-case for our analysis and all our experiments are conducted on the Sketch tool for various domains."],"dc:description.degree":["S.M."],"dc:identifier.uri":["http://hdl.handle.net/1721.1/84731"],"dc:language.iso":["eng"],"dc:publisher":["Massachusetts Institute of Technology"],"dc:rights":["M.I.T. theses are protected by copyright. They may be viewed from this source for any purpose, but reproduction or distribution in any format is prohibited without written permission. See provided URL for inquiries about permission."],"dc:rights.uri":["http://dspace.mit.edu/handle/1721.1/7582"],"dc:subject":["Electrical Engineering and Computer Science."],"dc:title":["Synthesizing a synthesis tool"],"dc:type":["Thesis"]},"updated_at":"2026-07-22T22:22:22Z"}