CAV 2002: Computer Aided Verification pp 414-427 | Cite as

Synchronous and Bidirectional Component Interfaces

  • Arindam Chakrabarti
  • Luca de Alfaro
  • Thomas A. Henzinger
  • Freddy Y. C. Mang
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2404)

Abstract

We present interface models that describe both the input assumptions of a component, and its output behavior. By enabling us to check that the input assumptions of a component are met in a design, interface models provide a compatibility check for component-based design. When refining a design into an implementation, interface models require that the output behavior of a component satisfies the design specification only when the input assumptions of the specification are satisfied, yielding greater flexibility in the choice of implementations. Technically, our interface models are games between two players, Input and Output; the duality of the players accounts for the dual roles of inputs and outputs in composition and refinement. We present two interface models in detail, one for a simple synchronous form of interaction between components typical in hardware, and the other for more complex synchronous interactions on bidirectional connections. As an example, we specify the interface of a bidirectional bus, with the input assumption that at any time at most one component has write access to the bus. For these interface models, we present algorithms for compatibility and refinement checking, and we describe efficient symbolic implementations.

Keywords

Model Check Transition Relation Output Behavior Graph View Master Device 
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.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    M. Abadi, L. Lamport, and P. Wolper. Realizable and unrealizable concurrent program specifications. In Proc. 16th Int. Colloq. Aut. Lang. Prog., volume 372 of Lect. Notes in Comp. Sci., pages 1–17. Springer-Verlag, 1989.Google Scholar
  2. 2.
    S. Abramsky. Games in the semantics of programming languages. In Proc. of the 11th Amsterdam Colloquium, pages 1–6. ILLC, Dept. of Philosophy, University of Amsterdam, 1997.Google Scholar
  3. 3.
    S. Abramsky, S. Gay, and R. Nagarajan. A type-theoretic approach to deadlock-freedom of asynchronous systems. In TACS’97: Theoretical Aspects of Computer Software. Third International Symposium, 1997.Google Scholar
  4. 4.
    R. Alur and T. A. Henzinger. Reactive modules. Formal Methods in System Design, pages 7–48, 1999.Google Scholar
  5. 5.
    R. Alur, T. A. Henzinger, O. Kupferman, and M. Y. Vardi. Alternating refinement relations. In CONCUR 97: Concurrency Theory, volume 1466 of Lect. Notes in Comp. Sci., pages 163–178. Springer-Verlag, 1998.Google Scholar
  6. 6.
    R. Alur, T. A. Henzinger, F. Y. C. Mang, S. Qadeer, S. K. Rajamani, and S. Tasiran. Mocha: modularity in model checking. In CAV 98: Proc. of 10th Conf. on Computer Aided Verification, volume 1427 of Lect. Notes in Comp. Sci., pages 521–525. Springer-Verlag, 1998.Google Scholar
  7. 7.
    E. Clarke, K. McMillan, S. Campos, and V. Hartonas-Garmhausen. Symbolic model checking. In CAV 96: Proc. of 8th Conf. on Computer Aided Verification, volume 1102 of Lect. Notes in Comp. Sci., pages 419–422. Springer-Verlag, 1996.Google Scholar
  8. 8.
    L. de Alfaro, R. Alur, R. Grosu, T. Henzinger, M. Kang, R. Majumdar, F. Mang, C. Meyer-Kirsch, and B. Y. Wang. Mocha: A model checking tool that exploits design structure. In ICSE 01: Proceedings of the 23rd International Conference on Software Engineering, 2001.Google Scholar
  9. 9.
    L. de Alfaro and T. A. Henzinger. Interface automata. In Proc. of 8th European Software Engineering Conference and 9th ACM SIGSOFT Symposium on Foun-dations of Software Engineering (ESEC/FSE), pages 109–120. ACM Press, 2001.Google Scholar
  10. 10.
    L. de Alfaro and T. A. Henzinger. Interface theories for component-based design. In EMSOFT 01: Proc. of First Int. Workshop on Embedded Software, volume 2211 of Lect. Notes in Comp. Sci., pages 148–165. Springer-Verlag, 2001.Google Scholar
  11. 11.
    D. L. Dill. Trace Theory for Automatic Hierarchical Verification of Speed-Independent Circuits. MIT Press, 1988.Google Scholar
  12. 12.
    C. A. R. Hoare. Communicating Sequential Processes. Prentice-Hall, 1985.Google Scholar
  13. 13.
    N. A. Lynch. Distributed Algorithms. Morgan-Kaufmann, 1996.Google Scholar
  14. 14.
    N. A. Lynch and M. Tuttle. Hierarcical correctness proofs for distributed algorithms. In Proc. of 6th ACM Symp. Princ. of Dist. Comp., pages 137–151, 1987.Google Scholar
  15. 15.
    Z. Manna and A. Pnueli. The Temporal Logic of Reactive and Concurrent Systems: Specification. Springer-Verlag, New York, 1991.MATHGoogle Scholar
  16. 16.
    R. Milner. An algebraic definition of simulation between programs. In Proc. of Second Int. Joint Conf. on Artificial Intelligence, pages 48–489. The British Computer Society, 1971.Google Scholar
  17. 17.
    R. Milner. Communication and Concurrency. Prentice-Hall, 1989.Google Scholar
  18. 18.
    J. C. Mitchell. Foundations for Programming Languages. MIT Press, 1996.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2002

Authors and Affiliations

  • Arindam Chakrabarti
    • 1
  • Luca de Alfaro
    • 2
  • Thomas A. Henzinger
    • 1
  • Freddy Y. C. Mang
    • 3
  1. 1.Department of Electrical Engineering and Computer SciencesUniversity of CaliforniaBerkeleyUSA
  2. 2.Department of Computer EngineeringUniversity of CaliforniaSanta CruzUSA
  3. 3.Advanced Technology GroupSynopsys Inc.USA

Personalised recommendations