Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/3382025.3414965acmconferencesArticle/Chapter ViewAbstractPublication PagessplcConference Proceedingsconference-collections
research-article

Variational satisfiability solving

Published: 19 October 2020 Publication History

Abstract

Incremental satisfiability (SAT) solving is an extension of classic SAT solving that allows users to efficiently solve a set of related SAT problems by identifying and exploiting shared terms. However, using incremental solvers effectively is hard since performance is sensitive to a problem's structure and the order sub-terms are fed to the solver, and the burden to track results is placed on the end user. For analyses that generate sets of related SAT problems, such as those in software product lines, incremental SAT solvers are either not used at all, used but not explicitly stated so in the literature, or used but suffer from the aforementioned usability problems. This paper translates the ordering problem to an encoding problem and automates the use of incremental SAT solving. We introduce variational SAT solving, which differs from incremental SAT solving by accepting all related problems as a single variational input and returning all results as a single variational output. Our central idea is to make explicit the operations of incremental SAT solving, thereby encoding differences between related SAT problems as local points of variation. Our approach automates the interaction with the incremental solver and enables methods to automatically optimize sharing of the input. To evaluate our methods we construct a prototype variational SAT solver and perform an empirical analysis on two real-world datasets that applied incremental solvers to software evolution scenarios. We show, assuming a variational input, that the prototype solver scales better for these problems than naive incremental solving while also removing the need to track individual results.

References

[1]
Mathieu Acher, Philippe Collet, Philippe Lahire, and Robert B. France. 2011. Slicing Feature Models. In Proc. Int'l Conf. on Automated Software Engineering (ASE). IEEE, 424--427.
[2]
Sofia Ananieva, Matthias Kowal, Thomas Thüm, and Ina Schaefer. 2016. Implicit Constraints in Partial Feature Models. In Int. Work. on Feature-Oriented Software Development (FOSD). ACM, 18--27.
[3]
Sven Apel, Wolfgang Scholz, Christian Lengauer, and Christian Kästner. 2010. Language-Independent Reference Checking in Software Product Lines. In Int. Work. on Feature-Oriented Software Development (FOSD). ACM, 65--71.
[4]
Parisa Ataei, Arash Termehchy, and Eric Walkingshaw. 2017. Variational Databases. In Int. Symp. on Database Programming Languages (DBPL). ACM, 11:1--11:4.
[5]
Parisa Ataei, Arash Termehchy, and Eric Walkingshaw. 2018. Managing Structurally Heterogeneous Databases in Software Product Lines. In VLDB Workshop: Polystores and Other Systems for Heterogeneous Data (Poly).
[6]
Thomas H Austin and Cormac Flanagan. 2012. Multiple facets for dynamic information flow. In Proceedings of the 39th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages. 165--178.
[7]
Thomas H. Austin, Jean Yang, Cormac Flanagan, and Armando Solar-Lezama. 2013. Faceted Execution of Policy-Agnostic Programs. In Proceedings of the Eighth ACM SIGPLAN Workshop on Programming Languages and Analysis for Security (Seattle, Washington, USA) (PLAS '13). Association for Computing Machinery, New York, NY, USA, 15--26.
[8]
Clark Barrett, Pascal Fontaine, and Cesare Tinelli. 2016. The Satisfiability Modulo Theories Library (SMT-LIB). www.SMT-LIB.org.
[9]
Don Batory. 2005. Feature Models, Grammars, and Propositional Formulas. In Proc. Int'l Systems and Software Product Line Conf. (SPLC). Springer, 7--20.
[10]
David Benavides, Antonio Ruiz-Cortés, and Pablo Trinidad. 2005. Automated Reasoning on Feature Models. In Proc. Int'l Conf. on Advanced Information Systems Engineering (CAiSE). 491--503.
[11]
David Benavides, Sergio Segura, and Antonio Ruiz-Cortés. 2010. Automated Analysis of Feature Models 20 Years Later: A Literature Review. Information Systems 35, 6 (2010), 615--708.
[12]
Paul Maximilian Bittner, Thomas Thüm, and Ina Schaefer. 2019. SAT Encodings of the At-Most-k Constraint. In Software Engineering and Formal Methods, Peter Csaba Ölveczky and Gwen Salaün (Eds.). Springer International Publishing, Cham, 127--144.
[13]
Eric Bodden, Társis Tolêdo, Márcio Ribeiro, Claus Brabrand, Paulo Borba, and Mira Mezini. 2013. SPLLIFT: Statically Analyzing Software Product Lines in Minutes Instead of Years. In Proc. ACM SIGPLAN Conf. on Programming Language Design and Implementation (PLDI). ACM, 355--364.
[14]
John Peter Campora III, Sheng Chen, Martin Erwig, and Eric Walkingshaw. 2018. Migrating Gradual Types. Proc. of the ACM on Programming Languages (PACMPL) issue ACM SIGPLAN Symp. on Principles of Programming Languages (POPL) 2 (2018), 15:1--15:29.
[15]
John Peter Campora III, Sheng Chen, and Eric Walkingshaw. 2018. Casts and Costs: Harmonizing Safety and Performance in Gradual Typing. Proc. of the ACM on Programming Languages (PACMPL) issue ACM SIGPLAN Int. Conf. on Functional Programming (ICFP) 2 (2018), 98:1--98:30.
[16]
Ivan Do Carmo Machado, John D. McGregor, Yguaratã Cerqueira Cavalcanti, and Eduardo Santana De Almeida. 2014. On Strategies for Testing Software Product Lines: A Systematic Literature Review. J. Information and Software Technology (IST) 56, 10 (2014), 1183--1199.
[17]
S. Chen and M. Erwig. 2014. Counter-Factual Typing for Debugging Type Errors. In ACM SIGPLAN-SIGACT Symp. on Principles of Programming Languages. 583--594.
[18]
S. Chen, M. Erwig, and K. Smeltzer. 2014. Let's Hear Both Sides: On Combining Type-Error Reporting Tools. In IEEE Int. Symp. on Visual Languages and Human-Centric Computing. 145--152.
[19]
S. Chen, M. Erwig, and K. Smeltzer. 2017. Exploiting Diversity in Type Checkers for Better Error Messages. Journal of Visual Languages and Computing 39 (2017), 10--21.
[20]
Sheng Chen, Martin Erwig, and Eric Walkingshaw. 2012. An Error-Tolerant Type System for Variational Lambda Calculus. In ACM SIGPLAN Int. Conf. on Functional Programming (ICFP). 29--40.
[21]
Sheng Chen, Martin Erwig, and Eric Walkingshaw. 2014. Extending Type Inference to Variational Programs. ACM Trans. on Programming Languages and Systems 36, 1, Article 1 (2014), 1:1--1:54 pages.
[22]
Koen Claessen and John Hughes. 2011. QuickCheck: A Lightweight Tool for Random Testing of Haskell Programs. SIGPLAN Not. 46, 4 (May 2011), 53--64.
[23]
Andreas Classen, Maxime Cordy, Pierre-Yves Schobbens, Patrick Heymans, Axel Legay, and Jean-Francois Raskin. 2013. Featured Transition Systems: Foundations for Verifying Variability-Intensive Systems and Their Application to LTL Model Checking. IEEE Trans. on Software Engineering 39, 8 (2013), 1069--1089.
[24]
Krzysztof Czarnecki and Krzysztof Pietroszek. 2006. Verifying Feature-Based Model Templates Against Well-Formedness OCL Constraints. In ACM SIGPLAN Conf. on Generative Programming and Component Engineering. ACM, 211--220.
[25]
Krzysztof Czarnecki and Andrzej Wąsowski. 2007. Feature Diagrams and Logics: There and Back Again. In Proc. Int'l Systems and Software Product Line Conf. (SPLC). IEEE, 23--34.
[26]
Leonardo de Moura and Nikolaj Bjørner. 2008. Z3: An Efficient SMT Solver. In Tools and Algorithms for the Construction and Analysis of Systems, C. R. Ramakrishnan and Jakob Rehof (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 337--340.
[27]
Jean Dunn and Olive Jean Dunn. 1961. Multiple Comparisons Among Means. American Statistical Association (1961), 52--64.
[28]
M. Erwig and K. Smeltzer. 2018. Variational Pictures. In Int. Conf. on the Theory and Application of Diagrams (LNAI 10871). 55--70.
[29]
Martin Erwig and Eric Walkingshaw. 2011. The Choice Calculus: A Representation for Software Variation. ACM Trans. on Software Engineering and Methodology (TOSEM) 21, 1 (2011), 6:1--6:27.
[30]
Martin Erwig, Eric Walkingshaw, and Sheng Chen. 2013. An Abstract Representation of Variational Graphs. In Int. Work. on Feature-Oriented Software Development (FOSD). ACM, 25--32.
[31]
Wolfram Fenske, Jens Meinicke, Sandro Schulze, Steffen Schulze, and Gunter Saake. 2017. Variant-Preserving Refactorings for Migrating Cloned Products to a Product Line. In Proc. Int'l Conf. on Software Analysis, Evolution and Reengineering (SANER). IEEE, 316--326.
[32]
José A. Galindo, David Benavides, Pablo Trinidad, Antonio-Manuel Gutiérrez-Fernández, and Antonio Ruiz-Cortés. 2019. Automated Analysis of Feature Models: Quo Vadis? Computing 101, 5 (2019), 387--433.
[33]
James Garson. 2018. Modal Logic. In The Stanford Encyclopedia of Philosophy (fall 2018 ed.), Edward N. Zalta (Ed.). Metaphysics Research Lab, Stanford University.
[34]
Shan Shan Huang, David Zook, and Yannis Smaragdakis. 2011. Statically Safe Program Generation with SafeGen. Science of Computer Programming (SCP) 76, 5 (2011), 376--391.
[35]
Paul Hudak, John Hughes, Simon Peyton Jones, and Philip Wadler. 2007. A History of Haskell: Being Lazy with Class. In Proceedings of the Third ACM SIGPLAN Conference on History of Programming Languages (San Diego, California) (HOPL III). Association for Computing Machinery, New York, NY, USA, 12-1--12-55.
[36]
Christian Kästner, Paolo G. Giarrusso, Tillmann Rendel, Sebastian Erdweg, Klaus Ostermann, and Thorsten Berger. 2011. Variability-Aware Parsing in the Presence of Lexical Macros and Conditional Compilation. In Proc. Conf. on Object-Oriented Programming, Systems, Languages and Applications (OOPSLA). ACM, 805--824.
[37]
Paul Kocher, Jann Horn, Anders Fogh, Daniel Genkin, Daniel Gruss, Werner Haas, Mike Hamburg, Moritz Lipp, Stefan Mangard, Thomas Prescher, Michael Schwarz, and Yuval Yarom. 2019. Spectre Attacks: Exploiting Speculative Execution. In 40th IEEE Symposium on Security and Privacy (S&P'19).
[38]
Matthias Kowal, Sofia Ananieva, and Thomas Thüm. 2016. Explaining Anomalies in Feature Models. In Proc. Int'l Conf. on Generative Programming: Concepts & Experiences (GPCE). ACM, 132--143.
[39]
Sebastian Krieter, Reimar Schröter, Thomas Thüm, Wolfram Fenske, and Gunter Saake. 2016. Comparing Algorithms for Efficient Feature-Model Slicing. In Proc. Int'l Systems and Software Product Line Conf. (SPLC). ACM, 60--64.
[40]
Sebastian Krieter, Thomas Thüm, Sandro Schulze, Reimar Schröter, and Gunter Saake. 2018. Propagating Configuration Decisions with Modal Implication Graphs. In Proc. Int'l Conf. on Software Engineering (ICSE). ACM, 898--909.
[41]
Redis Labs. [n.d.]. Redis. Accessed at May 4th, 2020.
[42]
Micahel Larabel. [n.d.]. A Global Switch To Kill Linux's CPU Spectre/Meltdown Workarounds? Accessed at March 25th, 2020.
[43]
Jörg Liebig, Christian Kästner, and Sven Apel. 2011. Analyzing the Discipline of Preprocessor Annotations in 30 Million Lines of C Code. In Int. Conf. on Aspect-Oriented Software Development. 191--202.
[44]
Jörg Liebig, Alexander von Rhein, Christian Kästner, Sven Apel, Jens Dörre, and Christian Lengauer. 2013. Scalable Analysis of Variable Software. In Proc. Europ. Software Engineering Conf./Foundations of Software Engineering (ESEC/FSE). ACM, 81--91.
[45]
Moritz Lipp, Michael Schwarz, Daniel Gruss, Thomas Prescher, Werner Haas, Anders Fogh, Jann Horn, Stefan Mangard, Paul Kocher, Daniel Genkin, Yuval Yarom, and Mike Hamburg. 2018. Meltdown: Reading Kernel Memory from User Space. In 27th USENIX Security Symposium (USENIX Security 18).
[46]
Jacopo Mauro, Michael Nieke, Christoph Seidl, and Ingrid Chieh Yu. 2017. Anomaly Detection and Explanation in Context-Aware Software Product Lines. In Proc. Int'l Systems and Software Product Line Conf. (SPLC). ACM, 18--21.
[47]
Flávio Medeiros, Christian Kästner, Márcio Ribeiro, Rohit Gheyi, and Sven Apel. 2016. A Comparison of 10 Sampling Algorithms for Configurable Systems. In Proc. Int'l Conf. on Software Engineering (ICSE). ACM, 643--654.
[48]
Marcílio Mendonça, Andrzej Wąsowski, Krzysztof Czarnecki, and Donald Cowan. 2008. Efficient Compilation Techniques for Large Scale Feature Models. In ACM SIGPLAN Conf. on Generative Programming and Component Engineering. ACM, 13--22.
[49]
Meng Meng, Jens Meinicke, Chu-Pan Wong, Eric Walkingshaw, and Christian Kästner. 2017. A Choice of Variational Stacks: Exploring Variational Data Structures. In Int. Work. on Variability Modelling of Software-Intensive Systems (VaMoS). ACM, 28--35.
[50]
Kristopher K. Micinski. 2018. Abstracting Faceted Execution.
[51]
Alexander Nadel, Vadim Ryvchin, and Ofer Strichman. 2014. Ultimately Incremental SAT. In Theory and Applications of Satisfiability Testing - SAT 2014, Carsten Sinz and Uwe Egly (Eds.). Springer International Publishing, Cham, 206--218.
[52]
Hung Viet Nguyen, Christian Kästner, and Tien N. Nguyen. 2014. Exploring Variability-Aware Execution for Testing Plugin-Based Web Applications. In Proc. Int'l Conf. on Software Engineering (ICSE). ACM, 907--918.
[53]
Michael Nieke, Jacopo Mauro, Christoph Seidl, Thomas Thüm, Ingrid Chieh Yu, and Felix Franzke. 2018. Anomaly Analyses for Feature-Model Evolution. In ACM SIGPLAN Conf. on Generative Programming and Component Engineering. ACM, 188--201.
[54]
National Institute of Standards and Technology. [n.d.]. NIST e-Handbook of Statistical Methods. Accessed at May 7th, 2020.
[55]
Bryan O'Sullivan. 2009. Criterian: A Haskell microbenchmarking library. Website. Available online at https://hackage.haskell.org/package/gauge-0.2.5; visited on May 7th, 2020.
[56]
N. Rescher. 1969. Many-valued Logic. McGraw-Hill. https://books.google.com/books?id=ZyTXAAAAMAAJ
[57]
Abdel Salam Sayyad, Joseph Ingram, Tim Menzies, and Hany Ammar. 2013. Scalable Product Line Configuration: A Straw to Break the Camel's Back. In Proc. Int'l Conf. on Automated Software Engineering (ASE). IEEE, 465--474.
[58]
Thomas Schmitz, Maximilian Algehed, Cormac Flanagan, and Alejandro Russo. 2018. Faceted Secure Multi Execution. In CCS '18.
[59]
Reimar Schröter, Sebastian Krieter, Thomas Thüm, Fabian Benduhn, and Gunter Saake. 2016. Feature-Model Interfaces: The Highway to Compositional Analyses of Highly-Configurable Systems. In Proc. Int'l Conf. on Software Engineering (ICSE). ACM, 667--678.
[60]
Norbert Siegmund, Marko Rosenmüller, Martin Kuhlemann, Christian Kästner, Sven Apel, and Gunter Saake. 2012. SPL Conqueror: Toward Optimization of Non-functional Properties in Software Product Lines. Software Quality Journal (SQJ) 20, 3--4 (2012), 487--517.
[61]
K. Smeltzer and M. Erwig. 2017. Variational Lists: Comparisons and Design Guidelines. In ACM SIGPLAN Int. Workshop on Feature-Oriented Software Development. 31--40.
[62]
Reinhard Tartler, Daniel Lohmann, Julio Sincero, and Wolfgang Schröder-Preikschat. 2011. Feature Consistency in Compile-Time-Configurable System Software: Facing the Linux 10,000 Feature Problem. In Proc. Europ. Conf. on Computer Systems (EuroSys). ACM, 47--60.
[63]
Sahil Thaker, Don Batory, David Kitchin, and William Cook. 2007. Safe Composition of Product Lines. In ACM SIGPLAN Conf. on Generative Programming and Component Engineering. ACM, 95--104.
[64]
Thomas Thüm, Sven Apel, Christian Kästner, Ina Schaefer, and Gunter Saake. 2014. A Classification and Survey of Analysis Strategies for Software Product Lines. Comput. Surveys 47, 1 (2014), 6:1--6:45.
[65]
Mahsa Varshosaz, Mustafa Al-Hajjaji, Thomas Thüm, Tobias Runge, Mohammad Reza Mousavi, and Ina Schaefer. 2018. A Classification of Product Sampling for Software Product Lines. In Proc. Int'l Systems and Software Product Line Conf. (SPLC). ACM, 1--13.
[66]
Willem Visser, Jaco Geldenhuys, and Matthew B. Dwyer. 2012. Green: Reducing, Reusing and Recycling Constraints in Program Analysis. In Proc. Int'l Symposium on Foundations of Software Engineering (FSE). ACM, 58:1--58:11.
[67]
Alexander von Rhein, Alexander Grebhahn, Sven Apel, Norbert Siegmund, Dirk Beyer, and Thorsten Berger. 2015. Presence-Condition Simplification in Highly Configurable Systems. In Proc. Int'l Conf. on Software Engineering (ICSE). IEEE, 178--188.
[68]
Eric Walkingshaw. 2013. The Choice Calculus: A Formal Language of Variation. Ph.D. Dissertation. Oregon State University. http://hdl.handle.net/1957/40652.
[69]
Eric Walkingshaw, Christian Kästner, Martin Erwig, Sven Apel, and Eric Bodden. 2014. Variational Data Structures: Exploring Trade-Offs in Computing with Variability. In ACM SIGPLAN Symp. on New Ideas in Programming and Reflections on Software (Onward!). 213--226.
[70]
Frank Wilcoxon. 1945. Individual Comparisons by Ranking Methods. Biometrics Bulletin 1, 6 (1945), 80--83. http://www.jstor.org/stable/3001968

Cited By

View all
  • (2023)Variational satisfiability solving: efficiently solving lots of related SAT problemsEmpirical Software Engineering10.1007/s10664-022-10217-328:1Online publication date: 1-Jan-2023

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
SPLC '20: Proceedings of the 24th ACM Conference on Systems and Software Product Line: Volume A - Volume A
October 2020
323 pages
ISBN:9781450375696
DOI:10.1145/3382025
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 19 October 2020

Permissions

Request permissions for this article.

Check for updates

Badges

Author Tags

  1. choice calculus
  2. satisfiability solving
  3. software product lines
  4. variation

Qualifiers

  • Research-article

Conference

SPLC '20
Sponsor:

Acceptance Rates

SPLC '20 Paper Acceptance Rate 17 of 49 submissions, 35%;
Overall Acceptance Rate 167 of 463 submissions, 36%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)8
  • Downloads (Last 6 weeks)2
Reflects downloads up to 22 Sep 2024

Other Metrics

Citations

Cited By

View all
  • (2023)Variational satisfiability solving: efficiently solving lots of related SAT problemsEmpirical Software Engineering10.1007/s10664-022-10217-328:1Online publication date: 1-Jan-2023

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media