Semantically Equivalent Formulas
• Let Φ and ψ be formulas of propositional
logic. We say that Φ and ψ are
semantically equivalent iff
Φ╞ψ
ψ╞Φ
hold. In that case we write Φ ≡ ψ.
Further, we call Φ valid if
╞Φ
holds.
Examples of equivalent formulas
•
•
•
•
p → q ≡ ¬p q
p → q ≡ ¬q → ¬p
p q → p ≡ r ¬r
p q → r ≡ p → (q →r)
Lemma
• Given propositional logic formulas Φ1, Φ2,
…, Φn, ψ, we have
Φ1, Φ2, …, Φn ╞ ψ
iff
╞ Φ1 →(Φ2 → (Φ3 → … → (Φn → ψ)))
Literal
• A literal is either an atom p or the negation
of an atom ¬p.
Conjunctive Normal Form (CNF)
• A formula Φ is in conjunctive normal form
(CNF) if it is of the form
ψ1 ψ2 …. ψn
for some n ≥ 1, such that ψi is a literal, or a
disjunction of literal, for all 1 ≤ i ≤ n.
Examples for CNF formulas
• (¬q p r) (¬p r) q
• (p r) (¬p r) (p ¬r)
Lemma
• A disjunction of literals L1 L2 …. Lm
is valid (i.e., ╞ L1 L2 …. Lm) iff there
are 1 ≤ i, j ≤ m such that Li is ¬Lj.
Satisfiable formulas
• Given a formula Φ in a propositional logic,
we say that Φ is satisfiable if there exists
an assignment of truth values to its
propositional atoms such that Φ is true.
Proposition
• Let Φ be a formula of propositional logic.
Then Φ is satisfiable iff ¬Φ is not valid.
function CNF(Φ)
/* pre-condition: Φ implication free and in NNF*/
/* post-condition: CNF(Φ) computes an equivalent CNF for Φ */
begin function
case
Φ is a literal : return Φ
Φ is Φ1 Φ2: return CNF(Φ1) CNF(Φ2)
Φ is Φ1 Φ2: return DISTR(CNF(Φ1), CNF(Φ2) )
end case
end function
function DISTR(η1, η2):
/* pre-condition: η1 and η2 are in CNF */
/* post-condition: DISTR(η1, η2) computes a CNF for η1 η2 */
begin function
case
η1 is η11 η12 : return DISTR(η11 , η2) DISTR(η12 , η2)
η2 is η21 η22 : return DISTR(η1 , η21) DISTR(η1 , η22)
otherwise (= no conjunction): return η1 η2
end case
end function
function NNF(Φ)
/* pre-condition: Φ is implication free */
/* post-condition: NNF(Φ) computes a NNF for Φ */
begin function
case
Φ is a literal : return Φ
Φ is ¬¬Φ1 : return NNF(Φ1)
Φ is Φ1 Φ2 : return NNF(Φ1) NNF(Φ2)
Φ is Φ1 Φ2 : return NNF(Φ1) NNF(Φ2)
Φ is ¬(Φ1 Φ2) : return NNF(¬Φ1 ¬Φ2)
Φ is ¬(Φ1 Φ2) : return NNF(¬Φ1 ¬Φ2)
end case
end function
Φ = ¬p q → p (r → q)
IMPL_FREE Φ = ¬ IMPL_FREE (¬p q ) IMPL_FREE (p (r → q))
= ¬((IMPL_FREE ¬p ) (IMPL_FREE q )) IMPL_FREE (p (r → q))
= ¬((¬p ) IMPL_FREE q ) IMPL_FREE (p (r → q))
= ¬ (¬p q ) IMPL_FREE (p (r → q))
= ¬ (¬p q ) ((IMPL_FREE (p) IMPL_FREE (r → q))
= ¬ (¬p q ) (p IMPL_FREE (r → q))
= ¬ (¬p q ) (p (¬ (IMPL_FREE r) IMPL_FREE (q)))
= ¬ (¬p q ) (p (¬ r IMPL_FREE (q)))
= ¬ (¬p q ) (p (¬ r q))
IMPL_FREE Φ = ¬ (¬p q ) (p (¬ r q))
NNF (IMPL_FREE Φ )
= NNF (¬ (¬p q )) NNF (p (¬ r q))
= NNF (¬ (¬p ) ¬q )) NNF (p (¬ r q))
= (NNF (¬¬p )) (NNF (¬q )) NNF (p (¬ r q))
= (p (NNF (¬q ))) NNF (p (¬ r q))
= (p ¬q ) NNF (p (¬ r q))
= (p ¬q ) ((NNF p) (NNF (¬ r q)))
= (p ¬q ) ( p (NNF (¬ r q)))
= (p ¬q ) ( p ((NNF (¬ r)) (NNF q)))
= (p ¬q ) ( p (¬ r (NNF q)))
= (p ¬q ) ( p (¬ r q))
NNF (IMPL_FREE Φ) = (p ¬q ) ( p (¬ r q))
CNF(NNF (IMPL_FREE Φ))
= CNF ((p ¬q ) ( p (¬r q)))
= DISTR ( CNF (p ¬q ), CNF (p (¬ r q)))
= DISTR (p ¬q , CNF (p (¬ r q)))
= DISTR (p ¬q , p (¬ r q))
= DISTR (p ¬q , p) DISTR (p ¬q , ¬ r q)
= (p ¬q p) DISTR (p ¬q , ¬ r q)
= (p ¬q p) (p ¬q ¬ r q)
Horn Formula Φ
• is a formula Φ of propositional logic if it is
of the form ψ1 ψ2 ... ψn for some n ≥ 1
such that ψi is of the form
p1 p2 ... pki → qi
for some ki ≥ 1, where p1, p1, …, pki, qi are
atoms, ┴ or T. We call such ψi a Horn
clause.
Examples of Horn formulas
• (p q s → p) (q r → p) (p s → s)
• (p q s → ┴) (q r → p) (T → s)
• (p2 p3 p5 → p13) (T→ p2) (p5 p11 → ┴)
Examples of non-Horn formulas
•
•
•
•
(p q s → ¬p) (q r → p) (p s → s)
(p q s → ┴) (¬q r → p) (T → s)
(p2 p3 p5 → p13 p27) (T→ p2) (p5 p11 → ┴)
(p2 p3 p5 → p13 ) (T→ p2) (p5 p11 ┴)
function HORN(Φ)
/* Pre-condition : Φ is a Horn formula*/
/* Post-condition : HORN(Φ) decides the satisfiability for Φ */
begin function
mark all atoms p where T → p is a sub-formula of Φ;
while there is a sub-formula p1 p2 ... pki → qi of Φ such that all pj
are marked but qi is not do
if qi ≡ ┴ then return ‘unsatisfiable’
else mark qi for all such subformulas
end while
return ‘satisfiable’
end function
Theorem
• The algorithm HORN is correct for the
satisfiability decision problem of Horn
formulas and has no more than n cycles in
its while-loop if n is the number of atoms in
Φ. HORN always terminates on correct
input.
Kripke structure
Let AP be a set of atomic propositions. A Kripke structure M
over AP is a four tuple M= (S, S0, R, L) where
1.
S is a finite set of states
2.
S0 S is the set of initial states.
3.
R S × S is a transition relation that must be total, that is for every
state s S there is a state s’ S such that R (s, s’).
4.
L: S 2 AP is a function that labels each state with the set of
atomic proposition in that state.
A path in the structure M from a state s is an infinite sequence of states
ω = s0 s1 s2 … such that s0 = s and R (si, si+1) holds for all i ≥ 0.
First order representation
of Kipke structures
• We use interpreted first order formulas to describe concurrent
systems.
• We use usual logical connectives (and , or , implies , not , and
so on) and universal ( ) and existential ( ) quantifications.
• Let V = {v1, …, vn} be the set of system variables. We assume that
the variables in V range over a finite set D.
• A valuation for V is a function that associated a value in D with
each variable v in V. Thus, s is a valuation for V when s: V D.
• A state of a concurrent system can be viewed as a valuation for the
set of its variables V.
• Let V’ = {v’1, …, v’n}. We think of the variables in V as present state
variables and the variables in V’ as next state variables.
First order representation
of Kipke structures
Let M = (S, S0, R, L) be a Kripke structure.
• S is the set of all valuations for all variables of the system which can
be described by a proposition S. Usually, S = True.
• The set of initial states S0 can be described by a proposition (on the
set of variables) S0.
• R can be described by a proposition R such that for any two states s
and s’, R(s, s’) holds if R evaluates to True when each variable v is
assigned the value s(v) and each variable v’ is assigned the value
s(v’).
• The labeling function L:S 2AP is defined so that L(s) is the subset
of all atomic propositions true in s which can be described by some
appropriate proposition.
A simple example
We consider a simple system with variables x and y that range
over D = {0, 1}. Thus, a valuation for the variables x and y is
just a pair (d1, d2) D × D where d1 is the value for x and d2 is
the value for y. The system consists of one transition
x := (x +y) mod 2,
Which starts from the state in which x = 1 and y = 1.
A simple example with transition
x := (x +y) mod 2
• S = True
• S0 (x, y) ≡ x = 1 y = 1
• R (x, y, x’, y’) ≡ x’ = (x +y) mod 2 y’ = y
A simple example with transition
x := (x +y) mod 2
The Kripke structure M = (S, S0, R, L) for this system is simply:
• S = D × D.
• S0 = {(1,1)}
• R = {((1,1), (0,1)), ((0,1), (1,1)), ((1,0), (1,0)), ((0,0), (0,0))}.
• L(1,1) = {x =1, y = 1}, L(0,1) = {x =0, y = 1}, L(1,0) = {x =1, y = 0},
L(0,0) = {x =0, y = 0}.
The only path in the Kripke structure that starts in the initial state is
(1,1) (0,1) (1,1) (0,1) ….
Concurrent systems
• A concurrent system consists of a set of components
that execute together.
• Normally, the components have some means of
communicating with each other.
Modes of execution
We will consider two modes of execution:
Asynchronous or interleaved execution,
in which only one component makes a
step at a time, and synchronous
execution, in which all of the components
make a step at the same time
Modes of communication
• We will also distinguish three modes of communication.
Components can either communicate by changing the
value of shared variables or by exchanging messages
using queues or some handshaking protocols.
A modulo 8 counter
v2
v1
v0
Synchronous circuit
A modulo 8 counter
The transitions of the circuit are given by
• v’0 = v0
• v’1 = v0 v1
• v’2 = (v0 v1) v2
• R0 (v, v’) ≡ (v’0 ↔ v0)
• R1 (v, v’) ≡ (v’1 ↔ v0 v1)
• R2 (v, v’) ≡ (v’2 ↔ (v0 v1) v2)
• R (v, v’) ≡ R0 (v, v’) R1 (v, v’) R2 (v, v’)
Synchronous circuit
General case
•
•
•
•
Let V = {v0, …., vn-1} and V’ = {v’0, …., v’n-1}
Let v’i = fi (V), 1= 0, …, n-1.
Define Ri (v, v’) ≡ ( v’i ↔ fi (V)).
Then, the transition relation can be
described as
R (v, v’) ≡ R0 (v, v’) … Rn-1 (v, v’).
Asynchronous circuit
General case
• In this case, the transition relation can be
described as
R (v, v’) ≡ R0 (v, v’) … Rn-1 (v, v’),
Where
Ri (v, v’) ≡ ( v’i ↔ fi (V)) j ≠ i (v’j ↔ vj )).
Example
• Let V = {v0, v1}, v’0 = v0 v1 and v’1 = v0 v1.
• Let s be a state with v0 = 1 v1 = 1.
• For the synchronous model, the only
successor of s is the state v0 = 0 v1 = 0.
• For the asynchronous model, the state s has
two successors:
• 1. v0 = 0 v1 = 1 ( the assignment to v0 is
taken first).
• 2. v0 = 1 v1 = 0 ( the assignment to v1 is
taken first).
Labeled program
•
•
•
•
Given a statement P, the labeled statement PL is defined
as follows:
If P is not a composite statement then P = PL. .
If P = P1; P2 then PL = P1L ; l’’ : P2L.
If P = if b then P1 else P2 end if, then
PL = if b then l1 : P1L else l2 : P2L end if.
If P = while b do P1 end while, then PL = while b do l1 :
P1L end while.
Some assumptions
• We assume that P is a labeled statement and that the
entry and exit points of P are labeled by m and m’,
respectively.
• Let pc be a special variable called the program counter
that ranges over the set of program labels and an
additional value ┴ called the undefined value.
• Let V denote the set of program variables, V’ the set of
primed variables for V, and pc’ the primed variables for
pc.
• Let same (Y) =
y ε Y (y’ = y).
The set of initial states of P
• Given some condition pre (V) on the initial
variables for P,
S0 (V, pc) ≡ pre (V) pc = m.
The transition relation for P
• C (l, P, l’) describes the set of transitions in P as a
disjunction of all transitions in the set.
• Assignment:
C ( l, v ← e, l’) ≡ pc = l pc’ = l’ v’ = e same (V \ {v})
• Skip:
C ( l, skip, l’) ≡ pc = l pc’ = l’ same (V)
• Sequential composition:
C ( l, P1; l’’ : P2, l’) ≡ C ( l, P1, l’’) C ( l’’, P2, l’)
The transition relation for P (continued)
• Conditional:
C (l, if b then l1: P1 else l2 : P2 end if, l’) is the
disjunction of the following formulas:
• pc = l pc’ = l1 b same (V)
• pc = l pc’ = l2 b same (V)
• C (l1, P1, l’)
• C (l2, P2, l’)
The transition relation for P (continued)
• While:
C (l, while b do l1 : P1 end while, l’) is the disjunction of
the following formulas:
• pc = l pc’ = l1 b same (V)
• pc = l pc’ = l’ b same (V)
• C (l1, P1, l)
Concurrent programs
• A concurrent program consists of a set of processes that
can be executed in parallel. A process is a sequential
program.
• Let Vi be the set of variables that can be changed by
process Pi. V is the set of all program variables.
• pci is the program counter of process Pi. PC is the set of
all program counters.
• A concurrent program has the form
cobegin P1 || P2 … || Pn coend
where P1, …, Pn are processes.
Labeling transformation
• We assume that no two labels are identical and that the
entry and exit points of P are labeled m and m’,
respectively.
• If P = cobegin P1 || P2 … || Pn coend, then
PL = cobegin l1 : P1L l’1 || l2 : P2L l’2 || … || ln : PnL l’n coend.
The set of initial states of P
S0 (V, pc) ≡ pre (V) pc = m i = 1, … n (pci = ┴ )
The transition relation for P
C (l, cobegin l1 : P1L l’1 || … || ln : PnL l’n coend, l’)
Is the disjunction of three formulas:
• pc = l pc’1 = l1 … pc’n = ln pc’ = ┴
• pc = ┴ pc1 = l’1 … pcn = l’n pc’ = l’
•
i = 1, … n
i = 1, … n
(pc’i = ┴)
(C (li, Pi, l’i) (same (V \ Vi) same (PC \ {pci}))
Shared variables
• Wait:
•
•
C (l, wait (b), l’) is a disjunction of the following two formulas:
(pci = l pc’i = l b same (Vi))
(pci = l pc’i = l’ b same (Vi))
• Lock (v) (= wait (v = 0)):
•
•
C (l, lock (v), l’) is a disjunction of the following two formulas:
(pci = l pc’i = l v = 1 same (Vi))
(pci = l pc’i = l’ v = 0 v’ = 1 same (Vi \ {v}))
• Unlock (v):
C (l, unlock (v), l’) ≡ pci = l pc’i = l’ v’ = 0 same (Vi \ {v})
A simple mutual exclusion program
P = m: cobegin P0 || P1 coend m’
P0 :: l0 : while True do
NC0 : wait (turn = 0);
CR0 : turn :=1;
end while;
l’0
P1 :: l1 : while True do
NC1 : wait (turn = 1);
CR1 : turn := 0;
end while;
l’1
Kripke structure
• pc takes values in the set { m, m’, ┴ }.
• pci takes values in the set { li, l’i, NCi, CRi, ┴ }.
• V = V0 = V1 = {turn}.
• PC = {pc, pc0, pc1}.
The set of initial states of P
• S0 (V, PC) ≡ pc = m pc0 = ┴ pc1 = ┴.
The transition relation for P
• R (V, PC, V’, PC’) is the disjunction of the following four
formulas:
• pc = m pc’0 = l0 pc’1 = l1 pc’ = ┴.
• pc0 = l’0 pc1 = l’1 pc’ = m’ pc’0 = ┴ pc’1 = ┴.
• C (l0, P0, l’0) same (pc, pc1).
• C (l1, P1, l’1) same (pc, pc0).
The transition relation of Pi
•
•
•
•
•
For each process Pi, C (li, Pi, l’i) is the
disjunction of:
pci = li pc’i = NCi True same (turn)
pci = NCi pc’i = CRi turn = i same (turn)
pci = CRi pc’i = li turn’ = (i+1) mod 2
pci = NCi pc’i = NCi turn ≠ i same (turn)
pci = li pc’i = l’i False same (turn)
turn =
0
┴, ┴
turn =
1
┴, ┴
turn =
0
l0, l1
turn =
0
l0,
NC1
turn =
1
l0, l1
turn =
0
l1,
NC0
turn =
0
turn =
0
CR0, l1
NC0,
NC1
turn =
0
CR0,
NC1
turn =
1
l0,
NC1
turn =
1
CR1, l0
turn =
1
l1,
NC0
turn =
1
NC0,
NC1
turn =
0
CR1,
NC0
Syntax of
Computational Tree Logic (CTL)
Φ ::= ┴ | T | p | (¬Φ) | (Φ Φ) | (Φ Φ) |
(Φ → Φ) | AX Φ | EX Φ | A[Φ U Φ] |
E[Φ U Φ] | AG Φ | EG Φ | AF Φ | EG Φ
where p ranges over atomic formulas.
Convention
• The unary connectives (consisting of ¬ and
the temporal connectives AG, EG, AF, AX
and EX) bind most tightly. Next in the order
come and ; and after that come → , AU
and EU.
Some examples of well-formed
CTL formulas
•
•
•
•
•
•
•
•
(EG r)
AG (q → EG r)
(AG q) → (EG r)
EF E[r U q]
A[p U EF r]
EF EG p → AF r
(EF EG p) → AF r
EF EG (p → AF r)
Some examples of not well-formed
CTL formulas
•
•
•
•
•
•
FG r
A ¬G¬p
F[r U q]
EF (r U q)
AEF r
AF [(r U q) (p U q)]
CTL Subformulas
• Definition: A subformula of a CTL
formula Φ is any formula ψ whose parse
tree is a subtree of Φ‘s parse tree.
The parse tree for
A[AX ¬p U E[EX (p q) U ¬p]]
AU
AX
EU
¬
EX
¬
p
p
p
q
Semantics of
Computational Tree Logic (CTL)
• Let M = (S, R, L) be a Kripke structure.
Given any state s in S, we define whether
a CTL formula Φ holds in state s. We
denote this by
M, s ╞ Φ,
where ╞ is the satisfaction relation.
The satisfaction relation ╞ is defined by structural induction
on all CTL formulas:
•
•
•
•
•
•
•
M, s ╞ T and ¬(M, s ╞ ┴) for all s ε S.
M, s ╞ p iff p ε L(s).
M, s ╞ ¬Φ iff ¬(M, s ╞ Φ).
M, s ╞ Φ1 Φ2 iff M, s ╞ Φ1 and M, s ╞ Φ2.
M, s ╞ Φ1 Φ2 iff M, s ╞ Φ1 or M, s ╞ Φ2.
M, s ╞ Φ1 → Φ2 iff ¬(M, s ╞ Φ1) or M, s ╞ Φ2.
M, s ╞ AX Φ iff for all s1 such that (s, s1) ε R, we have M,
s1 ╞ Φ . Thus, AX says: ‘in every next state’.
• M, s ╞ EX Φ iff for some s1 such that (s, s1) ε R, we have
M, s1 ╞ Φ . Thus, EX says: ‘in some next state’.
The satisfaction relation ╞ is defined by structural
induction on all CTL formulas: (continued)
• M, s ╞ AG Φ iff for all paths s1 s2 s3 … where s1 equals s, and all si
along the path, we have such that (si, si+1) ε R, we have M, si ╞ Φ .
Thus, AG says: ‘for all computation paths beginning s the property Φ
holds globally’.
• M, s ╞ EG Φ iff there is a path s1 s2 s3 … where s1 equals s, and all
si along the path, we have such that (s, s1) ε R, we have M, si ╞ Φ .
Thus, AG says: ‘there exists a computation path beginning s such
that Φ holds globally along the path’.
• M, s ╞ AF Φ iff for all paths s1 s2 s3 … where s1 equals s, there is
some si such that M, si ╞ Φ. Thus, AF says: ‘for all computation
paths beginning in s there will be some future state where Φ holds’.
The satisfaction relation ╞ is defined by structural
induction on all CTL formulas: (continued)
• M, s ╞ EF Φ iff there is a path s1 s2 s3 … where s1 equals s, and for
some si along the path, we have M, si ╞ Φ. Thus, EF says: ‘there
exists a computation path beginning in s such that Φ holds in some
future state’.
• M, s ╞ A[Φ1 U Φ2] iff for all paths s1 s2 s3 … where s1 equals s, that
path satisfies Φ1 U Φ2, i.e., there is some si along the path, such that
M, si ╞ Φ2, and, for each j < i, we have M, sj╞ Φ1. Thus, A[Φ1 U Φ2]
says: ‘all computation paths beginning in s satisfy that Φ1 until Φ2
holds on it’.
• M, s ╞ E[Φ1 U Φ2] iff there is a path s1 s2 s3 … where s1 equals s,
and that path satisfies Φ1 U Φ2, i.e., there is some sj along the path,
such that M, si ╞ Φ2, and, for each j < i, we have M, sj ╞ Φ1. Thus,
E[Φ1 U Φ2] says: ‘there exists a computation path beginning in s
such that Φ1 until Φ2 holds on it’.
A system whose starting state satisfies EF Φ
Φ
A system whose starting state satisfies EG Φ
Φ
Φ
Φ
A system whose starting state satisfies AG Φ
Φ
Φ
Φ
Φ
Φ
Φ
Φ
Φ
Φ
Φ
A system whose starting state satisfies AF Φ
Φ
Φ
Φ
Φ
Φ
Some examples for the following system M:
p, q
s0
s1
•
•
•
•
•
•
•
•
•
•
•
q, r
M, s0 ╞ p q
M, s0 ╞ ¬r
M, s0 ╞ T
M, s0 ╞ EX (q r)
M, s0 ╞ ¬AX (q r)
M, s0 ╞ ¬EF (p r)
M, s2 ╞ EG r
M, s2 ╞ AG r
M, s0 ╞ AF r
M, s0 ╞ E[(p q) U r]
M, s0 ╞ A[p U r]
r
s2
Other examples for CTL logic
• It is possible to get a state where started holds but ready does not
hold: EF (started ¬ready)
• For any state, if a request (of some resource) occurs, then it will
eventually be acknowledged:
AG (requested → AF acknowledged)
• A certain process is enabled indefinitely often on every computation
path:
AG (AF enabled)
• Whatever happens, a certain process will eventually be permanently
deadlocked: AF (AG deadlocked)
Other examples for CTL logic (continued)
• From any state it is possible to get a restart state: AG (EF restart)
• An upwards traveling elevator at the second floor does not change
its direction when it has passengers wishing to go to the fifth floor:
AG (floor=2 direction=up ButtonPressed5 →
A[direction=up U floor=5])
• The elevator can remain idle on the third floor with its doors
closed:
AG (floor=3 idle door=closed → EG (floor=3 idle
door=closed))
Semantically equivalent CTL formulas
• Definition: Two CTL formulas Φ and ψ
are said to be semantically equivalent if
any state in any Kripke structure which
satisfies one of them also satisfies the
other; we denote this by Φ ≡ ψ.
Important equivalences between CTL
formulas
•
•
•
•
•
•
¬AF Φ ≡ EG ¬Φ
¬EF Φ ≡ AG ¬Φ
¬AX Φ ≡ EX ¬Φ
AF Φ ≡ A[T U Φ]
EF Φ ≡ E[T U Φ]
A[p U q] ≡ ¬(E[¬q U (¬p ¬q)] EG ¬q)
Theorem:
• The set of operators ┴, ¬ and together
with AF, EU and EX are adequate for CTL:
any CTL formula can be transformed into a
semantically equivalent CTL formula which
uses only those logical connectives.
Other interesting equivalences
•
•
•
•
•
•
AG Φ ≡ Φ AX AG Φ
EG Φ ≡ Φ EX EG Φ
AF Φ ≡ Φ AX AF Φ
EF Φ ≡ Φ EX EF Φ
A[Φ U ψ] ≡ ψ (Φ AX A[Φ U ψ])
E[Φ U ψ] ≡ ψ (Φ EX E[Φ U ψ])
Example: mutual exclusion
• When concurrent processes share a resource, it
may be necessary to ensure that they do not
have access to it at the same time.
• We therefore identify certain critical sections of
each process code and arrange that only one
process can be in its critical section at a time.
• The problem we are faced with is to find a
protocol for determining which process is
allowed to enter its critical section at which time.
Some expected properties for mutual exclusion
• Safety: The protocol allows only one process to be in its
critical section at a time.
• Liveness: Whenever any process wants to enter its
critical section, it will eventually be permitted to do so.
• Non-blocking: A process can always request to enter its
critical section.
• No strict sequencing: Processes need not enter their
critical section in strict sequence.
A simple example of two processes
• n = a process is in a non-critical state
• t = a process tries to enter in its critical
section
• c = a process is in its critical section
A first-attempt model for mutual exclusion
s0
n1n2
s1
n1t2
t1n2
s5
t1t2
s2
c1n2
n1c2
s3
c1t2
s4
s6
t1c2
s7
CTL formulas for the system properties
• Safety: Φ1 = AG ¬(c1 c2). (o.k.)
• Liveness: Φ2 = AG (t1 → AF c1). (not o.k.)
because there exists a computation path, namely, s1 →
s3 → s7 → s1 →… on which c1 is always false.
• Non-blocking: Φ3= AG (n1 → EX t1). (o.k.)
• No strict sequencing: EF (c1 E[c1 U
(¬c1 E[¬c2 U c1])]). (o.k.)
A second-attempt model for mutual exclusion
s0
n1n2
s1
s2
n1t2
t1n2
t1t2
c1n2
s3
c1t2
s4
s5
t1t2
n1c2
s6
s9
t1c2
s7
Syntax of Linear-time temporal logic (LTL)
• Definition: Linear-time temporal logic (LTL) has the
following syntax given in Backus Naur form
Φ ::= p | (¬Φ) | (Φ Φ) | (Φ U Φ) | (G Φ)| (F Φ)| (X Φ)
where p is any propositional atom.
Semantics of
Linear Tree Logic (LTL)
• Let M = (S, R, L) be a Kripke structure. Given a path σ =
s1 s2 s3 … in M, where s1 is the initial state, and for all si
along the path, such that (si, si+1) ε R, we define whether
a LTL formula Φ holds in the path σ denoted as
M, σ ╞ Φ,
where ╞ is the satisfaction relation.
• Let σi = si si+1 ... denote the suffix of σ starting at si.
The satisfaction relation ╞ is defined by structural
induction on all of LTL formulas:
•
•
•
•
•
•
•
•
M, σ ╞ T and ¬(M, s ╞ ┴) for all s ε S.
M, σ ╞ p iff p ε L(s1).
M, σ ╞ ¬Φ iff ¬(M, σ ╞ Φ).
M, σ ╞ Φ1 Φ2 iff M, σ ╞ Φ1 and M, σ ╞ Φ2.
M, σ ╞ X Φ iff M, σ2 ╞ Φ,
M, σ ╞ G Φ iff, for all i ≥ 1, M, σi ╞ Φ,
M, σ ╞ F Φ iff, for some i ≥ 1, M, σi ╞ Φ,
M, σ ╞ Φ U ψ iff, there is some i ≥ 1 such that M, σi ╞ ψ
and for all j = 1 … i-1 we have M, σj ╞ Φ.
Semantically equivalent LTL formulas
• Definition: Two LTL formulas Ф and ψ are
semantically equivalent, writing as Ф ≡ ψ,
if they are true for the same paths in each
model. An LTL formula Ф is satisfied in a
state s of a model if Ф is satisfied in every
path starting at s.
Some semantically equivalent LTL formulas
•
•
•
•
•
G Ф ≡ ¬F ¬Ф
F Ф ≡ ¬G ¬Ф
F(Ф ψ) ≡ F Ф F ψ
G(Ф ψ) ≡ G Ф G ψ
Ф U ψ ≡ ¬(¬ ψ U (¬Ф ¬ψ)) F ψ
Syntax of CTL*
The CTL* formulas are divided into two classes:
• state formulas, which are evaluated in states:
Φ ::= p | T | (¬Φ) | (Φ Φ) | A[α] | E[α],
• path formulas, which are evaluated along paths:
α ::= Φ | (¬α) | (α α) | (α U α) | (G α) | (F α) | (X α)
where Φ is any state formula.
LTL and CTL as subsets of CTL*
• Although the syntax of LTL does not include A
and E, the semantic viewpoint of LTL is that we
consider all paths. Therefore, the LTL formula α
is equivalent to the CTL* formula A[α]
• CTL is the fragment of CTL* in which we restrict
the form of path formulas to
α ::= (Φ U Φ) | (G Φ) | (F Φ) | (X Φ).
Example of in CTL but not in LTL: ψ1 = AG EF p
• Whenever we have got to, we can always get
back to a state in which p is true. This is useful,
e.g., in finding deadlocks in protocols.
M
s
t
¬p
p
M’
s
¬p
Example of in CTL*, but neither in CTL nor in
LTL: ψ2 = E[GF p]
• Saying, there is a path with infinitely many p.
Example of in LTL but not in CTL:
ψ3 = AG (p → F q)
• Saying that if there are infinitely many p along
the path, then there is an occurrence of q.
• This is an interesting thing to be able to say,; for
example, many fairness constraints are of the
form ‘infinitely often requested implies eventually
acknowledged’.
Example of in LTL and CTL:
ψ4 = AG (p → AF q) in CTL, or G (p → F q) in LTL
• Saying, any p is eventually followed by a q.
Example
• G p and AF AG p are not semantically
equivalent, since FG p is satisfied, whereas AF
AG p is not satisfied, in the model
p
¬p
p
weak until W
• The formula A[p W q] is true in a state if,
along all paths from that state, p is true
from the present state until the first state in
which q is true, if any. In particular, if there
is no q state on a path, then p needs to
hold for all states of that path.
weak until W (continued)
• In LTL and CTL*, weak Until may be defined in
terms of the ordinary Until, as follows:
p W q ≡ (p U q) G p
• For CTL, we have:
E[p W q] ≡ E[p U q] EG p
A[p W q] ≡ ¬E[¬q U ¬(p q)]
© Copyright 2026 Paperzz