Compositional Reasoning for Hardware/Software Co-verification

  • Fei Xie
  • Guowu Yang
  • Xiaoyu Song
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4218)


In this paper, we present and illustrate an approach to compositional reasoning for hardware/software co-verification of embedded systems. The major challenges in compositional reasoning for co-verification include: (1) the hardware/software semantic gaps, (2) lack of common property specification languages for hardware and software, and (3) lack of compositional reasoning rules that are applicable across the hardware/software boundaries. Our approach addresses these challenges by (1) filling the hardware/software semantic gaps via translation of hardware and software into a common formal language, (2) defining a unified property specification language for hardware, software, and entire systems, and (3) enabling application of existing compositional reasoning rules across the hardware/software boundaries based on translation, developing a new rule for compositional reasoning with components that share sub-components, and extending the applicability of these rules via dependency refinement. Our approach has been applied to co-verification of networked sensors. The case studies have shown that our approach is very effective in enabling application of compositional reasoning to co-verification of non-trivial embedded systems.


Model Check Embed System Software Component Formal Semantic Component Property 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. 1.
    Clarke, E.M., Emerson, E.A.: Design and synthesis of synchronization skeletons using branching time temporal logic. In: Proc. of Logic of Programs Workshop (1981)Google Scholar
  2. 2.
    Quielle, J.P., Sifakis, J.: Specification and verification of concurrent systems in CESAR. In: Proc. of Symposium on Programming (1982)Google Scholar
  3. 3.
    Chandy, K.M., Misra, J.: Proofs of networks of processes. IEEE Transaction on Software Engineering 7(4) (1981)Google Scholar
  4. 4.
    Jones, C.B.: Development methods for computer programs including a notion of interference. PhD thesis, Oxford University (1981)Google Scholar
  5. 5.
    Abadi, M., Lamport, L.: Conjoining specifications. TOPLAS 17(3) (1995)Google Scholar
  6. 6.
    Alur, R., Henzinger, T.: Reactive modules. FMSD 15(1) (1999)Google Scholar
  7. 7.
    McMillan, K.L.: A methodology for hardware verification using compositional model checking. Cadence Design Systems Technical Reports (1999)Google Scholar
  8. 8.
    Amla, N., Emerson, E.A., Namjoshi, K.S., Trefler, R.: Assume-guarantee based compositional reasoning for synchronous timing diagrams. In: Margaria, T., Yi, W. (eds.) ETAPS 2001 and TACAS 2001. LNCS, vol. 2031, Springer, Heidelberg (2001)CrossRefGoogle Scholar
  9. 9.
    de Roever, W.P., de Boer, F., Hanneman, U., Hooman, J., Lakhnech, Y., Poel, M., Zwiers, J.: Concurrency Verification: Introduction to Compositional and Non-compositional Proof Methods. Cambridge University Press, Cambridge (2001)Google Scholar
  10. 10.
    Hill, J., Szewczyk, R., Woo, A., Hollar, S., Culler, D.E., Pister, K.S.J.: System architecture directions for networked sensors. In: Proc. of ASPLOS (2000)Google Scholar
  11. 11.
    Mellor, S.J., Balcer, M.J.: Executable UML: A Foundation for Model Driven Architecture. Addison-Wesley, Reading (2002)Google Scholar
  12. 12.
    Namjoshi, K.S., Trefler, R.J.: On the completeness of compositional reasoning. In: Emerson, E.A., Sistla, A.P. (eds.) CAV 2000. LNCS, vol. 1855, Springer, Heidelberg (2000)Google Scholar
  13. 13.
    Kurshan, R.P.: Computer-Aided Verification of Coordinating Processes: The Automata-Theoretic Approach. Princeton University Press, Princeton (1994)Google Scholar
  14. 14.
    Alpern, B., Schneider, F.: Defining liveness. Information Processing Letters 21(4) (1985)Google Scholar
  15. 15.
    Hardin, R.H., Har’El, Z., Kurshan., R.P.: COSPAN. In: Alur, R., Henzinger, T.A. (eds.) CAV 1996. LNCS, vol. 1102, Springer, Heidelberg (1996)Google Scholar
  16. 16.
    Kurshan, R.P.: FormalCheck User Manual. Cadence (1998)Google Scholar
  17. 17.
    Xie, F., Levin, V., Browne, J.C.: Objectcheck: A model checking tool for executable object-oriented software system designs. In: Kutsche, R.-D., Weber, H. (eds.) ETAPS 2002 and FASE 2002. LNCS, vol. 2306, Springer, Heidelberg (2002)Google Scholar
  18. 18.
    Xie, F., Browne, J.C., Kurshan, R.P.: Translation-based compositional reasoning for software systems. In: Araki, K., Gnesi, S., Mandrioli, D. (eds.) FME 2003. LNCS, vol. 2805, Springer, Heidelberg (2003)Google Scholar
  19. 19.
    Xie, F., Song, X., Chung, H., Nandi, R.: Translation-based co-verification. In: Proc. of MEMOCODE (2005)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Fei Xie
    • 1
  • Guowu Yang
    • 1
  • Xiaoyu Song
    • 2
  1. 1.Dept. of Computer SciencePortland State Univ.Portland
  2. 2.Dept. of Electrical & Computer EngineeringPortland State Univ.Portland

Personalised recommendations