Automatic Generation of Formula Simplifiers based on Conditional Rewrite Rules

This paper addresses the problem of creating simplifiers for logic formulas based on conditional term rewriting. In particular, the paper focuses on a program synthesis application where formula simplifications have been shown to have a significant impact. We show that by combining machine learning techniques with constraint-based synthesis, it is possible to synthesize a formula simplifier fully automatically from a corpus of representative problems, making it possible to create formula simplifiers tailored to specific problem domains. We demonstrate the benefits of our approach for synthesis benchmarks from the SyGuS competition and automated grading.

[1]  Alexander Aiken,et al.  Automatic generation of peephole superoptimizers , 2006, ASPLOS XII.

[2]  Dawson R. Engler,et al.  KLEE: Unassisted and Automatic Generation of High-Coverage Tests for Complex Systems Programs , 2008, OSDI.

[3]  Shoaib Kamil,et al.  OpenTuner: An extensible framework for program autotuning , 2014, 2014 23rd International Conference on Parallel Architecture and Compilation (PACT).

[4]  Manu Sridharan,et al.  Snugglebug: a powerful approach to weakest preconditions , 2009, PLDI '09.

[5]  Nikolaj Bjørner,et al.  μZ- An Efficient Engine for Fixed Points with Constraints , 2011, CAV.

[6]  Marius Thomas Lindauer,et al.  The Configurable SAT Solver Challenge (CSSC) , 2015, Artif. Intell..

[7]  Rishabh Singh,et al.  Modular Synthesis of Sketches Using Models , 2014, VMCAI.

[8]  S. P. Luttik,et al.  Specification of rewriting strategies , 1997 .

[9]  K. R. Seeja,et al.  MotifMiner: A Table Driven Greedy Algorithm for DNA Motif Mining , 2009, ICIC.

[10]  G. K. Sandve,et al.  A survey of motif discovery methods in an integrated framework , 2006, Biology Direct.

[11]  A. Leon-Garcia,et al.  Probability, statistics, and random processes for electrical engineering , 2008 .

[12]  Carlos Ansótegui,et al.  A Gender-Based Genetic Algorithm for the Automatic Configuration of Algorithms , 2009, CP.

[13]  Daniel Grund,et al.  GrGen: A Fast SPO-Based Graph Rewriting Tool , 2006, ICGT.

[14]  John Regehr,et al.  Provably correct peephole optimizations with alive , 2015, PLDI.

[15]  Alvin Cheung,et al.  Partial replay of long-running applications , 2011, ESEC/FSE '11.

[16]  Rajeev Alur,et al.  Syntax-guided synthesis , 2013, FMCAD 2013.

[17]  R. Nigel Horspool Incremental Generation of LR Parsers , 1990, Comput. Lang..

[18]  Armando Solar-Lezama,et al.  JSketch: sketching for Java , 2015, ESEC/SIGSOFT FSE.

[19]  Robert K. Brayton,et al.  DAG-aware AIG rewriting: a fresh look at combinational logic synthesis , 2006, 2006 43rd ACM/IEEE Design Automation Conference.

[20]  Armin Biere,et al.  Boolector: An Efficient SMT Solver for Bit-Vectors and Arrays , 2009, TACAS.

[21]  Bernd Wachmann,et al.  Technologies and Solutions for Trend Detection in Public Literature for Biomarker Discovery , 2007, International Conference on Machine Learning and Applications.

[22]  Mikael Pettersson,et al.  A Term Pattern-Match Compiler Inspired by Finite Automata Theory , 1992, CC.

[23]  Michael M. McKerns,et al.  Building a Framework for Predictive Science , 2012, SciPy.

[24]  Tao Jiang,et al.  An improved Gibbs sampling method for motif discovery via sequence weighting. , 2006, Computational systems bioinformatics. Computational Systems Bioinformatics Conference.

[25]  C. R. Ramakrishnan,et al.  Proceedings of the Theory and practice of software, 14th international conference on Tools and algorithms for the construction and analysis of systems , 2008 .

[26]  Charles DeLisi,et al.  SVMotif: A Machine Learning Motif Algorithm , 2007, Sixth International Conference on Machine Learning and Applications (ICMLA 2007).

[27]  Armando Solar-Lezama,et al.  The Sketching Approach to Program Synthesis , 2009, APLAS.

[28]  Armando Solar-Lezama,et al.  Sketching concurrent data structures , 2008, PLDI '08.

[29]  Youssef Hamadi,et al.  Efficiently solving quantified bit-vector formulas , 2010, Formal Methods in Computer Aided Design.

[30]  Alvin Cheung,et al.  Inferring SQL Queries Using Program Synthesis , 2012, ArXiv.

[31]  Nikolaj Bjørner,et al.  Z3: An Efficient SMT Solver , 2008, TACAS.

[32]  Rishabh Singh,et al.  Synthesizing data structure manipulations from storyboards , 2011, ESEC/FSE '11.

[33]  D. F. Marks,et al.  An introduction , 1988, Experientia.

[34]  Michael A. Langston,et al.  High performance computational tools for Motif discovery , 2004, 18th International Parallel and Distributed Processing Symposium, 2004. Proceedings..

[35]  Sumit Gulwani,et al.  Automated feedback generation for introductory programming assignments , 2012, PLDI.

[36]  Paul B. Jackson,et al.  Proving SPARK Verification Conditions with SMT Solvers , 2009 .

[37]  Alvin Cheung,et al.  Packet Transactions: A Programming Model for Data-Plane Algorithms at Hardware Speed , 2015, ArXiv.

[38]  Rajeev Alur,et al.  Results and Analysis of SyGuS-Comp'15 , 2015, SYNT.

[39]  Armando Solar-Lezama,et al.  A language for automatically enforcing privacy policies , 2012, POPL '12.

[40]  Yongchao Liu,et al.  An Ultrafast Scalable Many-Core Motif Discovery Algorithm for Multiple GPUs , 2011, 2011 IEEE International Symposium on Parallel and Distributed Processing Workshops and Phd Forum.

[41]  Armando Solar-Lezama,et al.  Adaptive Concretization for Parallel Program Synthesis , 2015, CAV.

[42]  Armando Solar-Lezama,et al.  Synthesis of Domain Specific CNF Encoders for Bit-Vector Solvers , 2016, SAT.

[43]  Armando Solar-Lezama,et al.  Program synthesis by sketching , 2008 .

[44]  Sumit Gulwani,et al.  Automated feedback generation for introductory programming assignments , 2012, ACM-SIGPLAN Symposium on Programming Language Design and Implementation.

[45]  Armando Solar-Lezama,et al.  Type Assisted Synthesis of Recursive Transformers on Algebraic Data Types , 2015, ArXiv.

[46]  Eelco Visser,et al.  Stratego/XT 0.17. A language and toolset for program transformation , 2008, Sci. Comput. Program..