Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
research-article
Open access

Satune: synthesizing efficient SAT encoders

Published: 13 November 2020 Publication History

Abstract

Modern SAT solvers are extremely efficient at solving boolean satisfiability problems, enabling a wide spectrum of techniques for checking, verifying, and validating real-world programs. What remains challenging, though, is how to encode a domain problem (e.g., model checking) into a SAT formula because the same problem can have multiple distinct encodings, which can yield performance results that are orders-of-magnitude apart, regardless of the underlying solvers used. We develop Satune, a tool that can automatically synthesize SAT encoders for different problem domains. Satune employs a DSL that allows developers to express domain problems at a high level and a search algorithm that can effectively find efficient solutions. The search process is guided by observations made over example encodings and their performance for the domain and hence Satune can quickly synthesize a high-performance encoder by incorporating patterns from examples that yield good performance. A thorough evaluation with JMCR, SyPet, Dirk, Hexiom, Sudoku, and KillerSudoku demonstrates that Satune can easily synthesize high-performance encoders for different domains including model checking, synthesis, and games. These encoders generate constraint problems that are often several orders of magnitude faster to solve than the original encodings used by the tools.

Supplementary Material

Auxiliary Presentation Video (oopsla20main-p82-p-video.mp4)
This is a presentation video of Satune at OOPSLA 2020 on our paper accepted in the research track. We developed Satune, a tool that can automatically synthesize SAT encoders for different problem domains. Satune employs a DSL that allows developers to express domain problems at a high level and a search algorithm that can effectively find efficient solutions. The search process is guided by observations made over example encodings and their performance for the domain and hence Satune can quickly synthesize a high-performance encoder by incorporating patterns from examples that yield good performance. A thorough evaluation with 6 benchmarks demonstrates that Satune can easily synthesize high-performance encoders that generate constraint problems that are often several orders of magnitude faster to solve than the original encodings used by the tools. More details in our paper (https://doi.org/10.1145/3428214). Satune is publicly available to the users: http://plrg.ics.uci.edu/satune/.

References

[1]
Amir Aavani. 2011. Translating Pseudo-Boolean Constraints into CNF. In Theory and Applications of Satisfiability Testing-SAT 2011, Karem A. Sakallah and Laurent Simon (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 357-359.
[2]
Amir Aavani, Xiongnan (Newman) Wu, Shahab Tasharrofi, Eugenia Ternovska, and David Mitchell. 2012. Enfragmo: A System for Modelling and Solving Search Problems with Logic. In Logic for Programming, Artificial Intelligence, and Reasoning, Nikolaj Bjørner and Andrei Voronkov (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 15-22.
[3]
Ignasi Abío and Peter J Stuckey. 2014. Encoding linear constraints into SAT. In International Conference on Principles and Practice of Constraint Programming. Springer, 75-91.
[4]
Airobert. 2016. SAT Based Killer Sudoku. https://github.com/UvA-KR16/KilerSudoku
[5]
Taufan Ardi. 2015. SAT Based Sudoku Solver in Python. https://github.com/taufanardi/sudoku-sat-solver
[6]
Gilles Audemard and Laurent Simon. 2009. Predicting Learnt Clauses Quality in Modern SAT Solvers. In Proceedings of the 21st International Joint Conference on Artifical Intelligence (Pasadena, California, USA). Morgan Kaufmann Publishers Inc., 399-404.
[7]
Gilles Audemard and Laurent Simon. 2014. Lazy Clause Exchange Policy for Parallel SAT Solvers. In Theory and Applications of Satisfiability Testing (SAT '14). 197-205.
[8]
Gilles Audemard and Laurent Simon. 2015. Glucose and Syrup in the SAT Race 2015.
[9]
Olivier Bailleux and Yacine Boufkhad. 2003. Eficient CNF Encoding of Boolean Cardinality Constraints, Vol. 2833. 108-122. https://doi.org/10.1007/978-3-540-45193-8_8
[10]
Olivier Bailleux, Yacine Boufkhad, and Olivier Roussel. 2009. New Encodings of Pseudo-Boolean Constraints into CNF, Vol. 5584. 181-194. https://doi.org/10.1007/978-3-642-02777-2_19
[11]
Clark Barrett, Christopher L. Conway, Morgan Deters, Liana Hadarean, Dejan Jovanovi'c, Tim King, Andrew Reynolds, and Cesare Tinelli. 2011. CVC4. In Proceedings of the 23rd International Conference on Computer Aided Verification (CAV '11) (Lecture Notes in Computer Science, Vol. 6806 ), Ganesh Gopalakrishnan and Shaz Qadeer (Eds.). Springer, 171-177. http://www.cs.stanford.edu/~barrett/pubs/BCD+11.pdf Snowbird, Utah.
[12]
Mark Batty, Scott Owens, Susmit Sarkar, Peter Sewell, and Tjark Weber. 2011. Mathematizing C+ + Concurrency. In Proceedings of the 38th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages.
[13]
Ramón Béjar and Felip Manya. 2000. Solving the round robin problem using propositional logic. In AAAI/IAAI. 262-266.
[14]
Armin Biere. 2008. PicoSAT essentials. Journal on Satisfiability, Boolean Modeling and Computation 4 ( 2008 ), 75-97.
[15]
Armin Biere, Daniel Le Berre, Emmanuel Lonca, and Norbert Manthey. 2014. Detecting Cardinality Constraints in CNF. In Theory and Applications of Satisfiability Testing-SAT 2014, Carsten Sinz and Uwe Egly (Eds.). Springer International Publishing, Cham, 285-301.
[16]
Magnus Björk. 2009. Successful SAT Encoding Techniques. Journal on Satisfiability, Boolean Modeling, and Computation 7 (July 2009 ), 189-201.
[17]
Jasmin Christian Blanchette, Tjark Weber, Mark Batty, Scott Owens, and Susmit Sarkar. 2011. Nitpicking C+ + Concurrency. In Proceedings of the 13th International ACM SIGPLAN Symposium on Principles and Practices of Declarative Programming. 113-124. http://doi.acm.org/10.1145/2003476.2003493
[18]
Lucas Bordeaux and Joao Marques-Silva. 2012. Knowledge compilation with empowerment. In International Conference on Current Trends in Theory and Practice of Computer Science. Springer, 612-624.
[19]
Thomas Bouton, Diego Caminha B de Oliveira, David Déharbe, and Pascal Fontaine. 2009. veriT: an open, trustable and eficient SMT-solver. In International Conference on Automated Deduction. Springer, 151-156.
[20]
Martin Brain, Liana Hadarean, Daniel Kroening, and Ruben Martins. 2016. Automatic Generation of Propagation Complete SAT Encodings. In Verification, Model Checking, and Abstract Interpretation, Barbara Jobstmann and K. Rustan M. Leino (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 536-556.
[21]
Robert Brummayer and Armin Biere. 2009. Boolector: An Eficient SMT Solver for Bit-Vectors and Arrays. In TACAS (Lecture Notes in Computer Science, Vol. 5505 ). Springer, 174-177.
[22]
Roberto Bruttomesso, Alessandro Cimatti, Anders Franzén, Alberto Griggio, and Roberto Sebastiani. 2008. The MathSATÃĆÂă4 SMT Solver. In Computer Aided Verification, Aarti Gupta and Sharad Malik (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 299-303.
[23]
Sebastian Burckhardt, Rajeev Alur, and Milo MK Martin. 2007. CheckFence: Checking consistency of concurrent data types on relaxed memory models. In ACM SIGPLAN Notices, Vol. 42. ACM, 12-21.
[24]
Bertrand Cabon, Simon de Givry, Lionel Lobjois, Thomas Schiex, and Joost Warners. 1999. Radio Link Frequency Assignment. Constraints 4 ( 02 1999 ), 79-89. https://doi.org/10.1023/A:1009812409930
[25]
Cristian Cadar, Daniel Dunbar, and Dawson Engler. 2008. KLEE: Unassisted and Automatic Generation of High-coverage Tests for Complex Systems Programs. In Proceedings of the 8th USENIX Conference on Operating Systems Design and Implementation. 209-224.
[26]
B. Chambers, P. Manolios, and D. Vroon. 2009. Faster SAT solving with better CNF generation. In 2009 Design, Automation & Test in Europe Conference & Exhibition (DATE).
[27]
Yury Chebiryak and Daniel Kroening. 2008. An eficient SAT encoding of circuit codes. In 2008 International Symposium on Information Theory and Its Applications. IEEE, 1-4.
[28]
Jingchao Chen. 2010. A new SAT encoding of the at-most-one constraint. Proc. Constraint Modelling and Reformulation ( 2010 ).
[29]
Insang Chung. 2017. A SAT-based method for basis path testing using KodKod. International Journal of Applied Engineering Research 12, 18 ( 2017 ), 7294-7305.
[30]
Koen Claessen and Niklas SÃűrensson. 2003. New Techniques that Improve MACE-style Finite Model Finding. In Proceedings of the CADE-19 Workshop: Model Computation-Principles, Algorithms, Applications.
[31]
Florian Corzilius, Gereon Kremer, Sebastian Junges, Stefan Schupp, and Erika Ábrahám. 2015. SMT-RAT: An Open Source C++ Toolbox for Strategic and Parallel SMT Solving. In Theory and Applications of Satisfiability Testing-SAT 2015, Marijn Heule and Sean Weaver (Eds.). Springer International Publishing, Cham, 360-368.
[32]
Martin Davis, George Logemann, and Donald W. Loveland. 1962. A machine program for theorem-proving. Commun. ACM 5, 7 ( 1962 ), 394-397. https://doi.org/10.1145/368273.368557
[33]
Martin Davis and Hilary Putnam. 1960. A Computing Procedure for Quantification Theory. J. ACM 7, 3 ( 1960 ), 201-215. https://doi.org/10.1145/321033.321034
[34]
Leonardo de Moura and Nikolaj Bjørner. 2008. Z3: An Eficient SMT Solver. In Tools and Algorithms for the Construction and Analysis of Systems, 14th International Conference, TACAS 2008, Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2008, Budapest, Hungary, March 29-April 6, 2008. Proceedings (Lecture Notes in Computer Science, Vol. 4963 ). Springer, 337-340.
[35]
Brian Demsky and Patrick Lam. 2015. SATCheck: SAT-directed stateless model checking for SC and TSO. In ACM SIGPLAN Notices, Vol. 50. ACM, 20-36.
[36]
Ankush Desai, Vivek Gupta, Ethan Jackson, Shaz Qadeer, Sriram Rajamani, and Damien Zuferey. 2013. P: Safe Asynchronous Event-driven Programming. In Proceedings of the 34th ACM SIGPLAN Conference on Programming Language Design and Implementation. 321-332.
[37]
Isil Dillig, Thomas Dillig, and Alex Aiken. 2008. Sound, Complete and Scalable Path-sensitive Analysis. In Proceedings of the 29th ACM SIGPLAN Conference on Programming Language Design and Implementation. 270-280.
[38]
Bruno Dutertre and Leonardo de Moura. 2006. The Yices SMT solver. Technical Report. SRI International.
[39]
Yu Feng, Ruben Martins, Yuepeng Wang, Isil Dillig, and Thomas W. Reps. 2017a. Component-based Synthesis for Complex APIs. In Proceedings of the 44th ACM SIGPLAN Symposium on Principles of Programming Languages (Paris, France) (POPL 2017 ). ACM, New York, NY, USA, 599-612. https://doi.org/10.1145/3009837.3009851
[40]
Yu Feng, Ruben Martins, Yuepeng Wang, Isil Dillig, and Thomas W. Reps. 2017b. SyPet. https://github.com/utopiagroup/sypet
[41]
Cormac Flanagan and Shaz Qadeer. 2002. Predicate Abstraction for Software Verification. In Proceedings of the 29th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages. 191-202.
[42]
Alan M. Frisch and Paul A. Giannaros. 2010. SAT Encodings of the At-Most-k Constraint. Some Old, Some New, Some Fast, Some Slow. In Proceedings of the Tenth International Workshop of Constraint Modelling and Reformulation.
[43]
Vijay Ganesh and David L. Dill. 2007. A Decision Procedure for Bit-vectors and Arrays. In Proceedings of the 19th International Conference on Computer Aided Verification (Berlin, Germany). 519-531. http://dl.acm.org/citation.cfm?id= 1770351. 1770421
[44]
Gecode. 2016. Generic Constraint Development Environment. https://www.gecode.org/
[45]
Ian Gent, Lars Kotthof, Ian Miguel, and Peter Nightingale. 2010. Machine learning for constraint solver design-A case study for the alldiferent constraint. arXiv preprint arXiv:1008.4326 ( 2010 ).
[46]
Ian P Gent and Inês Lynce. 2005. A SAT encoding for the social golfer problem. Modelling and Solving Problems with Constraints 2 ( 2005 ).
[47]
Patrice Godefroid, Nils Klarlund, and Koushik Sen. 2005. DART: Directed Automated Random Testing. In Proceedings of the 2005 ACM SIGPLAN Conference on Programming Language Design and Implementation. 213-223.
[48]
Hugo Musso Gualandi. 2012. Using an industrial-strength SAT solver to solve the Hexiom puzzle. https://github.com/hugomg/ hexiom
[49]
Shai Haim and Toby Walsh. 2009. Restart strategy selection using machine learning techniques. In International Conference on Theory and Applications of Satisfiability Testing. Springer, 312-325.
[50]
Stefen Hölldobler and Van-Hau Nguyen. 2013. An Eficient Encoding of the at-most-one Constraint.
[51]
Jef Huang. 2015a. Stateless Model Checking Concurrent Programs with Maximal Causality Reduction. In Proceedings of the 36th ACM SIGPLAN Conference on Programming Language Design and Implementation (Portland, OR, USA). 165-174. https://doi.org/10.1145/2737924.2737975
[52]
Jef Huang. 2015b. Stateless Model Checking Concurrent Programs with Maximal Causality Reduction. In Proceedings of the 36th ACM SIGPLAN Conference on Programming Language Design and Implementation (Portland, OR, USA) ( PLDI '15). ACM, New York, NY, USA, 165-174. https://doi.org/10.1145/2737924.2737975
[53]
Jef Huang, Patrick O'Neil Meredith, and Grigore Rosu. 2014. Maximal Sound Predictive Race Detection with Control Flow Abstraction. In Proceedings of the 35th ACM SIGPLAN Conference on Programming Language Design and Implementation (Edinburgh, United Kingdom). 337-348. https://doi.org/10.1145/2594291.2594315
[54]
Jeevana Priya Inala, Rohit Singh, and Armando Solar-Lezama. 2016. Synthesis of Domain Specific CNF Encoders for Bit-Vector Solvers. In SAT (Lecture Notes in Computer Science, Vol. 9710 ). Springer, 302-320.
[55]
SMT LIB Initiative. 2018. SMT-LIB The Satisfiability Modulo Theories Library. http://smtlib.cs.uiowa.edu/index.shtml
[56]
Markus Iser, Mana Taghdiri, and Carsten Sinz. 2012. Optimizing MiniSAT Variable Orderings for the Relational Model Finder Kodkod. In Theory and Applications of Satisfiability Testing-SAT 2012, Alessandro Cimatti and Roberto Sebastiani (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 483-484.
[57]
Daniel Jackson. 2002. Alloy: A lightweight object modelling notation. ACM Transactions on Software Engineering and Methodology 11, 2 ( 2002 ), 256-290.
[58]
Susmit Jha, Rhishikesh Limaye, and Sanjit A. Seshia. 2009. Beaver: Engineering an Eficient SMT Solver for Bit-Vector Artithmetic. In Proc. 21st International Conference on Computer-Aided verification (CAV) (Lecture Notes in Computer Science, Vol. 5643 ). 668-674.
[59]
Christian Gram Kalhauge and Jens Palsberg. 2018. Sound Deadlock Prediction. Proc. ACM Program. Lang. 2, OOPSLA, Article 146 (Oct. 2018 ), 29 pages. https://doi.org/10.1145/3276516
[60]
Henry Kautz and Bart Selman. 2006. SATPLAN04: Planning as satisfiability. Working Notes on the Fifth International Planning Competition (IPC-2006) ( 2006 ), 45-46.
[61]
Henry A. Kautz and Bart Selman. 2003. Ten Challenges Redux: Recent Progress in Propositional Reasoning and Search. In Principles and Practice of Constraint Programming-CP 2003, 9th International Conference, CP 2003, Kinsale, Ireland, September 29-October 3, 2003, Proceedings. 1-18.
[62]
Will Klieber and Gihwon Kwon. 2007a. Eficient CNF Encoding for Selecting 1 from N Objects.
[63]
Will Klieber and Gihwon Kwon. 2007b. Eficient CNF Encoding for Selecting 1 from N Objects. In Proceedings of the Fourth Workshop on Constraint in Formal Verification.
[64]
Wolfgang Kuechlin and Carsten Sinz. 2000. Proving Consistency Assertions for Automotive Product Data Management. J. Autom. Reasoning 24 (02 2000 ), 145-163. https://doi.org/10.1023/A:1006370506164
[65]
Vitaly Kurin, Saad Godil, Shimon Whiteson, and Bryan Catanzaro. 2019. Improving SAT Solver Heuristics with Graph Networks and Reinforcement Learning. arXiv: 1909. 11830 [cs.LG]
[66]
Daniel Le Berre and Anne Parrain. 2010. The Sat4j library, release 2.2. JSAT 7 ( 01 2010 ), 59-6.
[67]
Jia Hui Liang, Vijay Ganesh, Pascal Poupart, and Krzysztof Czarnecki. 2016. Learning Rate Based Branching Heuristic for SAT Solvers. In SAT (Lecture Notes in Computer Science, Vol. 9710 ). Springer, 123-140.
[68]
Jia Hui Liang, Chanseok Oh, Minu Mathew, Ciza Thomas, Chunxiao Li, and Vijay Ganesh. 2018. Machine Learning-Based Restart Policy for CDCL SAT Solvers. In International Conference on Theory and Applications of Satisfiability Testing. Springer, 94-110.
[69]
InÃłs Lynce and JoÃńl Ouaknine. 2006. Sudoku as a SAT problem.
[70]
Panagiotis Manolios and Daron Vroon. 2007. Eficient Circuit to CNF Conversion. In Proceedings of the 10th International Conference on Theory and Applications of Satisfiability Testing (SAT).
[71]
Norbert Manthey, Marijn JH Heule, and Armin Biere. 2012. Automated reencoding of boolean formulas. In Haifa Verification Conference. Springer, 102-117.
[72]
R. Martins, V. Manquinho, and I. Lynce. 2011. Exploiting Cardinality Encodings in Parallel Maximum Satisfiability. In 2011 IEEE 23rd International Conference on Tools with Artificial Intelligence. 313-320.
[73]
Y. Matsunaga. 2015. Accelerating SAT-based Boolean matching for heterogeneous FPGAs using one-hot encoding and CEGAR technique. In The 20th Asia and South Pacific Design Automation Conference. 255-260.
[74]
Amit Metodi and Michael Codish. 2012. Compiling finite domain constraints to SAT with BEE. Theory and Practice of Logic Programming 12, 4-5 ( 2012 ), 465-483.
[75]
Cuong Nguyen, Hiroaki Yoshida, Mukul Prasad, Indradeep Ghosh, and Koushik Sen. 2015. Generating Succinct Test Cases Using Don't Care Analysis. In 2015 IEEE 8th International Conference on Software Testing, Verification and Validation (ICST). IEEE, 1-10.
[76]
Eoin O'Mahony, Emmanuel Hebrard, Alan Holland, Conor Nugent, and Barry O'Sullivan. 2008. Using case-based reasoning in an algorithm portfolio for constraint solving. In Irish conference on artificial intelligence and cognitive science. 210-216.
[77]
Uwe Pfeifer, Tomas Karnagel, and Guido Schefler. 2013. A Sudoku-Solver for Large Puzzles using SAT. In LPAR-17-short. short papers for 17th International Conference on Logic for Programming, Artificial intelligence, and Reasoning. (EPiC Series in Computing, Vol. 13 ), Andrei Voronkov, Geof Sutclife, Matthias Baaz, and Christian Ferm\ "uller (Eds.). EasyChair, 52-57. https://doi.org/10.29007/79mc
[78]
Jussi Rintanen. 2014. Madagascar: Scalable planning with SAT. Proceedings of the 8th International Planning Competition (IPC-2014 ) 21 ( 2014 ).
[79]
Nathan Robinson, Charles Gretton, Duc Nghia Pham, and Abdul Sattar. 2008. A Compact and Eficient SAT Encoding for Planning. In ICAPS. 296-303.
[80]
Marko Samer and Helmut Veith. 2009. Encoding treewidth into SAT. In International Conference on Theory and Applications of Satisfiability Testing. Springer, 45-50.
[81]
Koushik Sen, Swaroop Kalasapur, Tasneem Brutch, and Simon Gibbs. 2013. Jalangi: a selective record-replay and dynamic analysis framework for JavaScript. In Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering. 488-498.
[82]
Koushik Sen, Darko Marinov, and Gul Agha. 2005. CUTE: A Concolic Unit Testing Engine for C. In Proceedings of the 10th European Software Engineering Conference Held Jointly with 13th ACM SIGSOFT International Symposium on Foundations of Software Engineering. 263-272.
[83]
Qingkai Shi, Xiao Xiao, Rongxin Wu, Jinguo Zhou, Gang Fan, and Charles Zhang. 2018. Pinpoint: Fast and Precise Sparse Value Flow Analysis for Million Lines of Code. In Proceedings of the 39th ACM SIGPLAN Conference on Programming Language Design and Implementation (Philadelphia, PA, USA). 693-706.
[84]
Helgi Sigurbjarnarson, James Bornholt, Emina Torlak, and Xi Wang. 2016. Push-Button Verification of File Systems via Crash Refinement. In 12th USENIX Symposium on Operating Systems Design and Implementation. 1-16.
[85]
Rishabh Singh, Joseph P. Near, Vijar Ganesh, and Martin Rinard. 2009. AvatarSAT: An Auto-Tuning Boolean SAT Solver. Technical Report MIT-CSAIL-TR-2009-039. Massachusetts Institute of Technology.
[86]
Rohit Singh and Armando Solar-Lezama. 2016. SWAPPER: A framework for automatic generation of formula simplifiers based on conditional rewrite rules. In FMCAD. IEEE, 185-192.
[87]
Carsten Sinz. 2005. Towards an Optimal CNF Encoding of Boolean Cardinality Constraints. In Principles and Practice of Constraint Programming-CP 2005, Peter van Beek (Ed.). Springer Berlin Heidelberg, Berlin, Heidelberg, 827-831.
[88]
Naoyuki Tamura, Mutsunori Banbara, and Takehide Soh. 2013. Compiling pseudo-boolean constraints to SAT with order encoding. In 2013 IEEE 25th International Conference on Tools with Artificial Intelligence. IEEE, 1020-1027.
[89]
Naoyuki Tamura, Akiko Taga, Satoshi Kitagawa, and Mutsunori Banbara. 2009. Compiling finite linear CSP into SAT. Constraints 14, 2 ( 2009 ), 254-272.
[90]
Tomoya Tanjo, Naoyuki Tamura, and Mutsunori Banbara. 2011. A compact and eficient SAT-encoding of finite domain CSP. In International Conference on Theory and Applications of Satisfiability Testing. Springer, 375-376.
[91]
Tomoya Tanjo, Naoyuki Tamura, and Mutsunori Banbara. 2012. Azucar: A SAT-Based CSP Solver Using Compact Order Encoding. In Theory and Applications of Satisfiability Testing-SAT 2012, Alessandro Cimatti and Roberto Sebastiani (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 456-462.
[92]
Haruto Tanno, Xiaojing Zhang, Takashi Hoshino, and Koushik Sen. 2015. TesMa and CATG: automated test generation tools for models of enterprise applications. In 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering, Vol. 2. IEEE, 717-720.
[93]
Nils Timm, Stefan Gruner, and Prince Sibanda. 2017. Model Checking of Concurrent Software Systems via Heuristic-Guided SAT Solving. In International Conference on Fundamentals of Software Engineering. Springer, 244-259.
[94]
Emina Torlak and Daniel Jackson. 2007. Kodkod: A Relational Model Finder. In Tools and Algorithms for the Construction and Analysis of Systems, 13th International Conference, TACAS 2007, Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2007 Braga, Portugal, March 24-April 1, 2007, Proceedings. 632-647.
[95]
Emina Torlak, Mandana Vaziri, and Julian Dolby. 2010. MemSAT: Checking Axiomatic Specifications of Memory Models. In Proceedings of the 2010 Conference on Programming Language Design and Implementation. 341-350. http://doi.acm.org/10. 1145/1809028.1806635
[96]
Fatih Turkmen, Jerry den Hartog, Silvio Ranise, and Nicola Zannone. 2015. Analysis of XACML policies with SMT. In International Conference on Principles of Security and Trust. Springer, 115-134.
[97]
Peter JM Van Laarhoven and Emile HL Aarts. 1987. Simulated annealing. In Simulated annealing: Theory and applications. Springer, 7-15.
[98]
Joost P. Warners. 1998. A linear-time transformation of linear inequalities into conjunctive normal form. Inform. Process. Lett. 68, 2 ( 1998 ), 63-69. https://doi.org/10.1016/S0020-0190 ( 98 ) 00144-6
[99]
Tjark Weber. 2005. A SAT-based Sudoku Solver. In LPAR-12, The 12th International Conference on Logic for Programming, Artificial Intelligence, and Reasoning, Short Paper Proceedings, Geof Sutclife and Andrei Voronkov (Eds.). 11-15.
[100]
TED WINOGRAD and HAMID MAHMOODI. 2009. Programmable Gates Using Hybrid CMOS-STT Design to Prevent IC Reverse Engineering. ( 2009 ).
[101]
Haoze Wu. 2017. Improving SAT-solving with Machine Learning. In Proceedings of the 2017 ACM SIGCSE Technical Symposium on Computer Science Education (SIGCSE '17). ACM, New York, NY, USA, 787-788. http://doi.acm.org/10.1145/3017680. 3022464
[102]
Yichen Xie and Alex Aiken. 2005. Saturn: A SAT-based tool for bug detection. In International Conference on Computer Aided Verification. Springer, 139-143.
[103]
Lin Xu, Frank Hutter, Holger H Hoos, and Kevin Leyton-Brown. 2008. SATzilla: portfolio-based algorithm selection for SAT. Journal of artificial intelligence research 32 ( 2008 ), 565-606.
[104]
Cunxi Yu, Xiangyu Zhang, Duo Liu, Maciej Ciesielski, and Daniel Holcomb. 2017. Incremental SAT-based reverse engineering of camouflaged logic circuits. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems 36, 10 ( 2017 ), 1647-1659.
[105]
Hantao Zhang, Dapeng Li, and Haiou Shen. 2004. A SAT Based Scheduler for Tournament Schedules. In SAT.
[106]
Neng-Fa Zhou. 2020. Yet Another Comparison of SAT Encodings for the At-Most-K Constraint. arXiv: 2005. 06274 [cs.LO]
[107]
Zhiqiang Zuo, John Thorpe, Yifei Wang, Qiuhong Pan, Shenming Lu, Kai Wang, Guoqing Harry Xu, Linzhang Wang, and Xuandong Li. 2019. Grapple: A Graph System for Static Finite-State Property Checking of Large-Scale System Code. In Proceedings of European Computer System Conference.

Cited By

View all
  • (2023)Static Analysis of Memory Models for SMT EncodingsProceedings of the ACM on Programming Languages10.1145/36228557:OOPSLA2(1618-1647)Online publication date: 16-Oct-2023
  • (2023)Scalable Optimal Layout Synthesis for NISQ Quantum Processors2023 60th ACM/IEEE Design Automation Conference (DAC)10.1109/DAC56929.2023.10247760(1-6)Online publication date: 9-Jul-2023
  • (2022)Conjure: Automatic Generation of Constraint Models from Problem SpecificationsArtificial Intelligence10.1016/j.artint.2022.103751310(103751)Online publication date: Sep-2022
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image Proceedings of the ACM on Programming Languages
Proceedings of the ACM on Programming Languages  Volume 4, Issue OOPSLA
November 2020
3108 pages
EISSN:2475-1421
DOI:10.1145/3436718
Issue’s Table of Contents
This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives International 4.0 License.

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 13 November 2020
Published in PACMPL Volume 4, Issue OOPSLA

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Auto-tuning
  2. Constraint Solvers
  3. SAT encoding

Qualifiers

  • Research-article

Funding Sources

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)278
  • Downloads (Last 6 weeks)34
Reflects downloads up to 30 Aug 2024

Other Metrics

Citations

Cited By

View all
  • (2023)Static Analysis of Memory Models for SMT EncodingsProceedings of the ACM on Programming Languages10.1145/36228557:OOPSLA2(1618-1647)Online publication date: 16-Oct-2023
  • (2023)Scalable Optimal Layout Synthesis for NISQ Quantum Processors2023 60th ACM/IEEE Design Automation Conference (DAC)10.1109/DAC56929.2023.10247760(1-6)Online publication date: 9-Jul-2023
  • (2022)Conjure: Automatic Generation of Constraint Models from Problem SpecificationsArtificial Intelligence10.1016/j.artint.2022.103751310(103751)Online publication date: Sep-2022
  • (2022)Coupling Different Integer Encodings for SATIntegration of Constraint Programming, Artificial Intelligence, and Operations Research10.1007/978-3-031-08011-1_5(44-63)Online publication date: 20-Jun-2022

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Get Access

Login options

Full Access

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media