C∈cuts(T) we can build PCin polynomial time as follows: for each proposition p, we first build
C/p by enumerating the events e∈Cand checking if p∈α(e)∪β(e) (by enumerating α(e) and
β(e)). If C/p is empty then pis in PCiff p∈P0(this can be checked by enumerating the elements
of P0). Otherwise, we find the maximal element emax w.r.t in C/p by enumerating the elements
in C/p and . Finally, pis in PCiff p∈α(emax).
Apath σis a sequence σ=C0. . . Ck∈cuts(T)∗such that k≥0 and ∀i∈[0, k) : CiCi+1. The
size |σ|of the sequence σis the number of firings from C0in σ(i.e. khere)1; and we note σithe
suffix Ci, Ci+1,...Ck.σiis left undefined if i > |σ|. A run from a cut Cis a path σ=C0. . . Ck
with (i)C0=Cand (ii)Ck=E. The set of runs starting in a cut C∈cuts(T) is denoted by
runs(C). The size of the po-trace T=hE, P0, α, β, i, noted |T |, is equal to |E|+||+|P(T)|.
In essence, a po-trace can be interpreted as a Kripke structure, where states are cuts, transitions
are events and where each cut Cis labelled by the set of propositions holding in C, namely PC.
Ctl∗Formulae in the temporal logic Ctl∗are defined using the following grammar:
Ψ ::= > | p| ¬Ψ|Ψ∨Ψ| ∃Φ| ∀Φ Φ ::= Ψ | ¬Φ|Φ∨Φ|ΦUΦ| Φ
where Ψ is a state formula, Φ is a path formula, p∈P,Uis the until operator and is the next
operator. Other Boolean constructs (⊥,∧,⇒,⇔) are defined as in the PBF case. In our case,
Ctl∗state (resp. path) formulae are interpreted over cuts C(resp. paths σ) of a po-trace T. The
satisfaction relation, noted |=C(resp. |=σ) for state (resp. path) formulae, is the relation that
satisfies the following:
hT , Ci |=C>
hT , Ci |=Cpiff p∈PC
hT , Ci |=C¬Ψ iff hT , Ci 6|=CΨ
hT , Ci |=CΨ1∨Ψ2iff hT , Ci |=CΨ1∨ hT , Ci |=CΨ2
hT , Ci |=C∃Φ iff ∃σ∈runs(C) : hT , σi |=σΦ
hT , Ci |=C∀Φ iff ∀σ∈runs(C) : hT , σi |=σΦ
hT , σi |=σΨ iff hT , C0i |=CΨ
hT , σi |=σ¬Φ iff hT , σi 6|=σΦ
hT , σi |=σΦ1∨Φ2iff hT , σi |=σΦ1∨ hT , σi |=σΦ2
hT , σi |=σΦ iff |σ|>0∧ hT , σ1i |=σΦ
hT , σi |=σΦ1UΦ2iff ∃i∈[0,|σ|] : ((hT , σii |=σΦ2)∧(∀j∈[0, i) : hT , σji |=σΦ1))
where σ=C0. . . Ck, Φ,Φ1,Φ2are path formulae and Ψ,Ψ1,Ψ2are state formulae.
A po-trace Tsatisfies a Ctl∗state formula Ψ, noted T |= Ψ, iff hT ,∅i |=CΨ. |Ψ|, the size of a
Ctl∗formula Ψ, is defined in the usual way. Ctl∗has in particular two useful fragments:
Computation Tree Logic (Ctl)is a fragment of Ctl∗in which each and Uoperators must
1Note that |σ|could also have been defined as its number of states (i.e. k+ 1 here)
4