Skip to main content
Log in

Contract-based modeling and verification of timed safety requirements within SysML

  • Regular Paper
  • Published:
Software & Systems Modeling Aims and scope Submit manuscript

Abstract

In order to cope with the growing complexity of critical real-time embedded systems, systems engineering has adopted a component-based design technique driven by requirements. Yet, such an approach raises several issues since it does not explicitly prescribe how system requirements can be decomposed on components nor how components contribute to the satisfaction of requirements. The envisioned solution is to design, with respect to each requirement and for each involved component, an abstract specification, tractable at each design step, that models how the component is concerned by the satisfaction of the requirement and that can be further refined toward a correct implementation. In this paper, we consider such specifications in the form of contracts. A contract for a component consists in a pair (assumption, guarantee) where the assumption models an abstract behavior of the component’s environment and the guarantee models an abstract behavior of the component given that the environment behaves according to the assumption. Therefore, contracts are a valuable asset for the correct design of systems, but also for mapping and tracing requirements to components, for tracing the evolution of requirements during design and, most importantly, for compositional verification of requirements. The aim of this paper is to introduce contract-based reasoning for the design of critical real-time systems made of reactive components modeled with UML and/or SysML. We propose an extension of UML and SysML languages with a syntax and semantics for contracts and the refinement relations that they must satisfy. The semantics of components and contracts is formalized by a variant of timed input/output automata on top of which we build a formal contract-based theory. We prove that the contract-based theory is sound and can be applied for a relatively large class of SysML system models. Finally, we show on a case study extracted from the automated transfer vehicle (http://www.esa.int/ATV) that our contract-based theory allows to verify requirement satisfaction for previously intractable models.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13
Fig. 14
Fig. 15

Similar content being viewed by others

Notes

  1. http://www.ibm.com/software/products/en/ratirhapfami.

  2. http://www.polarsys.org/.

  3. http://www.astrium.eads.net/.

  4. http://www.inrialpes.fr/vasy/cadp/.

  5. http://www.atelierb.eu/.

References

  1. Abadi, M., Plotkin, G.D.: A logical view of composition. Theor. Comput. Sci. 114(1), 3–30 (1993)

    Article  MathSciNet  MATH  Google Scholar 

  2. Aboussoror, E., Ober, I., Ober, I.: Seeing errors: model driven simulation trace visualization. In: France, R., Kazmeier, J., Breu, R., Atkinson, C. (eds.) Model Driven Engineering Languages and Systems. Lecture Notes in Computer Science, vol. 7590, pp. 480–496. Springer, Berlin (2012)

  3. Alur, R., Dill, D.L.: A theory of timed automata. Theor. Comput. Sci. 126(2), 183–235 (1994)

    Article  MathSciNet  MATH  Google Scholar 

  4. André, P., Gilles, A., Messabihi, M.: Vérification de contrats logiciels à l’aide de transformations de modèles. In: 7èmes journées sur l’Ingénierie Dirigée par les Modèles (IDM) (2011)

  5. Arnold, A., Boyer, B., Legay, A.: Contracts and behavioral patterns for SoS: the EU IP DANSE approach. In: Larsen, K.G., Legay, A., Nyman, U. (eds.) AiSoS, EPTCS, vol. 133, pp. 47–66 (2013)

  6. Basu, A., Bozga, M., Sifakis, J.: Modeling heterogeneous real-time components in BIP. In: SEFM’06, pp. 3–12 (2006)

  7. Bauer, S.S., David, A., Hennicker, R., Larsen, K.G., Legay, A., Nyman, U., Wasowski, A.: Moving from specifications to contracts in component-based design. In: de Lara, J., Zisman, A. (eds.) FASE, Lecture Notes in Computer Science, vol. 7212, pp. 43–58. Springer (2012)

  8. Bauer, S.S., Hennicker, R., Legay, A.: Component interfaces with contracts on ports. In: Pasareanu, C.S., Salaün, G. (eds.) Formal Aspects of Component Software, Lecture Notes in Computer Science, vol. 7683, pp. 19–35. Springer, Berlin (2013)

  9. Benvenuti, L., Ferrari, A., Mangeruca, L., Mazzi, E., Passerone, R., Sofronis, C.: A contract-based formalism for the specification of heterogeneous systems. In: FDL’08. Forum on, pp. 142–147. IEEE (2008)

  10. Beugnard, A., Jézéquel, J.M., Plouzeau, N., Watkins, D.: Making components contract aware. Computer 32(7), 38–45 (1999)

    Article  Google Scholar 

  11. Bobaru, M.G., Pasareanu, C.S., Giannakopoulou, D.: Automated assume-guarantee reasoning by abstraction refinement. In: Gupta, A., Malik, S. (eds.) CAV, Lecture Notes in Computer Science, vol. 5123, pp. 135–148. Springer (2008)

  12. Bornot, S., Sifakis, J.: An algebraic framework for urgency. Inf. Comput. 163(1), 172–202 (2000)

    Article  MathSciNet  MATH  Google Scholar 

  13. Bourke, T., David, A., Larsen, K.G., Legay, A., Lime, D., Nyman, U., Wasowski, A.: New results on timed specifications. In: Mossakowski, T., Kreowski, H.J. (eds.) WADT, Lecture Notes in Computer Science, vol. 7137, pp. 175–192. Springer (2010)

  14. Bozga, M., Graf, S., Ober, I., Ober, I., Sifakis, J.: The IF toolset. In: Bernardo, M., Corradini, F. (eds.) Formal Methods for the Design of Real-Time Systems. Lecture Notes in Computer Science, vol. 3185, pp. 237–267. Springer, Berlin (2004)

  15. Chen, T., Chilton, C., Jonsson, B., Kwiatkowska, M.Z.: A Compositional specification theory for component behaviours. In: Seidl, H. (ed.) ESOP, Lecture Notes in Computer Science, vol. 7211, pp. 148–168. Springer (2012)

  16. Cheung, S.C., Kramer, J.: Checking safety properties using compositional reachability analysis. ACM Trans. Softw. Eng. Methodol. 8(1), 49–78 (1999)

    Article  Google Scholar 

  17. Chilton, C., Jonsson, B., Kwiatkowska, M.Z.: Assume-guarantee reasoning for safe component behaviours. In: Pasareanu, C.S., Salaün, G. (eds.) Formal Aspects of Component Software, Lecture Notes in Computer Science, vol. 7683, pp. 92–109. Springer, Berlin (2013)

  18. Chilton, C., Kwiatkowska, M.Z., Wang, X.: Revisiting Timed specification theories: a linear-time perspective. In: Jurdzinski, M., Nickovic, D. (eds.) FORMATS, Lecture Notes in Computer Science, vol. 7595, pp. 75–90. Springer (2012)

  19. Cimatti, A., Dorigatti, M., Tonetta, S.: OCRA: a tool for checking the refinement of temporal contracts. In: Denney, E., Bultan, T., Zeller, A. (eds.) 2013 28th IEEE/ACM International Conference on Automated Software Engineering, ASE 2013, Silicon Valley, CA, USA, November 11–15, 2013, pp. 702–705. IEEE (2013)

  20. Cimatti, A., Tonetta, S.: A property-based proof system for contract-based design. In: Cortellessa, V., Muccini, H., Demirörs, O. (eds.) 38th Euromicro Conference on Software Engineering and Advanced Applications, SEAA 2012, Cesme, Izmir, Turkey, September 5–8, 2012, pp. 21–28. IEEE Computer Society (2012)

  21. Cimatti, A., Tonetta, S.: Contracts-refinement proof system for component-based embedded systems. Sci. Comput. Progr. 97, 333–348 (2015)

    Article  Google Scholar 

  22. Clarke, E., Grumberg, O., Jha, S., Lu, Y., Veith, H.: Counterexample-guided abstraction refinement. In: Emerson, E., Sistla, A. (eds.) Computer Aided Verification. Lecture Notes in Computer Science, vol. 1855, pp. 154–169. Springer, Berlin (2000)

  23. Clarke, E.M., Long, D.E., McMillan, K.L.: Compositional model checking. In: LICS, pp. 353–362. IEEE Computer Society (1989)

  24. Combemale, B., Gonnord, L., Rusu, V.: A generic tool for tracing executions back to a DSML’s operational semantics. In: France, R.B., Küster, J.M., Bordbar, B., Paige R.F. (eds.) ECMFA, Lecture Notes in Computer Science, vol. 6698, pp. 35–51. Springer (2011)

  25. Conquet, E., Dormoy, F.X., Dragomir, I., Graf, S., Lesens, D., Nienaltowski, P., Ober, I.: Formal model driven engineering for space onboard software. In: Proceedings of Embedded Real Time Software and Systems (ERTS2), Toulouse. SAE (2012)

  26. Damm, W., Hungar, H., Josko, B., Peikenkamp, T., Stierand, I.: Using contract-based component specifications for virtual integration testing and architecture design. In: Design, Automation Test in Europe Conference Exhibition (DATE), 2011, pp. 1–6 (2011). doi:10.1109/DATE.2011.5763167

  27. David, A., Larsen, K.G., Legay, A., Møller, M.H., Nyman, U., Ravn, A.P., Skou, A., Wasowski, A.: Compositional verification of real-time systems using ECDAR. STTT 14(6), 703–720 (2012)

    Article  Google Scholar 

  28. David, A., Larsen, K.G., Legay, A., Nyman, U., Wasowski, A.: Methodologies for specification of real-time systems using timed I/O automata. In: de Boer, F.S., Bonsangue, M.M., Hallerstede, S., Leuschel, M. (eds.) FMCO, Lecture Notes in Computer Science, vol. 6286, pp. 290–310. Springer (2009)

  29. David, A., Larsen, K.G., Legay, A., Nyman, U., Wasowski, A.: ECDAR: an environment for compositional Design and analysis of real time systems. In: Proceedings of the 8th International Conference on Automated Technology for Verification and Analysis. ATVA’10, pp. 365–370. Springer, Berlin (2010)

  30. David, A., Larsen, K.G., Legay, A., Nyman, U., Wasowski, A.: Timed I/O automata: a complete specification theory for real-time systems. In: Johansson, K.H., Yi, W. (eds.) HSCC, pp. 91–100. ACM (2010)

  31. de Alfaro, L., Henzinger, T.: Interface automata. In: Proceedings of the Ninth Annual Symposium on Foundations of Software Engineering (FSE), ACM, pp. 109–120. Press (2001)

  32. de Alfaro, L., Henzinger, T.: Interface theories for component-based design. In: Henzinger, T., Kirsch, C. (eds.) Embedded Software. Lecture Notes in Computer Science, vol. 2211, pp. 148–165. Springer, Berlin (2001)

  33. de Alfaro, L., Henzinger, T., Stoelinga, M.: Timed interfaces. In: Sangiovanni-Vincentelli, A., Sifakis, J. (eds.) Embedded Software. Lecture Notes in Computer Science, vol. 2491, pp. 108–122. Springer, Berlin (2002)

  34. Dragomir, I., Ober, I., Lesens, D.: A case study in formal system engineering with SysML. In: Engineering of Complex Computer Systems (ICECCS), 2012 17th International Conference on, pp. 189–198 (2012)

  35. Dragomir, I., Ober, I., Percebois, C.: Integrating Verifiable Assume/Guarantee Contracts in UML/SysML. Tech. Rep., IRIT (2013). http://www.irit.fr/Iulian.Ober/docs/TR-Syntax.pdf

  36. Dragomir, I., Ober, I., Percebois, C.: Safety Contracts for Timed Reactive Components in SysML. Tech. Rep., IRIT (2013). http://www.irit.fr/Iulian.Ober/docs/TR-Contracts.pdf

  37. Gacek, A., Katis, A., Whalen, M.W., Cofer, D.: Hierarchical Circular Compositional Reasoning. Tech. Rep. 2014-1, University of Minnesota Software Engineering Center, 200 Union St., Minneapolis, MN 55455 (2014)

  38. Giannakopoulou, D., Pasareanu, C.S., Barringer, H.: Assumption generation for software component verification. In: Automated Software Engineering, 2002. Proceedings. ASE 2002. 17th IEEE International Conference on, pp. 3–12 (2002)

  39. Graf, S., Quinton, S.: Contracts for BIP: hierarchical interaction models for compositional verification. In: Derrick, J., Vain, J. (eds.) FORTE, Lecture Notes in Computer Science, vol. 4574, pp. 1–18. Springer (2007)

  40. Grumberg, O., Long, D.E.: Model checking and modular verification. In: CONCUR, LNCS, vol. 527, pp. 250–265. Springer (1991)

  41. Hafaiedh, I.B., Graf, S., Quinton, S.: Reasoning about safety and progress using contracts. In: Dong, J.S., Zhu H. (eds.) ICFEM, Lecture Notes in Computer Science, vol. 6447, pp. 436–451. Springer (2010)

  42. Kaynar, D.K., Lynch, N., Segala, R., Vaandrager, F.: The Theory of Timed I/O Automata, 2nd edn. Morgan and Claypool Publishers, San Rafael (2010)

    MATH  Google Scholar 

  43. Knapp, A., Merz, S., Rauh, C.: Model checking timed UML state machines and collaborations. In: Damm, W., Olderog, E.R. (eds.) Formal Techniques in Real-Time and Fault-Tolerant Systems. Lecture Notes in Computer Science, vol. 2469, pp. 395–414. Springer, Berlin (2002)

  44. Larsen, K., Nyman, U., Wasowski, A.: Interface input/output automata. In: Misra, J., Nipkow, T., Sekerinski, E. (eds.) FM 2006: Formal Methods. Lecture Notes in Computer Science, vol. 4085, pp. 82–97. Springer, Berlin (2006)

  45. Messabihi, M., André, P., Attiogbé, C.: Multilevel contracts for trusted components. In: International Workshop on Component and Service Interoperability, EPTCS, vol. 37, pp. 71–85 (2010)

  46. Mikk, E., Lakhnechi, Y., Siegel, M.: Hierarchical automata as model for statecharts. In: Shyamasundar, R., Ueda, K. (eds.) Advances in Computing Science—ASIAN’97. Lecture Notes in Computer Science, vol. 1345, pp. 181–196. Springer, Berlin (1997)

  47. Murugesan, A., Whalen, M.W., Rayadurgam, S., Heimdahl, M.P.: Compositional verification of a medical device system. Ada Lett. 33(3), 51–64 (2013)

    Article  Google Scholar 

  48. Ober, I., Dragomir, I.: OMEGA2: a new version of the profile and the tools. In: Engineering of Complex Computer Systems (ICECCS), 2010 15th IEEE International Conference on, pp. 373–378. IEEE (2010)

  49. Ober, I., Dragomir, I.: Unambiguous UML composite structures: the OMEGA2 experience. In: Cerná, I., Gyimóthy, T., Hromkovic, J., Jeffery, K.G., Královic, R., Vukolic, M., Wolf, S. (eds.) SOFSEM, Lecture Notes in Computer Science, vol. 6543, pp. 418–430. Springer (2011)

  50. Ober, I., Graf, S., Ober, I.: Validating timed UML models by simulation and verification. STTT 8(2), 128–145 (2006)

    Article  Google Scholar 

  51. Ober, I., Ober, I., Dragomir, I., Aboussoror, E.: UML/SysML semantic tunings. Innov. Syst. Softw. Eng. 7(4), 257–264 (2011)

    Article  Google Scholar 

  52. Object Management Group: Systems Modelling Language (SysML) v1.1 (2008). http://www.omg.org/spec/SysML/1.1/

  53. Object Management Group: Unified Modelling Language (UML) v2.2 (2009). http://www.omg.org/UML/2.2/

  54. Object Management Group: Object Constraint Language (OCL) v2.2 (2010). http://www.omg.org/spec/OCL/2.2/

  55. Object Management Group: UML Profile for MARTE: Modeling and Analysis of Real-Time Embedded Systems v1.1 (2011). http://www.omg.org/spec/MARTE/

  56. Object Management Group: Semantics of a Foundational Subset For Executable UML Models (fUML) v1.1 (2013). http://www.omg.org/spec/FUML/1.1/

  57. Ouaknine, J., Worrell, J.: On the language inclusion problem for timed automata: closing a decidability gap. In: Logic in Computer Science, 2004. Proceedings of the 19th Annual IEEE Symposium on, pp. 54–63 (2004). doi:10.1109/LICS.2004.1319600

  58. Parnas, D., Weiss, D.: Active design reviews: principles and practices. In: ICSE’85. IEEE Computer Society (1985)

  59. Payne, R., Fitzgerald, J.: Contract-Based Interface Specification Language for Functional and Non-Functional Properties. Tech. Rep., Newcastle University (2011). http://www.ncl.ac.uk/computing/research/publication/176971

  60. Peled, D.: Software Reliability Methods. Texts in Computer Science. Springer, Berlin (2001)

    Book  Google Scholar 

  61. Quinton, S.: Design, vérification et implémentation de systèmes à composants. Ph.D. thesis, Université de Grenoble (2011)

  62. Quinton, S., Graf, S.: Contract-based verification of hierarchical systems of components. In: SEFM’08, pp. 377–381 (2008)

  63. SAE: Architecture Analysis and Design Language (AADL). Document No. AS5506/1 (2004). http://www.sae.org/technical/standards/AS5506/1

  64. SPEEDS: D 2.5.4: Contract Specification Language (2008). http://speeds.eu.com/downloads/D_2_5_4_RE_Contract_Specification_Language.pdf

  65. Wang, F.: Symbolic simulation-checking of dense-time automata. In: Raskin, J.F., Thiagarajan, P. (eds.) Formal Modeling and Analysis of Timed Systems. Lecture Notes in Computer Science, vol. 4763, pp. 352–368. Springer, Berlin (2007)

  66. Wang, T., Sun, J., Liu, Y., Wang, X., Li, S.: Are timed automata bad for a specification language? Language inclusion checking for timed automata. In: Ábrahám, E., Havelund, K. (eds.) Tools and Algorithms for the Construction and Analysis of Systems. Lecture Notes in Computer Science, vol. 8413, pp. 310–325. Springer, Berlin (2014)

  67. Weis, T., Becker, C., Geihs, K., Plouzeau, N.: A UML meta-model for contract aware components. In: 4th International Conference on The Unified Modeling Language, Modeling Languages, Concepts, and Tools (UML) 2001, pp. 442–456. Springer (2001)

  68. Whalen, M.W., Gacek, A., Cofer, D., Murugesan, A., Heimdahl, M.P., Rayadurgam, S.: Your “what” is my “how”: iteration and hierarchy in system design. IEEE Softw. 30(2), 54–60 (2013)

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Iulia Dragomir.

Additional information

Communicated by Dr. Gabor Karsai.

Appendices

Appendix 1: OCL formalization of the well-formedness set of rules for contracts in UML/SysML

In this appendix, we discuss the OCL formalization of the well-formedness rules presented in Sect. 3.3.

Listing 1 presents the OCL code corresponding to Rules 1 and 2. For their formalization, we have defined two helper functions isConjugated and isIdenticalTo for the verification of conjugated, respectively, corresponding, ports. The formalization of Rule 1 consists in verifying that for each port of one type there is at least one port of the other matching the criteria. In order to avoid possible broadcast, we verify that the assumption and guarantee have the same number of ports. The formalization of Rule 2 summarizes to iterating the set of ports of the guarantee and verifying that for each port there is one and only one correspondent in the definition of the component.

Rule 3 ensures the uniqueness of a dominance relation in a given context. Indeed, if a component uses a contract for which a correct refinement is provided based on its subcomponents, there is no need to define a second refinement for the same contract and the same components. Listing 2 provides the OCL formalization of this rule: for each component we compute the set of contractUse relations and we verify that the set does not include two or more relations pointing to the same requirement.

Finally, Listing 3 describes the completeness Rule 4: within the set of conformance relations defined in a model, there is one and only one relation having as target the current SafetyProperty.

figure d
figure e
figure f

Appendix 2: SysML-TIOA mapping example

The TIOA corresponding to the component from Fig. 8b is the tuple \((X, Clk, Q, \theta , I, O, V, H, D, \mathcal {T})\) defined as follows:

  • \(X=\{ location ,queue \}\) only contains the predefined variables for the state machine location and for the input queue. The domains of these are as follows:

    • \(Dom_{location} = \{ Idle, EjectCard, WaitForRemoval, RemoveCard, WaitForAck \}\)

    • \(Dom_{queue} = I^*\), i.e., the set of finite sequences of elements of I (the input actions, defined below). The concatenation of two sequences a and b of \(I^*\) is denoted by [ab].

  • \(Clk = \{ t \}\) contains the Timer t.

  • \(Q = Dom_{location} \times Dom_{queue} \times \mathbb {R}\) is the set of possible valuations of the variables (location, queue, t) listed above. For a triple \(q=(\lambda ,\rho ,\delta ) \in Q\), for simplicity, we denote \(\lambda \) as q.location, \(\rho \) as q.queue and \(\delta \) as q.t.

  • \(\theta = (Idle,\emptyset ,0)\) is the initial state, where \(\emptyset \) denotes the empty sequence of signals from I.

  • \(I = \{retrieveCard, ok, nok\}\)

  • \(O = \{cardInserted, ejectCard, cardRemoved\}\)

  • \(V = \emptyset \)

  • \(H=\{ \downarrow retrieveCard, \downarrow ok \}\) is the set of internal actions corresponding to the consumption of the input signals from the queue. In other contexts, there may be additional internal actions corresponding to transitions without any visible activity, however this is not the case for the state machine in Fig. 8b.

  • \(D = Inp \cup (\cup _{loc \in Dom_{location}} D_{loc})\) where

    • Inp represents the input transitions, defined as follows (remember that the TIOA is input-complete): \(Inp = \{ q \xrightarrow {i} q' | i \in I \wedge q'.location = q.location \wedge q'.t = q.t \wedge q'.queue = [q.queue;i] \}\)

    • \(D_{loc}\) represents the discrete TIO transitions corresponding to the state machine transitions leaving state loc in Fig. 8(b):

      • \(D_{Idle} = \{ q \xrightarrow {!cardInserted} q') | q.location = Idle \wedge q'.location = EjectCard \wedge q.queue=q'.queue \wedge q.t=q'.t \} \)

      • \(D_{EjectCard} = \{ q \xrightarrow {!ejectCard} q' | q.location = EjectCard \wedge q'.location = WaitForRemoval \wedge q.queue=q'.queue \wedge q.t=q'.t \} \)

      • \(D_{WaitForRemoval} = \{ q \xrightarrow {\downarrow retrieveCard} q' | q.location = WaitForRemoval \wedge q'.location = RemoveCard \wedge q.queue=[retrieveCard; q'.queue] \wedge q'.t=0 \} \)

      • \(D_{RemoveCard} = \{ q \xrightarrow {!cardRemoved} q' | q.location = RemoveCard \wedge q'.location = WaitForAck \wedge q.queue=q'.queue \wedge q.t=q'.t \} \)

      • \(D_{WaitForAck} = \{ q \xrightarrow {\downarrow ok} q' | q.location = WaitForAck \wedge q'.location = Idle \wedge q.queue=[ok ; q'.queue] \wedge q.t=q'.t \} \)

  • \(\mathcal {T} = \cup _{loc \in Dom_{location}} \mathcal {T}_{loc}\) where \(\mathcal {T}_{loc}\) represents the trajectories starting in states q with \(loc=q.location\). They are defined as follows:

    • \(\mathcal {T}_{Idle} = \{ \tau : [0,0] \rightarrow Q | \tau (0) = q, \forall q \in Q \, \text {with} \, q.location=Idle \} \) (i.e., only point trajectories are allowed since the outgoing transition is eager and has no input)

    • \(\mathcal {T}_{EjectCard} = \{ \tau : I \rightarrow Q \, | \, I \, \text {is any interval of form} \, [0,x] \, \text {or} \, [0,\infty ) \wedge \forall y \in I.\ (\tau (y)(location) = EjectCard \wedge \tau (y)(queue) = \tau (0)(queue) \wedge \tau (y)(t) = y + \tau (0)(t)) \} \) (i.e., trajectories may go to infinity, and only change t with derivative 1)

    • \(\mathcal {T}_{WaitForRemoval} = \mathcal {T}_{WaitForRemoval}^{Pres} \cup \mathcal {T}_{WaitForRemoval}^{Abs}\) where:

      • \(\mathcal {T}_{WaitForRemoval}^{Pres}\) are (point) trajectories from states in which the signal retrieveCard is present in front of the queue: \( \mathcal {T}_{WaitForRemoval}^{Pres} = \{ \tau : [0,0] \rightarrow Q | \tau (0) = q, \forall q \in Q \, \text {with} \, q.location=WaitForRemoval \ \wedge \ \exists w \, \text {such that } q.queue = [retrieveCard;w] \} \)

      • \(\mathcal {T}_{WaitForRemoval}^{Abs}\) are trajectories (to infinity) from states in which the signal retrieveCard is not in front of the queue: \( \mathcal {T}_{WaitForRemoval}^{Abs} = \{ \tau : I \rightarrow Q \, | \, I \, \text {is any interval of form} \, [0,x] \, \text {or} \, [0,\infty ) \wedge \forall y \in I.\ (\tau (y)(location) = WaitForRemoval \, \wedge \, \tau (y)(queue) = \tau (0)(queue) \, \wedge \, \tau (y)(t) = y + \tau (0)(t)\ \wedge \, \not \exists w \, \text {such that} \, q.queue = [retrieveCard;w]) \} \)

    • \(\mathcal {T}_{RemoveCard} = \{ \tau : [0,x] \rightarrow Q | x \in [0,5-\tau (0)(t)] \wedge \forall y \in [0,x].\ (\tau (y)(location) = RemoveCard \wedge \tau (y)(queue) = \tau (0)(queue) \wedge \tau (y)(t) = y + \tau (0)(t)) \} \) (i.e., trajectories may go up to \(t=5\) and only change t with derivative 1)

    • \(\mathcal {T}_{WaitForAck} = \mathcal {T}_{WaitForAck}^{Pres} \cup \mathcal {T}_{WaitForAck}^{Abs}\) where:

      • \(\mathcal {T}_{WaitForAck}^{Pres}\) are (point) trajectories from states in which the signal ok is present in front of the queue: \( \mathcal {T}_{WaitForAck}^{Pres} = \{ \tau : [0,0] \rightarrow Q | \tau (0) = q, \forall q \in Q \, \text {with} \, q.location=WaitForAck\ \wedge \ \exists w \, \text {such that} \, q.queue = [ok;w]\} \)

      • \(\mathcal {T}_{WaitForAck}^{Abs}\) are trajectories (to infinity) from states in which the signal ok is not in front of the queue: \( \mathcal {T}_{WaitForAck}^{Abs} = \{ \tau : I \rightarrow Q \, | \, I \, \text {is any interval of form} \, [0,x] \, \text {or} \, [0,\infty ) \wedge \forall y \in I. (\tau (y)(location) = WaitForAck \, \wedge \, \tau (y)(queue) = \tau (0)(queue) \, \wedge \, \tau (y)(t) = y + \tau (0)(t)\ \wedge \, \not \exists w \, \text {such that } q.queue = [ok;w]) \} \)

Appendix 3: Proofs for the formal contract-based framework

Theorem 2 \((\mathcal {A}, \parallel )\) is a commutative monoid.

Proof

Let \(\mathcal {A}_1\), \(\mathcal {A}_2\) and \(\mathcal {A}_3\) be three timed input/output automata.

  1. 1.

    Commutativity: \(\mathcal {A}_1 \parallel \mathcal {A}_2\) = \(\mathcal {A}_2 \parallel \mathcal {A}_1\) is true since only set operations are used by the composition operator.

  2. 2.

    Associativity: By applying the composition operator we obtain \((\mathcal {A}_1 \parallel \mathcal {A}_2) \parallel \mathcal {A}_3 = \mathcal {A}_1 \parallel (\mathcal {A}_2 \parallel \mathcal {A}_3) = (X, Clk, Q, \theta , I, O, V, H, D, \mathcal {T})\) where:

    • \(X = X_{\mathcal {A}_1} \cup X_{\mathcal {A}_2} \cup X_{\mathcal {A}_3}\).

    • \(Clk = Clk_{\mathcal {A}_1} \cup Clk_{\mathcal {A}_2} \cup Clk_{\mathcal {A}_3}\).

    • \(Q = \lbrace \mathrm {x}_{\mathcal {A}_1} \cup \mathrm {x}_{\mathcal {A}_2} \cup \mathrm {x}_{\mathcal {A}_3} \vert \mathrm {x}_{\mathcal {A}_1} \in Q_{\mathcal {A}_1}, \mathrm {x}_{\mathcal {A}_2} \in Q_{\mathcal {A}_2} \text { and } \mathrm {x}_{\mathcal {A}_3} \in Q_{\mathcal {A}_3} \rbrace \).

    • \(\theta = \theta _{\mathcal {A}_1} \cup \theta _{\mathcal {A}_2} \cup \theta _{\mathcal {A}_3}\).

    • \(I = (I_{\mathcal {A}_1} \setminus (O_{\mathcal {A}_2} \cup O_{\mathcal {A}_3})) \cup (I_{\mathcal {A}_2} \setminus (O_{\mathcal {A}_1} \cup O_{\mathcal {A}_3})) \cup (I_{\mathcal {A}_3} \setminus (O_{\mathcal {A}_1} \cup O_{\mathcal {A}_2}))\).

    • \(O = (O_{\mathcal {A}_1} \setminus (I_{\mathcal {A}_2} \cup I_{\mathcal {A}_3})) \cup (O_{\mathcal {A}_2} \setminus (I_{\mathcal {A}_1} \cup I_{\mathcal {A}_3})) \cup (O_{\mathcal {A}_3} \setminus (I_{\mathcal {A}_1} \cup I_{\mathcal {A}_3}))\).

    • \(V = V_{\mathcal {A}_1} \cup V_{\mathcal {A}_2} \cup V_{\mathcal {A}_3} \cup (O_{\mathcal {A}_1} \cap (I_{\mathcal {A}_2} \cup I_{\mathcal {A}_3})) \cup (O_{\mathcal {A}_2} \cap (I_{\mathcal {A}_1} \cup I_{\mathcal {A}_3})) \cup (O_{\mathcal {A}_3} \cap (I_{\mathcal {A}_1} \cup I_{\mathcal {A}_2}))\).

    • \(H = H_{\mathcal {A}_1} \cup H_{\mathcal {A}_2} \cup H_{\mathcal {A}_3}\).

    • D is the set of discrete transitions where for each \(\mathrm {x} = \mathrm {x}_{\mathcal {A}_1} \cup \mathrm {x}_{\mathcal {A}_2} \cup \mathrm {x}_{\mathcal {A}_3}\) and \(\mathrm {x}' = \mathrm {x}'_{\mathcal {A}_1} \cup \mathrm {x}'_{\mathcal {A}_2} \cup \mathrm {x}'_{\mathcal {A}_3} \in Q\) and each \(a \in A\), \(\mathrm {x} \xrightarrow {a} \mathrm {x}'\) if and only if for \(i \in \lbrace 1, 2, 3 \rbrace \), either

      1. (a)

        \(a \in A_i\) and \(\mathrm {x}_i \xrightarrow {a} \mathrm {x}'_i\), or

      2. (b)

        \(a \not \in A_i\) and \(\mathrm {x}_i = \mathrm {x}'_i\).

    • \(\mathcal {T} \subseteq trajs(Q)\) is given by \(\tau \in \mathcal {T} \Leftrightarrow \tau \lceil X_i \in \mathcal {T}_i\), \(i \in \lbrace 1, 2, 3 \rbrace \).

  3. 3.

    The identity element is the empty timed input/output automaton: it has no internal variables, it does not perform any actions and can let time elapse to infinity. \(\square \)

Theorem 5 Given a component Env and a set \(\mathcal {K}\) of components for which Env is an environment, the refinement under context \(\sqsubseteq _{Env}\) is a preorder over \(\mathcal {K}\).

Proof

  1. 1.

    Reflexivity: \(K \sqsubseteq _{Env} K \overset{\Delta }{\Leftrightarrow } K \parallel Env \parallel Env' \preceq K \parallel Env \parallel Env'\) which is true from the definition of the conformance relation. \(K'\) is not represented since it is the identity element of the composition operator.

  2. 2.

    Transitivity: \(K_1 \sqsubseteq _{Env} K_2 \wedge K_2 \sqsubseteq _{Env} K_3 \implies K_1 \sqsubseteq _{Env} K_3\).

$$\begin{aligned} K_1 \sqsubseteq _{Env} K_2 \overset{\Delta }{\Leftrightarrow } K_1 \parallel Env \parallel Env' \preceq K_2 \parallel Env \parallel K'_2 \parallel Env'\, (1) \end{aligned}$$

We write the automaton \(Env' = Env'_1 \parallel Env'_2\) where :

  • \(Env'_1 = (\emptyset , \emptyset , \lbrace \phi \rbrace , \phi , ((O_{K_1} \cap O_{K_2}) \setminus I_{E}), ((I_{K_1} \cap I_{K_2}) \setminus O_{E}), \emptyset , \emptyset , D_{Env'_1}, \mathcal {T}_{Env'_1})\),

  • \(Env'_2 = (\emptyset , \emptyset , \lbrace \phi \rbrace , \phi , ((O_{K_1} \setminus O_{K_2}) \setminus I_{E}), ((I_{K_1} \setminus I_{K_2}) \setminus O_{E}), \emptyset , \emptyset , D_{Env'_2}, \mathcal {T}_{Env'_2})\).

Remark that the sets of input and output actions are pairwise disjoint for \(Env'_1\) and \(Env'_2\).

We write the automaton \(K'_2 = K''_2 \parallel Env'_3\) where:

  • \(K''_2 = (\emptyset , \emptyset , \lbrace \phi \rbrace , \phi , (I_{K_1} \setminus I_{K_2}), (O_{K_1} \setminus O_{K_2}), (V_{K_1} \setminus E_{K_2}), \emptyset , D_{K''_2}, \mathcal {T}_{K''_2}\),

  • \(Env'_3 = (\emptyset , \emptyset , \lbrace \phi \rbrace , \phi , (V_{K_1} \cap O_{K_2}), (V_{K_1} \cap I_{K_2}), \emptyset , \emptyset , D_{Env'_3}, \mathcal {T}_{Env'_3})\).

Similarly, the sets of inputs, outputs and visible actions are pairwise disjoint for \(K''_2\) and \(Env'_3\).

With this notation:

$$\begin{aligned}&(1)\, \Leftrightarrow K_1 \parallel Env \parallel Env'_1 \parallel Env'_2 \preceq K_2 \parallel Env \parallel K''_2 \parallel Env'_3 \parallel Env'_1 \parallel Env'_2\, (2) \\&K_2 \sqsubseteq _{Env} K_3 \overset{\Delta }{\Leftrightarrow } K_2 \parallel Env \parallel Env'' \preceq K_3 \parallel Env \parallel K'_3 \parallel Env''\, (3) \end{aligned}$$

With the same notation we obtain that \(Env'' = Env'_1 \parallel Env'_3\), and

$$\begin{aligned} (3) \,\Leftrightarrow K_2 \parallel E \parallel Env'_1 \parallel Env'_3 \preceq K_3 \parallel E \parallel K'_3 \parallel Env'_1 \parallel Env'_3\, (4) \end{aligned}$$

Composing (4) with \(K''_2 \parallel Env'_2\) and from Theorem 4 we get:

$$\begin{aligned}&K_2 \parallel Env \parallel Env'_1 \parallel Env'_3 \parallel K''_2 \parallel Env'_2 \preceq K_3 \parallel Env \parallel K'_3 \parallel Env'_1 \parallel Env'_3 \parallel K''_2 \parallel Env'_2 \Leftrightarrow \\&\left. \begin{aligned} \Leftrightarrow K_2 \parallel Env \parallel K''_2 \parallel Env'_3 \parallel Env'_1 \parallel Env'_2 \preceq K_3 \parallel Env \parallel K'_3 \parallel K'_2 \parallel Env'_1 \parallel Env'_2 \\ (2)\ K_1 \parallel Env \parallel Env'_1 \parallel Env'_2 \preceq K_2 \parallel Env \parallel K''_2 \parallel Env'_3 \parallel Env'_1 \parallel Env'_2 \end{aligned}\right\} \overset{Transitivity\ of\ \preceq }{\implies }\\&\implies K_1 \parallel Env \parallel Env'_1 \parallel Env'_2 \preceq K_3 \parallel Env \parallel K'_3 \parallel K'_2 \parallel Env'_1 \parallel Env'_2 \Leftrightarrow \Leftrightarrow K_1 \parallel Env \parallel Env'\\&\quad \preceq K_3 \parallel Env \parallel K'_2 \parallel K'_3 \parallel Env' \end{aligned}$$

By denoting \(K' = K'_2 \parallel K'_3\) we have:

$$\begin{aligned} K_1 \parallel Env \parallel Env' \preceq K_3 \parallel Env \parallel K' \parallel Env' \overset{\Delta }{\Leftrightarrow } K_1 \sqsubseteq _{Env} K_3 \end{aligned}$$

The last step consists in proving that \(K'\) is indeed the automaton generated by the refinement under context relation. Since \(K'_2\) and \(K'_3\) are built from the hypothesis by the refinement under context relation, by composition they define the correct structure for \(K'\). Moreover:

  • \(I_{K'} = (I_{K_1} \setminus I_{K_3}) \cup (V_{K_1} \cap O_{K_3})\),

  • \(O_{K'} = (O_{K_1} \setminus O_{K_3}) \cup (V_{K_1} \cap I_{K_3})\) and

  • \(V_{K'} = V_{K_1} \setminus E_{K_3}\).

The proofs on the sets of actions for \(Env''\) and \(K'\) are detailed in [36]. \(\square \)

Theorem 6 Let \(K_1\) and \(K_2\) be two components and E an environment compatible with both \(K_1\) and \(K_2\) such that \(Env = Env_1 \parallel Env_2\). Then \(K_1 \sqsubseteq _{Env_1 \parallel Env_2} K_2 \Leftrightarrow K_1 \parallel Env_1 \sqsubseteq _{Env_2} K_2 \parallel Env_1\).

Proof

First, let us rewrite the two refinement relations to be proved equivalent as conformance relations, based on the definition of refinement under context:

  • \(K_1 \sqsubseteq _{Env_1 \parallel Env_2} K_2 \Leftrightarrow K_1 \parallel (Env_1 \parallel Env_2) \parallel Env' \preceq K_2 \parallel (Env_1 \parallel Env_2) \parallel K' \parallel Env'\)

  • \(K_1 \parallel Env_1 \sqsubseteq _{Env_2} K_2 \parallel Env_1 \Leftrightarrow (K_1 \parallel Env_1) \parallel Env_2 \parallel Env'' \preceq (K_2 \parallel Env_1) \parallel Env_2 \parallel K'' \parallel Env''\)

Based of the associativity of \(\parallel \) we have that the two relations are identical, where: \(Env' = Env'' = (\emptyset , \emptyset , \lbrace \phi \rbrace , \phi , (O_{K_1} \setminus (I_{Env_1} \cup I_{Env_2})), (I_{K_1} \setminus (O_{Env_1} \cup O_{Env_2})), \emptyset , \emptyset , D_{Env'}, \mathcal {T}_{Env'})\) and \(K' = K'' = (\emptyset , \emptyset , \lbrace \phi \rbrace , \phi , ((I_{K_1} \setminus I_{K_2}) \cup (V_{K_1} \cap O_{K_2})), ((O_{K_1} \setminus O_{K_2}) \cup (V_{K_1} \cap I_{K_1})), (V_{K_1} \setminus E_{K_2}), \emptyset , D_{K'}, \mathcal {T}_{K'})\). \(\square \)

Theorem 8 \(\lbrace C_i \rbrace _{i=1}^{n}\) dominates C if, \(\forall i\), \(traces_{G_i}\) and \(traces_{G}\) are closed under time extension and

$$\begin{aligned} \left\{ \begin{array}{l} G_1 \parallel ... \parallel G_n \sqsubseteq _{A} G \\ A \parallel G_1 \parallel ... \parallel G_{i-1} \parallel G_{i+1} \parallel ... \parallel G_n \sqsubseteq _{G_i} A_{i},\ \forall i \end{array}\right. \end{aligned}$$

Proof

Let \(K_i\), \(i=\overline{1,n}\), a set of components such that:

  1. (1)

    \(K_i \sqsubseteq _{A_i} G_i\),

  2. (2)

    \(G_1 \parallel G_2 \parallel \ldots \parallel G_n \sqsubseteq _{A} G\),

  3. (3)

    \(A \parallel G_1 \parallel \ldots \parallel G_{i-1} \parallel G_{i+1} \parallel \ldots \parallel G_n \sqsubseteq _{G_i} A_i, \forall i\).

We have to prove that \(K_1 \parallel K_2 \parallel \ldots \parallel K_n \sqsubseteq _{A} G\).

The proof is built by induction on j where \(j =\overline{0, n}\) is the number of guarantees replaced by their corresponding component. More precisely, we will prove by induction that \(K_1 \parallel ... \parallel K_{j-1} \parallel G_j \parallel ... \parallel G_n \sqsubseteq _{A} G\). In parallel, we will also need to prove that \(A \parallel K_1 \parallel K_2 \parallel \ldots \parallel K_j \parallel G_{j+1} \parallel \ldots \parallel G_{i-1} \parallel G_{i+1} \parallel \ldots \parallel G_n \sqsubseteq _{G_i} A_i\), \(\forall i > j\).

Step \(j = 0\). Then the conclusion becomes \(G_1 \parallel G_2 \parallel \ldots \parallel G_n \sqsubseteq _{A} G\) which is true by hypothesis (2)

Step \(j = 1\).

$$\begin{aligned}&\left. \begin{aligned} (1)\ K_{1} \sqsubseteq _{A_{1}} G_{1} \\ \text {From (2) for i=1}\Rightarrow A \parallel G_2 \parallel \ldots \parallel G_n \sqsubseteq _{G_{1}} A_{1} \end{aligned}\right\} \overset{Theorem~7}{\Rightarrow }\\&\Rightarrow K_{1} \sqsubseteq _{A \parallel G_2 \parallel \ldots \parallel G_n} G_{1}\, (4)\\&\left. \begin{aligned} (4) \overset{Theorem~6}{\Rightarrow } K_1 \parallel G_2 \parallel \ldots \parallel G_n \sqsubseteq _{A} G_1 \parallel G_2 \parallel \ldots \parallel G_n \\ (2)\ G_1 \parallel \ldots \parallel G_n \sqsubseteq _{A} G \end{aligned}\right\} \overset{Transitivity}{\Rightarrow }\\&\Rightarrow K_1 \parallel G_2 \parallel \ldots \parallel G_n \sqsubseteq _{A} G\, (5)\\&\left. \begin{aligned} (4) \overset{Theorem~6}{\Rightarrow } A \parallel K_1 \parallel G_2 \parallel \ldots \parallel G_{i-1} \parallel G_{i+1} \parallel \ldots \parallel G_n \sqsubseteq _{G_i} A \parallel G_1 \parallel G_2 \parallel \ldots \parallel G_{i-1} \parallel G_{i+1} \parallel \ldots \parallel \\ \parallel G_n, \forall i > 1 \\ (3)\ A \parallel G_1 \parallel \ldots G_{i-1} \parallel G_{i+1} \parallel \ldots \parallel G_n \sqsubseteq _{G_i} A_i, \forall i \end{aligned}\right\} \overset{Transitivity}{\Rightarrow }\\&\Rightarrow A \parallel K_1 \parallel G_2 \parallel \ldots G_{i-1} \parallel G_{i+1} \parallel \ldots \parallel G_n \sqsubseteq _{G_i} A_i, \forall i > 1\, (6) \end{aligned}$$

Relations (5) and (6) constitute the hypotheses for the induction step at \(j=2\).

Induction step Let j be fixed. The induction hypotheses for this step are:

$$\begin{aligned}&K_1 \parallel \ldots \parallel K_j \parallel G_{j+1} \parallel \ldots \parallel G_n \sqsubseteq _{A} G\, (7) \\&A \parallel K_1 \parallel K_2 \parallel \ldots \parallel K_j \parallel G_{j+1} \parallel \ldots \parallel G_{i-1} \parallel G_{i+1} \parallel \ldots \parallel G_n \sqsubseteq _{G_i} A_i,\quad \forall i > j \,(8) \end{aligned}$$

Then we want to prove that:

$$\begin{aligned}&K_1 \parallel \ldots \parallel K_j \parallel K_{j+1} \parallel G_{j+2} \parallel G_n \sqsubseteq _{A} G\, (9)\, \hbox {and}\\&A \parallel K_1 \parallel \ldots \parallel K_{j+1} \parallel G_{j+2} \parallel \ldots \parallel G_{i-1} \parallel G_{i+1} \parallel \ldots \parallel G_n \sqsubseteq _{G_i} A_i,\quad \forall i > j+1\, (10) \end{aligned}$$

We proceed as follows:

$$\begin{aligned} \left. \begin{aligned} (1)\ K_{j+1} \sqsubseteq _{A_{j+1}} G_{j+1} \\ \text {From (8) for i = j + 1} \Rightarrow A \parallel K_1 \parallel K_2 \parallel \ldots \parallel K_j \parallel G_{j+2} \parallel \ldots \parallel G_n \sqsubseteq _{G_{j+1}} A_{j+1} \end{aligned}\right\} \overset{Theorem~7}{\Rightarrow }\end{aligned}$$

\(\Rightarrow K_{j+1} \sqsubseteq _{A \parallel K_1 \parallel \ldots \parallel K_j \parallel G_{j+2} \parallel \ldots \parallel G_n} G_{j+1}\) (11)

$$\begin{aligned}&\left. \begin{aligned} (11) \overset{Theorem~6}{\Rightarrow } K_1 \parallel \ldots \parallel K_j \parallel K_{j+1} \parallel G_{j+2} \parallel \ldots \parallel G_n \sqsubseteq _{A} K_1 \parallel \ldots \parallel K_j \parallel G_{j+1} \parallel G_{j+2} \parallel \ldots \parallel G_n \\ (7)\ K_1 \parallel \ldots \parallel K_j \parallel G_{j+1} \parallel \ldots \parallel G_n \sqsubseteq _{A} G \end{aligned}\right\} \overset{Transitivity}{\Rightarrow }\\&\Rightarrow K_1 \parallel \ldots \parallel K_j \parallel K_{j+1} \parallel G_{j+2} \parallel G_n \sqsubseteq _{A} G\, (9)\\&\left. \begin{aligned} (11) \overset{Theorem~6}{\Rightarrow } A \parallel K_1 \parallel \ldots \parallel K_{j+1} \parallel G_{j+2} \parallel \ldots \parallel G_{i-1} \parallel G_{i+1} \parallel \ldots \parallel G_n \sqsubseteq _{G_i} A \parallel K_1 \parallel \ldots \parallel \\ \parallel K_j \parallel G_{j+1} \parallel \ldots \parallel G_{i-1} \parallel G_{i+1} \parallel \ldots \parallel G_n, \forall i > j+1\\ (8)\ A \parallel K_1\parallel \ldots \parallel K_j \parallel G_{j+1} \parallel \ldots \parallel G_{i-1} \parallel G_{i+1} \parallel \ldots \parallel G_n \sqsubseteq _{G_i} A_i, \forall i > j+1 \end{aligned}\right\} \overset{Transitivity}{\Rightarrow }\\&\Rightarrow A \parallel K_1 \parallel \ldots \parallel K_{j+1} \parallel G_{j+2} \parallel \ldots \parallel G_{i-1} \parallel G_{i+1} \parallel \ldots \parallel G_n \sqsubseteq _{G_i} A_i, \forall i > j+1\, (10) \end{aligned}$$

Step \(j=n\). From (9), for \(j=n\), we obtain \(K_1 \parallel K_2 \parallel \ldots \parallel K_n \sqsubseteq _{A} G\) which implies dominance. \(\square \)

Theorem 9 \(K_1 \sqsubseteq _{E} K_2\) if \(K_2\) is a deterministic safety property and \(reach((K_1 \parallel E \parallel E') \bowtie \mathcal {O}_{K_2}) \cap \lbrace \pi \rbrace = \emptyset \).

Proof

Notation. We note by \(reach(\mathcal {A})(\sigma )\) the set of reached states after the execution \(\sigma \)

This proof is built by contradiction. We suppose that \(K_1 \not \sqsubseteq _{E} K_2\).

It implies that \(\exists \sigma \in tr(K_1 \parallel E \parallel E') \wedge \sigma \not \in tr(K_2 \parallel E \parallel E' \parallel K')\).

Let \(\sigma 'a\) be a prefix of \(\sigma \) such that \(\sigma ' \in tr(K_1 \parallel E \parallel E') \cap tr(K_2 \parallel E \parallel E' \parallel K')\) and \(\sigma 'a\ \not \in tr(K_2 \parallel E \parallel E' \parallel K')\), where a is a visible action. Such a prefix exists because \(K_2\) is a safety property.

Then \(reach((K_1 \parallel E \parallel E') \bowtie \mathcal {O}_{K_2})(\sigma ') = \lbrace (q_1, q_2) \rbrace \).

Concatenating a we obtain: \((q_1, q_2) \xrightarrow {a}_{(K_1 \parallel E \parallel E') \bowtie \mathcal {O}_{K_2}} \pi \implies reach((K_1 \parallel E \parallel E') \bowtie \mathcal {O}_{K_2}) \cap \lbrace \pi \rbrace \not = \emptyset \) in contradiction with the hypothesis. \(\square \)

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Dragomir, I., Ober, I. & Percebois, C. Contract-based modeling and verification of timed safety requirements within SysML. Softw Syst Model 16, 587–624 (2017). https://doi.org/10.1007/s10270-015-0481-1

Download citation

  • Received:

  • Revised:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10270-015-0481-1

Keywords

Navigation