Abstract
State Explosion is a fundamental challenge for model checking methods. This term refers to the potentially exponential growth of the state space of a program as a function of the number of its components. Compositional reasoning is a technique which aims to ameliorate the effects of state explosion. In its essence, it replaces reasoning on the global state space of a program with localized reasoning: each component is analyzed separately, based on assumptions about the behavior of the other components. The challenge for a fully automated method is the construction of the right assumptions: they should be strong enough to prove a desired property, while being simple enough for efficient analysis. This chapter describes the ideas underlying compositional reasoning, foundational algorithms for generating assumptions, and applications.
Preview
Unable to display preview. Download preview PDF.
References
Abadi, M., Lamport, L.: Composing specifications. Trans. Program. Lang. Syst. 15(1), 73–132 (1993)
Abadi, M., Merz, S.: An abstract account of composition. In: Wiedermann, J., Hájek, P. (eds.) Intl. Symp. on Mathematical Foundations of Computer Science (MFCS). LNCS, vol. 969, pp. 499–508. Springer, Heidelberg (1995)
Abdulla, P.A., Haziza, F., Holík, L.: All for the price of few. In: Giacobazzi, R., Berdine, J., Mastroeni, I. (eds.) Intl. Conf. on Verification, Model Checking and Abstract Interpretation (VMCAI). LNCS, vol. 7737, pp. 476–495. Springer, Heidelberg (2013)
de Alfaro, L., Henzinger, T.A.: Interface automata. In: Intl. Symp. on Foundations of Software Engineering (FSE), pp. 109–120. ACM, New York (2001)
Alur, R., Cerný, P., Madhusudan, P., Nam, W.: Synthesis of interface specifications for Java classes. In: Palsberg, J., Abadi, M. (eds.) Symp. on Principles of Programming Languages (POPL), pp. 98–109. ACM, New York (2005)
Alur, R., Henzinger, T.A.: Reactive modules. Form. Methods Syst. Des. 15(1), 7–48 (1999)
Alur, R., Henzinger, T.A., Kupferman, O.: Alternating-time temporal logic. J. ACM 49(5), 672–713 (2002)
Alur, R., Henzinger, T.A., Mang, F.Y.C., Qadeer, S., Rajamani, S.K., Tasiran, S.: Mocha: modularity in model checking. In: Hu, A.J., Vardi, M.Y. (eds.) Intl. Conf. on Computer-Aided Verification (CAV), pp. 521–525 (1998)
Amla, N., Emerson, E.A., Namjoshi, K.S., Trefler, R.J.: Abstract patterns of compositional reasoning. In: Amadio, R.M., Lugiez, D. (eds.) Intl. Conf. on Concurrency Theory (CONCUR). LNCS, vol. 2761, pp. 423–438. Springer, Heidelberg (2003)
Angluin, D.: Learning regular sets from queries and counterexamples. Inf. Comput. 75(2), 87–106 (1987)
Aziz, A., Balarin, F., Brayton, R., DiBenedetto, M., Saldanha, A., Sangiovanni-Vincentelli, A.: Supervisory control of finite state machines. In: Wolper, P. (ed.) Intl. Conf. on Computer-Aided Verification (CAV). LNCS, vol. 939, pp. 279–292. Springer, Heidelberg (1995)
Beyer, D., Henzinger, T.A., Singh, V.: Algorithms for interface synthesis. In: Damm and Hermanns [77], pp. 4–19
Bobaru, M.G., Pasareanu, C.S., Giannakopoulou, D.: Automated assume-guarantee reasoning by abstraction refinement. In: Gupta, A., Malik, S. (eds.) Intl. Conf. on Computer-Aided Verification (CAV), vol. 5123, pp. 135–148. Springer, Heidelberg (2008)
Brookes, S.: A semantics for concurrent separation logic. Theor. Comput. Sci. 375(1–3), 227–270 (2007). doi:10.1016/j.tcs.2006.12.034
Chaki, S., Strichman, O.: Three optimizations for assume-guarantee reasoning with L*. Form. Methods Syst. Des. 32(3), 267–284 (2008)
Chen, Y.F., Clarke, E.M., Farzan, A., Tsai, M.H., Tsay, Y.K., Wang, B.Y.: Automated assume-guarantee reasoning through implicit learning. In: Touili, T., Cook, B., Jackson, P. (eds.) Intl. Conf. on Computer-Aided Verification (CAV), vol. 6174, pp. 511–526. Springer, Heidelberg (2010)
Chen, Y.F., Farzan, A., Clarke, E.M., Tsay, Y.K., Wang, B.Y.: Learning minimal separating DFAs for compositional verification. In: Kowalewski, S., Philippou, A. (eds.) Intl. Conf. on Tools and Algorithms for the Construction and Analysis of Systems (TACAS). LNCS, vol. 5505, pp. 31–45. Springer, Heidelberg (2009)
Cheung, S.C., Kramer, J.: Compositional reachability analysis of finite-state distributed systems with user-specified constraints. SIGSOFT Softw. Eng. Notes 20(4), 140–150 (1995)
Cho, H., Hachtel, G.D., Macii, E., Plessier, B., Somenzi, F.: Algorithms for approximate FSM traversal based on state space decomposition. Trans. Comput.-Aided Des. Integr. Circuits Syst. 15(12), 1465–1478 (1996)
Clarke, E.M., Filkorn, T., Jha, S.: Exploiting symmetry in temporal logic model checking. In: Courcoubetis, C. (ed.) Intl. Conf. on Computer-Aided Verification (CAV). LNCS, vol. 697, pp. 450–462. Springer, Heidelberg (1993)
Cleaveland, R., Roscoe, A., Smolka, S.A.: Process algebra and model checking. In: Clarke, E.M., Henzinger, T.A., Veith, H., Bloem, R. (eds.) Handbook of Model Checking. Springer, Heidelberg (2018)
Cobleigh, J.M., Giannakopoulou, D., Pasareanu, C.S.: Learning assumptions for compositional verification. In: Garavel, H., Hatcliff, J. (eds.) Intl. Conf. on Tools and Algorithms for the Construction and Analysis of Systems (TACAS). LNCS, vol. 2619, pp. 331–346. Springer, Heidelberg (2003)
Cohen, A., Namjoshi, K.S.: Local proofs for global safety properties. In: Damm and Hermanns [83], pp. 55–67. Full version in Formal Methods in System Design 34(2) (2009)
Cohen, A., Namjoshi, K.S.: Local proofs for linear-time properties of concurrent programs. In: Gupta, A., Malik, S. (eds.) Intl. Conf. on Computer-Aided Verification (CAV). LNCS, vol. 5123, pp. 149–161. Springer, Heidelberg (2008)
Cohen, A., Namjoshi, K.S., Sa’ar, Y.: A dash of fairness for compositional reasoning. In: Touili, T., Cook, B., Jackson, P. (eds.) Intl. Conf. on Computer-Aided Verification (CAV). LNCS, vol. 6174, pp. 543–557. Springer, Heidelberg (2010)
Cohen, A., Namjoshi, K.S., Sa’ar, Y., Zuck, L.D., Kisyova, K.I.: Parallelizing a symbolic compositional model-checking algorithm. In: Barner, S., Harris, I.G., Kroening, D., Raz, O. (eds.) Intl. Haifa Verification Conference (HVC). LNCS, vol. 6504, pp. 46–59. Springer, Heidelberg (2010)
Cousot, P., Cousot, R.: Invariance proof methods and analysis techniques for parallel programs. In: Biermann, A., Guiho, G., Kodratoff, Y. (eds.) Automatic Program Construction Techniques, pp. 243–271. Macmillan, New York (1984). Chap. 12
Damm, W., Hermanns, H. (eds.): Computer Aided Verification, Proceedings of the 19th International Conference, CAV 2007, Berlin, Germany, July 3–7, 2007. LNCS, vol. 4590. Springer, Heidelberg (2007)
Dams, D., Grumberg, O.: Abstraction and abstraction refinement. In: Clarke, E.M., Henzinger, T.A., Veith, H., Bloem, R. (eds.) Handbook of Model Checking. Springer, Heidelberg (2018)
Dijkstra, E., Scholten, C.: Predicate Calculus and Program Semantics. Springer, Heidelberg (1990)
Dijkstra, E.W.: Guarded commands, nondeterminacy and formal derivation of programs. Commun. ACM 18(8), 453–457 (1975)
Emerson, E.A., Sistla, A.P.: Symmetry and model checking. In: Courcoubetis, C. (ed.) Intl. Conf. on Computer-Aided Verification (CAV). LNCS, vol. 697, pp. 463–478. Springer, Heidelberg (1993)
Farzan, A., Chen, Y.F., Clarke, E.M., Tsay, Y.K., Wang, B.Y.: Extending automated compositional verification to the full class of omega-regular languages. In: Ramakrishnan, C.R., Rehof, J. (eds.) Intl. Conf. on Tools and Algorithms for the Construction and Analysis of Systems (TACAS). LNCS, vol. 4963, pp. 2–17. Springer, Heidelberg (2008)
Farzan, A., Kincaid, Z.: Verification of parameterized concurrent programs by modular reasoning about data and control. In: Field, J., Hicks, M. (eds.) Symp. on Principles of Programming Languages (POPL), pp. 297–308. ACM, New York (2012)
Farzan, A., Kincaid, Z., Podelski, A.: Inductive data flow graphs. In: Giacobazzi, R., Cousot, R. (eds.) Symp. on Principles of Programming Languages (POPL), pp. 129–142. ACM, New York (2013)
Feng, L., Han, T., Kwiatkowska, M.Z., Parker, D.: Learning-based compositional verification for synchronous probabilistic systems. In: Bultan, T., Hsiung, P. (eds.) Intl. Symp. Automated Technology for Verification and Analysis (ATVA). LNCS, vol. 6996, pp. 511–521. Springer, Heidelberg (2011)
Flanagan, C., Freund, S.N., Qadeer, S., Seshia, S.A.: Modular verification of multithreaded programs. Theor. Comput. Sci. 338(1–3), 153–183 (2005)
Flanagan, C., Qadeer, S.: Thread-modular model checking. In: Ball, T., Rajamani, S.K. (eds.) Intl. Symposium on Model Checking of Software (SPIN). LNCS, vol. 2648, pp. 213–224. Springer, Heidelberg (2003)
Garg, P., Madhusudan, P.: Compositionality entails sequentializability. In: Abdulla, P.A., Leino, K.R.M. (eds.) Intl. Conf. on Tools and Algorithms for the Construction and Analysis of Systems (TACAS). LNCS, vol. 6605, pp. 26–40. Springer, Heidelberg (2011)
Giannakopoulou, D., Pasareanu, C.S.: Interface generation and compositional verification in JavaPathfinder. In: Chechik, M., Wirsing, M. (eds.) Intl. Conf. Fundamental Approaches to Software Engineering (FASE). LNCS, vol. 5503, pp. 94–108. Springer, Heidelberg (2009)
Giannakopoulou, D., Pasareanu, C.S., Barringer, H.: Component verification with automatically generated assumptions. Autom. Softw. Eng. 12(3), 297–320 (2005)
Giannakopoulou, D., Rakamaric, Z., Raman, V.: Symbolic learning of component interfaces. In: Miné, A., Schmidt, D. (eds.) Intl. Symp. on Static Analysis (SAS). LNCS, vol. 7460, pp. 248–264. Springer, Heidelberg (2012)
Golubitsky, M., Stewart, I.: Nonlinear dynamics of networks: the groupoid formalism. Bull. Am. Math. Soc. 43, 305–364 (2006)
Graf, S., Steffen, B.: Compositional minimization of finite state systems. In: Clarke, E.M., Kurshan, R.P. (eds.) Intl. Conf. on Computer-Aided Verification (CAV), vol. 531, pp. 186–196. Springer, Heidelberg (1990)
Grumberg, O., Long, D.E.: Model checking and modular verification. Trans. Program. Lang. Syst. 16(3), 843–871 (1994)
Gupta, A., McMillan, K.L., Fu, Z.: Automated assumption generation for compositional verification. Form. Methods Syst. Des. 32(3), 285–301 (2008)
Gupta, A., Popeea, C., Rybalchenko, A.: Predicate abstraction and refinement for verifying multi-threaded programs. In: Ball, T., Sagiv, M. (eds.) Symp. on Principles of Programming Languages (POPL), pp. 331–344. ACM, New York (2011)
Henzinger, T.A., Jhala, R., Majumdar, R.: Permissive interfaces. In: Wermelinger, M., Gall, H.C. (eds.) Intl. Symp. on Foundations of Software Engineering (FSE), pp. 31–40. ACM, New York (2005)
Henzinger, T.A., Liu, X., Qadeer, S., Rajamani, S.K.: Formal specification and verification of a dataflow processor array. In: White and Sentovich [53], pp. 494–499
Henzinger, T.A., Qadeer, S., Rajamani, S.K.: You assume, we guarantee: methodology and case studies. In: Hu, A.J., Vardi, M.Y. (eds.) Intl. Conf. on Computer-Aided Verification (CAV), vol. 1427, pp. 440–451. Springer, Heidelberg (1998)
Henzinger, T.A., Qadeer, S., Rajamani, S.K.: Decomposing refinement proofs using assume-guarantee reasoning. In: Sentovich, E. (ed.) International Conference on Computer Aided Design (ICCAD), pp. 245–252. IEEE, Piscataway (2000)
Henzinger, T.A., Qadeer, S., Rajamani, S.K., Tasiran, S.: An assume-guarantee rule for checking simulation. In: Gopalakrishnan, G., Windley, P.J. (eds.) Formal Methods in Computer Aided Design (FMCAD). LNCS, vol. 1522, pp. 421–432. Springer, Heidelberg (1998)
Hoare, C.A.R.: An axiomatic basis for computer programming. Commun. ACM 12(10), 576–580 (1969)
Howar, F., Giannakopoulou, D., Rakamaric, Z.: Hybrid learning: interface generation through static, dynamic, and symbolic analysis. In: Intl. Symp. on Software Testing and Analysis (ISSTA), pp. 268–279. ACM, New York (2013)
Inverardi, P., Wolf, A.L., Yankelevich, D.: Static checking of system behaviors using derived component assumptions. Trans. Softw. Eng. Methodol. 9(3), 239–272 (2000)
Ip, C.N., Dill, D.L.: Better verification through symmetry. In: Agnew, D., Claesen, L.J.M., Camposano, R. (eds.) CHDL. IFIP Transactions, vol. A-32, pp. 97–111. North-Holland, Amsterdam (1993)
Jones, C.B.: Tentative steps toward a development method for interfering programs. Trans. Program. Lang. Syst. 5(4), 596–619 (1983)
Komuravelli, A., Pasareanu, C.S., Clarke, E.M.: Learning probabilistic systems from tree samples. In: Symp. on Logic in Computer Science, vol. LICS, pp. 441–450. IEEE, Piscataway (2012)
Kurshan, R.: Reducibility in analysis of coordination. In: Varaiya, P., Kurzhanski, A. (eds.) Discrete Event Systems: Models and Applications. Lecture Notes in Control and Information Sciences, vol. 103, pp. 19–39. Springer, Heidelberg (1988)
Lamport, L.: Proving the correctness of multiprocess programs. Trans. Softw. Eng. 3(2), 125–143 (1977)
Lamport, L.: Composition: a way to make proofs harder. In: de Roever, W.P., Langmaack, H., Pnueli, A. (eds.) Compositionality: The Significant Difference (COMPOS ’97). LNCS, vol. 1536, pp. 402–423. Springer, Heidelberg (1998)
Larsen, K., Xinxin, L.: Equation solving using modal transition systems. In: Symp. on Logic in Computer Science, vol. LICS, pp. 108–117. IEEE, Piscataway (1990)
Lin, S.W., André, É., Liu, Y., Sun, J., Dong, J.S.: Learning assumptions for compositional verification of timed systems. Trans. Softw. Eng. 40(2), 137–153 (2014)
Magee, J., Kramer, J.: Concurrency: State Models & Java Programs. Wiley, New York (1999)
Maier, P.: Compositional circular assume-guarantee rules cannot be sound and complete. In: Gordon, A.D. (ed.) Intl. Conf. on Foundations of Software Science and Computational Structures (FoSSaCS). LNCS, vol. 2620, pp. 343–357. Springer, Heidelberg (2003)
McMillan, K.L.: Verification of an implementation of Tomasulo’s algorithm by compositional model checking. In: Hu, A.J., Vardi, M.Y. (eds.) Intl. Conf. on Computer-Aided Verification (CAV), vol. 1427, pp. 110–121. Springer, Heidelberg (1998)
McMillan, K.L.: Circular compositional reasoning about liveness. In: Pierre, L., Kropf, T. (eds.) Correct Hardware Design and Verification Methods (CHARME). LNCS, vol. 1703, pp. 342–345. Springer, Heidelberg (1999)
Merlin, P., Bochmann, G.V.: On the construction of submodule specifications and communication protocols. Trans. Program. Lang. Syst. 5(1), 1–25 (1983)
Misra, J., Chandy, K.M.: Proofs of networks of processes. Trans. Softw. Eng. 7(4), 417–426 (1981)
Moon, I.H., Kukula, J.H., Shiple, T.R., Somenzi, F.: Least fixpoint approximations for reachability analysis. In: White and Sentovich [84], pp. 41–44
Nam, W., Madhusudan, P., Alur, R.: Automatic symbolic compositional verification by learning assumptions. Form. Methods Syst. Des. 32(3), 207–234 (2008)
Namjoshi, K.S.: Symmetry and completeness in the analysis of parameterized systems. In: Cook, B., Podelski, A. (eds.) Intl. Conf. on Verification, Model Checking and Abstract Interpretation (VMCAI). LNCS, vol. 4349, pp. 299–313 (2007)
Namjoshi, K.S., Trefler, R.J.: On the completeness of compositional reasoning methods. Trans. Comput. Log. 11(3), 16:1–16:22 (2010)
Namjoshi, K.S., Trefler, R.J.: Local symmetry and compositional verification. In: Kuncak, V., Rybalchenko, A. (eds.) Intl. Conf. on Verification, Model Checking and Abstract Interpretation (VMCAI). LNCS, vol. 7148, pp. 348–362 (2012)
Namjoshi, K.S., Trefler, R.J.: Uncovering symmetries in irregular process networks. In: Giacobazzi, R., Berdine, J., Mastroeni, I. (eds.) Intl. Conf. on Verification, Model Checking and Abstract Interpretation (VMCAI). LNCS, vol. 7737, pp. 496–514 (2013)
Owicki, S.S., Gries, D.: Verifying properties of parallel programs: an axiomatic approach. Commun. ACM 19(5), 279–285 (1976)
Papadimitriou, C.H.: Computational Complexity. Addison-Wesley, Reading (1994)
Pasareanu, C.S., Giannakopoulou, D., Bobaru, M.G., Cobleigh, J.M., Barringer, H.: Learning to divide and conquer: applying the L* algorithm to automate assume-guarantee reasoning. Form. Methods Syst. Des. 32(3), 175–205 (2008)
Piterman, N., Pnueli, A.: Temporal logic and fair discrete systems. In: Clarke, E.M., Henzinger, T.A., Veith, H., Bloem, R. (eds.) Handbook of Model Checking. Springer, Heidelberg (2018)
Pnueli, A.: In transition from global to modular temporal reasoning about programs. In: Apt, K. (ed.) Logics and Models of Concurrent Systems, pp. 123–144. Springer, Heidelberg (1985)
Pnueli, A., Ruah, S., Zuck, L.: Automatic deductive verification with invisible invariants. In: Margaria, T., Yi, W. (eds.) Intl. Conf. on Tools and Algorithms for the Construction and Analysis of Systems (TACAS). LNCS, vol. 2031, pp. 82–97. Springer, Heidelberg (2001)
Rivest, R.L., Schapire, R.E.: Inference of finite automata using homing sequences. Inf. Comput. 103(2), 299–347 (1993)
de Roever, W.P., de Boer, F.S., Hannemann, U., Hooman, J., Lakhnech, Y., Poel, M., Zwiers, J.: Concurrency Verification: Introduction to Compositional and Noncompositional Methods. Cambridge Tracts in Theoretical Computer Science, vol. 54. Cambridge University Press, Cambridge (2001)
Scott, D., Strachey, C.: Toward a mathematical semantics for computer languages. Tech. Rep. PRG-6, Oxford Programming Research Group (1971)
Singh, R., Giannakopoulou, D., Pasareanu, C.S.: Learning component interfaces with may and must abstractions. In: Touili, T., Cook, B., Jackson, P. (eds.) Intl. Conf. on Computer-Aided Verification (CAV), vol. 6174, pp. 527–542. Springer, Heidelberg (2010)
White, J.K., Sentovich, E. (eds.): Proceedings of the 1999 IEEE/ACM International Conference on Computer-Aided Design, 1999, San Jose, California, USA, November 7–11, 1999. IEEE, Piscataway (1999)
Xiao, H., Sun, J., Liu, Y., Lin, S.W., Sun, C.: Tzuyu: learning stateful typestates. In: Denney, E., Bultan, T., Zeller, A. (eds.) Intl. Conf. on Automated Software Engineering (ASE), pp. 432–442. IEEE, Piscataway (2013)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2018 Springer International Publishing AG, part of Springer Nature
About this chapter
Cite this chapter
Giannakopoulou, D., Namjoshi, K.S., Păsăreanu, C.S. (2018). Compositional Reasoning. In: Clarke, E., Henzinger, T., Veith, H., Bloem, R. (eds) Handbook of Model Checking. Springer, Cham. https://doi.org/10.1007/978-3-319-10575-8_12
Download citation
DOI: https://doi.org/10.1007/978-3-319-10575-8_12
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-10574-1
Online ISBN: 978-3-319-10575-8
eBook Packages: Computer ScienceComputer Science (R0)