Compositional Reasoning

  • Dimitra Giannakopoulou
  • Kedar S. Namjoshi
  • Corina S. Păsăreanu
Chapter

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.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Abadi, M., Lamport, L.: Composing specifications. Trans. Program. Lang. Syst. 15(1), 73–132 (1993) CrossRefGoogle Scholar
  2. 2.
    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) Google Scholar
  3. 3.
    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) CrossRefGoogle Scholar
  4. 4.
    de Alfaro, L., Henzinger, T.A.: Interface automata. In: Intl. Symp. on Foundations of Software Engineering (FSE), pp. 109–120. ACM, New York (2001) Google Scholar
  5. 5.
    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) MATHGoogle Scholar
  6. 6.
    Alur, R., Henzinger, T.A.: Reactive modules. Form. Methods Syst. Des. 15(1), 7–48 (1999) CrossRefGoogle Scholar
  7. 7.
    Alur, R., Henzinger, T.A., Kupferman, O.: Alternating-time temporal logic. J. ACM 49(5), 672–713 (2002) MathSciNetCrossRefGoogle Scholar
  8. 8.
    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) CrossRefGoogle Scholar
  9. 9.
    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) Google Scholar
  10. 10.
    Angluin, D.: Learning regular sets from queries and counterexamples. Inf. Comput. 75(2), 87–106 (1987) MathSciNetCrossRefGoogle Scholar
  11. 11.
    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) CrossRefGoogle Scholar
  12. 12.
    Beyer, D., Henzinger, T.A., Singh, V.: Algorithms for interface synthesis. In: Damm and Hermanns [77], pp. 4–19 Google Scholar
  13. 13.
    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) CrossRefGoogle Scholar
  14. 14.
    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 MathSciNetCrossRefMATHGoogle Scholar
  15. 15.
    Chaki, S., Strichman, O.: Three optimizations for assume-guarantee reasoning with L*. Form. Methods Syst. Des. 32(3), 267–284 (2008) CrossRefGoogle Scholar
  16. 16.
    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) CrossRefGoogle Scholar
  17. 17.
    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) Google Scholar
  18. 18.
    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) CrossRefGoogle Scholar
  19. 19.
    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) CrossRefGoogle Scholar
  20. 20.
    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) CrossRefGoogle Scholar
  21. 21.
    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) Google Scholar
  22. 22.
    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) MATHGoogle Scholar
  23. 23.
    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) CrossRefGoogle Scholar
  24. 24.
    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) CrossRefGoogle Scholar
  25. 25.
    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) CrossRefGoogle Scholar
  26. 26.
    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) Google Scholar
  27. 27.
    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 MATHGoogle Scholar
  28. 28.
    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) MATHGoogle Scholar
  29. 29.
    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) Google Scholar
  30. 30.
    Dijkstra, E., Scholten, C.: Predicate Calculus and Program Semantics. Springer, Heidelberg (1990) CrossRefGoogle Scholar
  31. 31.
    Dijkstra, E.W.: Guarded commands, nondeterminacy and formal derivation of programs. Commun. ACM 18(8), 453–457 (1975) MathSciNetCrossRefGoogle Scholar
  32. 32.
    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) CrossRefGoogle Scholar
  33. 33.
    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) Google Scholar
  34. 34.
    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) MATHGoogle Scholar
  35. 35.
    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) Google Scholar
  36. 36.
    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) CrossRefGoogle Scholar
  37. 37.
    Flanagan, C., Freund, S.N., Qadeer, S., Seshia, S.A.: Modular verification of multithreaded programs. Theor. Comput. Sci. 338(1–3), 153–183 (2005) MathSciNetCrossRefGoogle Scholar
  38. 38.
    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) CrossRefGoogle Scholar
  39. 39.
    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) Google Scholar
  40. 40.
    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) CrossRefGoogle Scholar
  41. 41.
    Giannakopoulou, D., Pasareanu, C.S., Barringer, H.: Component verification with automatically generated assumptions. Autom. Softw. Eng. 12(3), 297–320 (2005) CrossRefGoogle Scholar
  42. 42.
    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) CrossRefGoogle Scholar
  43. 43.
    Golubitsky, M., Stewart, I.: Nonlinear dynamics of networks: the groupoid formalism. Bull. Am. Math. Soc. 43, 305–364 (2006) MathSciNetCrossRefGoogle Scholar
  44. 44.
    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) CrossRefGoogle Scholar
  45. 45.
    Grumberg, O., Long, D.E.: Model checking and modular verification. Trans. Program. Lang. Syst. 16(3), 843–871 (1994) CrossRefGoogle Scholar
  46. 46.
    Gupta, A., McMillan, K.L., Fu, Z.: Automated assumption generation for compositional verification. Form. Methods Syst. Des. 32(3), 285–301 (2008) CrossRefGoogle Scholar
  47. 47.
    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) Google Scholar
  48. 48.
    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) Google Scholar
  49. 49.
    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 Google Scholar
  50. 50.
    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) CrossRefGoogle Scholar
  51. 51.
    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) Google Scholar
  52. 52.
    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) CrossRefGoogle Scholar
  53. 53.
    Hoare, C.A.R.: An axiomatic basis for computer programming. Commun. ACM 12(10), 576–580 (1969) CrossRefGoogle Scholar
  54. 54.
    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) Google Scholar
  55. 55.
    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) CrossRefGoogle Scholar
  56. 56.
    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) Google Scholar
  57. 57.
    Jones, C.B.: Tentative steps toward a development method for interfering programs. Trans. Program. Lang. Syst. 5(4), 596–619 (1983) CrossRefGoogle Scholar
  58. 58.
    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) Google Scholar
  59. 59.
    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) CrossRefGoogle Scholar
  60. 60.
    Lamport, L.: Proving the correctness of multiprocess programs. Trans. Softw. Eng. 3(2), 125–143 (1977) MathSciNetCrossRefGoogle Scholar
  61. 61.
    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) CrossRefGoogle Scholar
  62. 62.
    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) Google Scholar
  63. 63.
    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) CrossRefGoogle Scholar
  64. 64.
    Magee, J., Kramer, J.: Concurrency: State Models & Java Programs. Wiley, New York (1999) MATHGoogle Scholar
  65. 65.
    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) CrossRefGoogle Scholar
  66. 66.
    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) CrossRefGoogle Scholar
  67. 67.
    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) CrossRefGoogle Scholar
  68. 68.
    Merlin, P., Bochmann, G.V.: On the construction of submodule specifications and communication protocols. Trans. Program. Lang. Syst. 5(1), 1–25 (1983) CrossRefGoogle Scholar
  69. 69.
    Misra, J., Chandy, K.M.: Proofs of networks of processes. Trans. Softw. Eng. 7(4), 417–426 (1981) MathSciNetCrossRefGoogle Scholar
  70. 70.
    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 Google Scholar
  71. 71.
    Nam, W., Madhusudan, P., Alur, R.: Automatic symbolic compositional verification by learning assumptions. Form. Methods Syst. Des. 32(3), 207–234 (2008) CrossRefGoogle Scholar
  72. 72.
    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) CrossRefGoogle Scholar
  73. 73.
    Namjoshi, K.S., Trefler, R.J.: On the completeness of compositional reasoning methods. Trans. Comput. Log. 11(3), 16:1–16:22 (2010) MathSciNetMATHGoogle Scholar
  74. 74.
    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) CrossRefGoogle Scholar
  75. 75.
    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) CrossRefGoogle Scholar
  76. 76.
    Owicki, S.S., Gries, D.: Verifying properties of parallel programs: an axiomatic approach. Commun. ACM 19(5), 279–285 (1976) MathSciNetCrossRefGoogle Scholar
  77. 77.
    Papadimitriou, C.H.: Computational Complexity. Addison-Wesley, Reading (1994) MATHGoogle Scholar
  78. 78.
    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) CrossRefGoogle Scholar
  79. 79.
    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) Google Scholar
  80. 80.
    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) CrossRefGoogle Scholar
  81. 81.
    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) Google Scholar
  82. 82.
    Rivest, R.L., Schapire, R.E.: Inference of finite automata using homing sequences. Inf. Comput. 103(2), 299–347 (1993) MathSciNetCrossRefGoogle Scholar
  83. 83.
    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) MATHGoogle Scholar
  84. 84.
    Scott, D., Strachey, C.: Toward a mathematical semantics for computer languages. Tech. Rep. PRG-6, Oxford Programming Research Group (1971) Google Scholar
  85. 85.
    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) CrossRefGoogle Scholar
  86. 86.
    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) Google Scholar
  87. 87.
    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) Google Scholar

Copyright information

© Springer International Publishing AG, part of Springer Nature 2018

Authors and Affiliations

  • Dimitra Giannakopoulou
    • 1
  • Kedar S. Namjoshi
    • 2
  • Corina S. Păsăreanu
    • 1
  1. 1.NASA Ames Research CenterMoffett FieldUSA
  2. 2.Bell Labs, NokiaMurray HillUSA

Personalised recommendations