Recurrence Property Pattern

Untimed version

Pattern Name and Classification
Recurrence: Occurrence Qualitative Patterns
Structured English Specification
Scope, P [holds] repeatedly.
Pattern Intent
This pattern requires that P must recurrently hold.
Temporal Logic Mappings
LTL Globally: $\Box (\Diamond \; P)$
Before R: $\Diamond R \rightarrow ((\Diamond (P \vee R)) \cup R)$
After Q: $\Box (Q \rightarrow \Box (\Diamond \; P))$
Between Q and R: $\Box ((Q \wedge \neg R \wedge \Diamond R) \rightarrow ((\Diamond (P \vee R)) \mathcal{U} R))$
After Q until R: $\Box ((Q \wedge \neg R) \rightarrow ((\Diamond (P \vee R)) \mathcal{W} R))$
CTL Globally: $AG(AF \;P)$
Before R: $A[((AF (P \vee R \vee AG(\neg R)))) \mathcal{W} R]$
After Q: $AG(Q \rightarrow AG(AF\; P))$
Between Q and R: $AG((Q \wedge \neg R) \rightarrow A[(AF (P \vee R \vee AG(\neg R))) \mathcal{W} R])$
After Q until R: $AG((Q \wedge \neg R) \rightarrow A[AF (P \vee R) \mathcal{W} R])$
Example and Known Uses
The system infinitely often checks the functioning of its sensors.
Additional notes
This pattern is the repetition over time of the Existence Pattern presented in [1]. As highlighted in [2], this untimed version can be found in several publication, such as [3], and it is commonly used to specify the absence on non-progress cycles in a system.

Time constrained version

The Recurrence Property Pattern has been proposed in [2].

Pattern Name and Classification
Recurrence: Occurrence Specification Pattern
Structured English Specification
Scope, P [holds] repeatedly [every $t_u^0 \in \mathbb{R}^+$ TimeUnits]. (see the English grammar).
Pattern Intent
This pattern describes the periodic satisfaction of a propositional formula. Intuitively, it captures the property that in every c time unit(s), the proposition P has to hold at least once. The proposition P holding more often than every c time units or holding continously is considered a correct behavior in this pattern.
Temporal Logic Mappings
LTL Globally: $\Box(\Diamond_{\leq c} P)$
Before R: $\Diamond R \rightarrow ((\Diamond_{\leq c}(P \vee R)) \; \mathcal{U}\; R)$
After Q: $\Box (Q \rightarrow \Box (\Diamond_{\leq c P}))$
Between Q and R: $\Box ((Q \wedge \neg R\wedge \Diamond R) \rightarrow ((\Diamond_{\leq c}(P \vee R)) \; \mathcal{U} \; R))$
After Q until R: $\Box ((Q \wedge \neg R) \rightarrow ((\Diamond_{\leq c}(P \vee R)) \; \mathcal{W} \;R))$
CTL Globally: $AG (AF_{\leq c} P)$
Before R: $A[((AF_{\leq c} (P \vee R)) \vee AG(\neg R)) \; \mathcal{W} \;R]$
After Q: $AG(Q \rightarrow AG (AF_{\leq c} P))$
Between Q and R: $AG((Q \wedge \neg R) \rightarrow A[((AF_{\leq c} (P \vee R)) \vee AG(\neg R)) \; \mathcal{W} \;R])$
After Q until R: $AG((Q \wedge \neg R) \rightarrow A[(AF_{\leq c} (P \vee R)) \; \mathcal{W} \;R])$
Additional notes
The Recurrence Property Pattern has been proposed by Konrad and Cheng in [2].

Probabilistic version

Pattern Name and Classification
Probabilistic Recurrence: Time Constrained Patterns
Structured English Specification
Scope, P [holds] repeatedly [every $t_u^0 \in \mathbb{R}^+$ TimeUnits] [Probability]. (see the English grammar).
Pattern Intent
This pattern describes the periodic satisfaction of a state formula. Intuitively, it captures the property that in every interval [a, a +c] within the scope of the property at time, the state formula P has to hold at least once.
Temporal Logic Mappings
PLTL Globally: $[\Box (\Diamond^{[t1,t2]}\; P)]_{\bowtie p}$
Before R: $[\Diamond R \rightarrow ((\Diamond^{[t1,t2]}\; (P \vee R)) \mathcal{U} R)]_{\bowtie p}$
After Q: $[\Box (Q \rightarrow \Box (\Diamond^{[t1,t2]}\; P))]_{\bowtie p}$
Between Q and R: $[\Box ((Q \wedge \neg R \wedge \Diamond R) \rightarrow ((\Diamond^{[t1,t2]}\;(P \vee R)) \mathcal{U} R))]_{\bowtie p}$
After Q until R: $[\Box ((Q \wedge \neg R) \rightarrow ((\Diamond^{[t1,t2]}\;(P \vee R)) \mathcal{W} R))]_{\bowtie p}$
CSL Globally: $\mathcal{P}_{\bowtie p}(\Box (\Diamond^{[t1,t2]}\; P))$
Before R: $\mathcal{P}_{= 1}(\Diamond R \rightarrow \mathcal{P}_{\bowtie p}((\Diamond^{[t1,t2]}\; (P \vee R)) \mathcal{U} R))$
After Q: $\mathcal{P}_{= 1}(\Box (Q \rightarrow \mathcal{P}_{\bowtie p} \Box (\Diamond^{[t1,t2]}\; P)))$
Between Q and R: $\mathcal{P}_{= 1}(\Box ((Q \wedge \neg R \wedge \Diamond R) \rightarrow \mathcal{P}_{\bowtie p}((\Diamond^{[t1,t2]}\;(P \vee R)) \mathcal{U} R)))$
After Q until R: $\mathcal{P}_{= 1}(\Box ((Q \wedge \neg R) \rightarrow \mathcal{P}_{\bowtie p}((\Diamond^{[t1,t2]}\;(P \vee R)) \mathcal{W} R)))$
Example and Known Uses
The system checks the functioning of its sensors in an interval of 3 units of time.
Additional notes
This pattern is a probabilistic version of the recurrence pattern.

Bibliography
1. Matthew B. Dwyer; George S. Avrunin; James C. Corbett, Patterns in Property Specifications for Finite-State Verification. ICSE 1999. pp. 411-420.
2. Sascha Konrad; Betty H.C. Cheng, Real-time specification patterns.ICSE 2005. pp. 372-381.
3. Holzmann, Gerard J.The Spin Model Checker: Primer and Reference Manual.Addison Wesley Publishing Company, 2003.

Home page

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License