Until Property Pattern
Untimed version
| Pattern Name and Classification | ||
| Until: Order Specification Pattern | ||
| Structured English Specification | ||
| Scope, P [holds] without interruption until S [holds]. | ||
| Pattern Intent | ||
| Until has been proposed by Grunske (2008) in [1] . This pattern describes a scenario in which an event/state will eventually become true, after another event/state held continuously. | ||
| Temporal Logic Mappings | ||
| LTL | Globally: | $P \; \mathcal{U} \; S$ |
| Before R: | $\Diamond R \rightarrow ( (P \wedge \neg R) \; \mathcal{U} \;(S \vee R))$ | |
| After Q: | $\Box (Q \rightarrow (P \; \mathcal{U}\;S)$ | |
| Between Q and R: | $\Box((Q \; \wedge \; \neg R \; \wedge \Diamond R) \rightarrow ((P \wedge \neg R) \; \mathcal{U} \;(S \wedge \neg R)))$ | |
| After Q until R: | $\Box ((Q \; \wedge \; (\neg R)) \rightarrow ((P \; \mathcal{U} \;S) \; \mathcal{W} \;R))$ | |
| CTL | Globally: | $A[P \; \mathcal{U} \;S]$ |
| Before R: | $A[A[P \; \mathcal{U} \;S] \; \mathcal{W} \;R]$ | |
| After Q: | $AG(Q \rightarrow \; A[P\; \mathcal{U} \;S])$ | |
| Between Q and R: | $AG((Q \; \wedge \;AG (\neg R)) \rightarrow A[A[P \; \mathcal{U} \;S] \; \mathcal{W} \; R)])$ | |
| After Q until R: | $AG((Q\; \wedge \;AG (\neg R)) \rightarrow A[A[P \; \mathcal{U} \;S] \; \mathcal{W} \;R])$ | |
| Example and Known Uses | ||
| Power to a system must be available until a shutdown command is issued. (scope: global; source: satellite control system) | ||
Time-constrained version:
| Pattern Name and Classification | ||
| Time-constrained Until: Real-time Order Specification Pattern | ||
| Structured English Specification | ||
| Scope, P [holds] without interruption until S [holds] [ Time(0)] | ||
| Pattern Intent | ||
| This pattern describes a scenario in which an event/state will eventually become true within a given time bound, after another event/state held continuously. | ||
| Temporal Logic Mappings | ||
| MTL | Globally: | $P \; \mathcal{U}^{[t1,t2]}\;S$ |
| Before R: | $\Diamond^{[t1,\infty)} R \rightarrow ( (P \wedge \neg R) \; \mathcal{U}^{[t1,t2]}\;(S \vee R))$ | |
| After Q: | $\Box (Q \rightarrow (P \; \mathcal{U}^{[t1,t2]}\;S)$ | |
| Between Q and R: | $\Box((Q \; \wedge \; \neg R \; \wedge \Diamond^{[t1,\infty)} R) \rightarrow ( (P \wedge \neg R) \; \mathcal{U}^{[t1,t2]}\;(S \vee R)))$ | |
| After Q until R: | $\Box ((Q \; \wedge \; \Box^{[0,t1]} (\neg R)) \rightarrow ((P \; \mathcal{U}^{[t1,t2]}\;S) \; \mathcal{W} \;R))$ | |
| TCTL | Globally: | $A[P \; \mathcal{U}^{[t1,t2]} \;S]$ |
| Before R: | $A[A[P \; \mathcal{U}^{[t1,t2]} \;S] \; \mathcal{W} \;R]$ | |
| After Q: | $AG(Q \rightarrow \; A[P\; \mathcal{U}^{[t1,t2]} \;S])$ | |
| Between Q and R: | $AG((Q \; \wedge \;AG^{[0,t1]} (\neg R)) \rightarrow A[A[P \; \mathcal{U}^{[t1,t2]} \;S] \mathcal{W} \; R)])$ | |
| After Q until R: | $AG((Q\; \wedge \;AG^{[0,t1]} (\neg R)) \rightarrow A[A[P \; \mathcal{U}^{[t1,t2]} \;S] \; \mathcal{W} \;R])$ | |
| Example and Known Uses | ||
| After 30 ms of continuously operating the pump engine must be stopped. Note: the engine is connected to a piston rod which sends forward a plunger in order to deliver the insulin to the body. (scope:global; source: insulin pump). | ||
| Relationships | ||
| This pattern is the extension of the untimed version Until. | ||
Probabilistic version:
The Until Property Pattern has been proposed by Grunske in [1] and it can be found on the ProProST webpage.
Bibliography
1. Lars Grunske Specification patterns for probabilistic quality properties. ICSE 2008: 31-40





