CAV 2002: Computer Aided Verification pp 414-427 | Cite as
Synchronous and Bidirectional Component Interfaces
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 DevicePreview
Unable to display preview. Download preview PDF.
References
- 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.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.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.R. Alur and T. A. Henzinger. Reactive modules. Formal Methods in System Design, pages 7–48, 1999.Google Scholar
- 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.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.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.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.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.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.D. L. Dill. Trace Theory for Automatic Hierarchical Verification of Speed-Independent Circuits. MIT Press, 1988.Google Scholar
- 12.C. A. R. Hoare. Communicating Sequential Processes. Prentice-Hall, 1985.Google Scholar
- 13.N. A. Lynch. Distributed Algorithms. Morgan-Kaufmann, 1996.Google Scholar
- 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.Z. Manna and A. Pnueli. The Temporal Logic of Reactive and Concurrent Systems: Specification. Springer-Verlag, New York, 1991.MATHGoogle Scholar
- 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.R. Milner. Communication and Concurrency. Prentice-Hall, 1989.Google Scholar
- 18.J. C. Mitchell. Foundations for Programming Languages. MIT Press, 1996.Google Scholar