Skip to main content

Supercharging Plant Configurations Using Z3

  • Conference paper
  • First Online:

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 12735))

Abstract

We describe our experiences using Z3 for synthesizing and optimizing next generation plant configurations for a car manufacturing company (The views expressed in this writing are our own. They make no representation on behalf of others). Our approach leverages unique capabilities of Z3: a combination of specialized solvers for finite domain bit-vectors and uninterpreted functions, and a programmable extension that we call constraints as code. To optimize plant configurations using Z3, we identify useful formalisms from Satisfiability Modulo Theories solvers and integrate solving capabilities for the resulting non-trivial optimization problems.

M. Levatich—Work performed while an intern at Microsoft.

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

References

  1. Alur, R., et al.: Syntax-guided synthesis. In: Dependable Software Systems Engineering. NATO Science for Peace and Security Series, D: Information and Communication Security, vol. 40, pp. 1–25. IOS Press (2015). https://doi.org/10.3233/978-1-61499-495-4-1

  2. Andraus, Z.S., Liffiton, M.H., Sakallah, K.A.: Reveal: a formal verification tool for Verilog designs. In: Cervesato, I., Veith, H., Voronkov, A. (eds.) LPAR 2008. LNCS (LNAI), vol. 5330, pp. 343–352. Springer, Heidelberg (2008). https://doi.org/10.1007/978-3-540-89439-1_25

    Chapter  MATH  Google Scholar 

  3. Barnett, M., Grieskamp, W., Nachmanson, L., Schulte, W., Tillmann, N., Veanes, M.: Towards a tool environment for model-based testing with AsmL. In: Petrenko, A., Ulrich, A. (eds.) FATES 2003. LNCS, vol. 2931, pp. 252–266. Springer, Heidelberg (2004). https://doi.org/10.1007/978-3-540-24617-6_18

    Chapter  Google Scholar 

  4. Belov, A., Marques-Silva, J.: Muser2: an efficient MUS extractor. J. Satisf. Boolean Model. Comput. 8(3/4), 123–128 (2012). https://doi.org/10.3233/sat190094

    Article  MATH  Google Scholar 

  5. Berzish, M., Ganesh, V., Zheng, Y.: Z3str3: a string solver with theory-aware heuristics. In: FMCAD (2017). https://doi.org/10.23919/FMCAD.2017.8102241

  6. Bhargavan, K., et al.: Everest: towards a verified, drop-in replacement of HTTPS. In: SNAPL. LIPIcs, vol. 71, pp. 1:1–1:12 (2017). https://doi.org/10.4230/LIPIcs.SNAPL.2017.1

  7. Biere, A., Fazekas, K., Fleury, M., Heisinger, M.: CaDiCaL, Kissat, Paracooba, Plingeling and Treengeling entering the SAT competition 2020. In: Proceedings of SAT Competition 2020 - Solver and Benchmark Descriptions. Department of Computer Science Report Series B, vol. B-2020-1, pp. 51–53. University of Helsinki (2020)

    Google Scholar 

  8. Bjørner, N.: Engineering theories with Z3. In: Yang, H. (ed.) APLAS 2011. LNCS, vol. 7078, pp. 4–16. Springer, Heidelberg (2011). https://doi.org/10.1007/978-3-642-25318-8_3

    Chapter  Google Scholar 

  9. Bjørner, N., de Moura, L.M.: Tractability and modern satisfiability modulo theories solvers. In: Tractability: Practical Approaches to Hard Problems, pp. 350–377. Cambridge University Press (2014). https://doi.org/10.1017/CBO9781139177801.014

  10. Bjørner, N., Nachmanson, L.: Navigating the universe of Z3 theory solvers. In: Carvalho, G., Stolz, V. (eds.) SBMF 2020. LNCS, vol. 12475, pp. 8–24. Springer, Cham (2020). https://doi.org/10.1007/978-3-030-63882-5_2

    Chapter  Google Scholar 

  11. Bjørner, N., Phan, A.-D.: \(\nu \)Z - maximal satisfaction with Z3. In: SCSS. EPiC Series in Computing, vol. 30 pp. 1–9. EasyChair (2014). https://easychair.org/publications/paper/xbn

  12. Bjørner, N., de Moura, L., Nachmanson, L., Wintersteiger, C.M.: Programming Z3. In: Bowen, J.P., Liu, Z., Zhang, Z. (eds.) SETSS 2018. LNCS, vol. 11430, pp. 148–201. Springer, Cham (2019). https://doi.org/10.1007/978-3-030-17601-3_4

    Chapter  Google Scholar 

  13. Burch, J.R., Dill, D.L.: Automatic verification of pipelined microprocessor control. In: Dill, D.L. (ed.) CAV 1994. LNCS, vol. 818, pp. 68–80. Springer, Heidelberg (1994). https://doi.org/10.1007/3-540-58179-0_44

    Chapter  Google Scholar 

  14. Downey, P.J., Sethi, R., Tarjan, R.E.: Variations on the common subexpression problem. J. ACM 27(4), 758–771 (1980). https://doi.org/10.1145/322217.322228

    Article  MathSciNet  MATH  Google Scholar 

  15. Dutertre, B.: Yices 2.2. In: Biere, A., Bloem, R. (eds.) CAV 2014. LNCS, vol. 8559, pp. 737–744. Springer, Cham (2014). https://doi.org/10.1007/978-3-319-08867-9_49

    Chapter  Google Scholar 

  16. Eén, N., Sörensson, N.: An extensible SAT-solver. In: Giunchiglia, E., Tacchella, A. (eds.) SAT 2003. LNCS, vol. 2919, pp. 502–518. Springer, Heidelberg (2004). https://doi.org/10.1007/978-3-540-24605-3_37

    Chapter  Google Scholar 

  17. Godefroid, P., Levin, M.Y., Molnar, D.A.: SAGE: whitebox fuzzing for security testing. Commun. ACM 55(3), 40–44 (2012). https://doi.org/10.1145/2093548.2093564

    Article  Google Scholar 

  18. Gulwani, S., Polozov, O., Singh, R.: Program synthesis. Found. Trends Program. Lang. 4(1–2), 1–119 (2017). https://doi.org/10.1561/2500000010

    Article  Google Scholar 

  19. Heule, M., van Maaren, H.: Look-ahead based SAT solvers. In: Handbook of Satisfiability, vol. 185, pp. 155–184. IOS Press (2009). https://doi.org/10.3233/978-1-58603-929-5-155

  20. Heule, M.J.H., Kullmann, O.: The science of brute force. Commun. ACM 60(8), 70–79 (2017). https://doi.org/10.1145/3107239

    Article  Google Scholar 

  21. Jayaraman, K., et al.: Validating datacenters at scale. In: SIGCOMM (2019). https://doi.org/10.1145/3341302.3342094

  22. Jose, M., Majumdar, R.: Bug-assist: assisting fault localization in ANSI-C programs. In: Gopalakrishnan, G., Qadeer, S. (eds.) CAV 2011. LNCS, vol. 6806, pp. 504–509. Springer, Heidelberg (2011). https://doi.org/10.1007/978-3-642-22110-1_40

    Chapter  Google Scholar 

  23. Lopes, N.P., Menendez, D., Nagarakatte, S., Regehr, J.: Provably correct peephole optimizations with Alive. In: PLDI (2015). https://doi.org/10.1145/2737924.2737965

  24. Lopes, N.P., Lee, J., Hur, C.-K., Liu, Z., Regehr, J.: Alive2: bounded translation validation for LLVM. In: PLDI (2021). https://doi.org/10.1145/3453483.3454030

  25. Microsoft. Microsoft dynamics (2021). https://dynamics.microsoft.com

  26. Nachmanson, L.: Microsoft automated graph layout tool (2021). https://github.com/microsoft/automatic-graph-layout

  27. Nadel, A., Ryvchin, V.: Chronological backtracking. In: Beyersdorff, O., Wintersteiger, C.M. (eds.) SAT 2018. LNCS, vol. 10929, pp. 111–121. Springer, Cham (2018). https://doi.org/10.1007/978-3-319-94144-8_7

    Chapter  Google Scholar 

  28. Nieuwenhuis, R., Oliveras, A.: On SAT modulo theories and optimization problems. In: Biere, A., Gomes, C.P. (eds.) SAT 2006. LNCS, vol. 4121, pp. 156–169. Springer, Heidelberg (2006). https://doi.org/10.1007/11814948_18

    Chapter  MATH  Google Scholar 

  29. Oh, C.: Between SAT and UNSAT: the fundamental difference in CDCL SAT. In: Heule, M., Weaver, S. (eds.) SAT 2015. LNCS, vol. 9340, pp. 307–323. Springer, Cham (2015). https://doi.org/10.1007/978-3-319-24318-4_23

    Chapter  Google Scholar 

  30. Pupyrev, S., Nachmanson, L., Bereg, S., Holroyd, A.E.: Edge routing with ordered bundles. Comput. Geom. 52, 18–33 (2016). https://doi.org/10.1016/j.comgeo.2015.10.005

    Article  MathSciNet  MATH  Google Scholar 

  31. Reiter, R.: A theory of diagnosis from first principles. Artif. Intell. 32(1), 57–95 (1987). https://doi.org/10.1016/0004-3702(87)90062-2

    Article  MathSciNet  MATH  Google Scholar 

  32. Reynolds, A., Barbosa, H., Nötzli, A., Barrett, C.W., Tinelli, C.: CVC4SY for sygus-comp 2019. CoRR, abs/1907.10175 (2019). http://arxiv.org/abs/1907.10175

  33. Sander, G., Vasiliu, A.: The ILOG JViews graph layout module. In: Mutzel, P., Jünger, M., Leipert, S. (eds.) GD 2001. LNCS, vol. 2265, pp. 438–439. Springer, Heidelberg (2002). https://doi.org/10.1007/3-540-45848-4_35

    Chapter  MATH  Google Scholar 

  34. Marques Silva, J.P., Sakallah, K.A.: GRASP: a search algorithm for propositional satisfiability. IEEE Trans. Comput. 48(5), 506–521 (1999). https://doi.org/10.1109/12.769433

    Article  MathSciNet  MATH  Google Scholar 

  35. Solar-Lezama, A.: Program sketching. Int. J. Softw. Tools Technol. Transfer 475–495 (2012). https://doi.org/10.1007/s10009-012-0249-7

  36. Sülflow, A., Fey, G., Bloem, R., Drechsler, R.: Using unsatisfiable cores to debug multiple design errors. In: VLSI (2008). https://doi.org/10.1145/1366110.1366131

  37. Torlak, E., Bodík, R.: Growing solver-aided languages with rosette. In: SPLASH (2013). https://doi.org/10.1145/2509578.2509586

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Nikolaj Bjørner .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2021 Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Bjørner, N., Levatich, M., Lopes, N.P., Rybalchenko, A., Vuppalapati, C. (2021). Supercharging Plant Configurations Using Z3. In: Stuckey, P.J. (eds) Integration of Constraint Programming, Artificial Intelligence, and Operations Research. CPAIOR 2021. Lecture Notes in Computer Science(), vol 12735. Springer, Cham. https://doi.org/10.1007/978-3-030-78230-6_1

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-78230-6_1

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-78229-0

  • Online ISBN: 978-3-030-78230-6

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics