Concurrency Theory Winter Semester 2019/20 Lecture 4: - - PowerPoint PPT Presentation

concurrency theory
SMART_READER_LITE
LIVE PREVIEW

Concurrency Theory Winter Semester 2019/20 Lecture 4: - - PowerPoint PPT Presentation

Concurrency Theory Winter Semester 2019/20 Lecture 4: Hennessy-Milner Logic with Recursion Joost-Pieter Katoen and Thomas Noll Software Modeling and Verification Group RWTH Aachen University https://moves.rwth-aachen.de/teaching/ws-19-20/ct/


slide-1
SLIDE 1

Concurrency Theory

Winter Semester 2019/20 Lecture 4: Hennessy-Milner Logic with Recursion Joost-Pieter Katoen and Thomas Noll Software Modeling and Verification Group RWTH Aachen University

https://moves.rwth-aachen.de/teaching/ws-19-20/ct/

slide-2
SLIDE 2

Recap: Hennessy-Milner Logic and Process Traces Outline of Lecture 4 Recap: Hennessy-Milner Logic and Process Traces Adding Recursion to HML HML with One Recursive Variable Algebraic Foundations

2 of 24 Concurrency Theory Winter Semester 2019/20 Lecture 4: Hennessy-Milner Logic with Recursion

slide-3
SLIDE 3

Recap: Hennessy-Milner Logic and Process Traces Syntax of HML Definition (Syntax of HML) The set HMF of Hennessy-Milner formulae over a set of actions Act is defined by the following syntax: F ::= tt (true)

|

ff (false)

|

F1 ∧ F2 (conjunction)

|

F1 ∨ F2 (disjunction)

| αF

(diamond)

| [α]F

(box) where α ∈ Act. Abbreviations for L = {α1, . . . , αn} (n ∈ N):

  • LF := α1F ∨ . . . ∨ αnF
  • [L]F := [α1]F ∧ . . . ∧ [αn]F
  • In particular, ∅F := ff and [∅]F := tt

3 of 24 Concurrency Theory Winter Semester 2019/20 Lecture 4: Hennessy-Milner Logic with Recursion

slide-4
SLIDE 4

Recap: Hennessy-Milner Logic and Process Traces Semantics of HML Definition (Semantics of HML) Let (S, Act, −

→) be an LTS and F ∈ HMF. The set of processes in S that satisfy F, F ⊆ S, is defined by: tt := S ff := ∅ F1 ∧ F2 := F1 ∩ F2 F1 ∨ F2 := F1 ∪ F2 αF := ·α·(F) [α]F := [·α·](F)

where ·α·, [·α·] : 2S → 2S are given by

·α·(T) := {s ∈ S | ∃s′ ∈ T : s

α

− → s′} [·α·](T) := {s ∈ S | ∀s′ ∈ S : s

α

− → s′ = ⇒ s′ ∈ T}

We write s |

= F iff s ∈ F. Two HML formulae are equivalent (written F ≡ G) iff

they are satisfied by the same processes in every LTS.

4 of 24 Concurrency Theory Winter Semester 2019/20 Lecture 4: Hennessy-Milner Logic with Recursion

slide-5
SLIDE 5

Recap: Hennessy-Milner Logic and Process Traces Closure under Negation Observation: negation is not one of the HML constructs Reason: HML is closed under negation Lemma For every F ∈ HMF there exists F c ∈ HMF such that F c = S \ F for every LTS

(S, Act, − →).

Proof. Definition of F c: ttc := ff ffc := tt

(F1 ∧ F2)c := F c

1 ∨ F c 2

(F1 ∨ F2)c := F c

1 ∧ F c 2

(αF)c := [α]F c ([α]F)c := αF c

5 of 24 Concurrency Theory Winter Semester 2019/20 Lecture 4: Hennessy-Milner Logic with Recursion

slide-6
SLIDE 6

Recap: Hennessy-Milner Logic and Process Traces Process Traces Goal: reduce processes to the action sequences they can perform Definition (Trace language) For every P ∈ Prc, let Tr(P) := {w ∈ Act∗ | ex. P′ ∈ Prc such that P

w

− → P′}

be the trace language of P (where

w

− → :=

a1

− → ◦ . . . ◦

an

− → for w = a1 . . . an).

P, Q ∈ Prc are called trace equivalent if Tr(P) = Tr(Q). Example (One-place buffer) B = in.out.B

= ⇒ Tr(B) = (in · out)∗ · (in + ε)

6 of 24 Concurrency Theory Winter Semester 2019/20 Lecture 4: Hennessy-Milner Logic with Recursion

slide-7
SLIDE 7

Recap: Hennessy-Milner Logic and Process Traces HML and Process Traces Lemma Let (Prc, Act, −

→) be an LTS, and let P, Q ∈ Prc satisfy the same HMF (i.e., ∀F ∈ HMF : P | = F ⇐ ⇒ Q | = F). Then Tr(P) = Tr(Q).

Proof.

  • n the board

Remark: the converse does not hold. Example

  • Let P := a.(b.nil + c.nil) ∈ Prc, Q := a.b.nil + a.c.nil ∈ Prc
  • Then Tr(P) = Tr(Q) = {ε, a, ab, ac}
  • Let F := [a](btt ∧ ctt) ∈ HMF
  • Then P |

= F but Q | = F

  • [Later: P, Q ∈ Prc HML-equivalent iff bismilar]

7 of 24 Concurrency Theory Winter Semester 2019/20 Lecture 4: Hennessy-Milner Logic with Recursion

slide-8
SLIDE 8

Adding Recursion to HML Outline of Lecture 4 Recap: Hennessy-Milner Logic and Process Traces Adding Recursion to HML HML with One Recursive Variable Algebraic Foundations

8 of 24 Concurrency Theory Winter Semester 2019/20 Lecture 4: Hennessy-Milner Logic with Recursion

slide-9
SLIDE 9

Adding Recursion to HML Finiteness of HML Observation: HML formulae only describe finite part of process behaviour

  • each modal operator ([.], .) talks about one step
  • only finite nesting of operators (modal depth)

9 of 24 Concurrency Theory Winter Semester 2019/20 Lecture 4: Hennessy-Milner Logic with Recursion

slide-10
SLIDE 10

Adding Recursion to HML Finiteness of HML Observation: HML formulae only describe finite part of process behaviour

  • each modal operator ([.], .) talks about one step
  • only finite nesting of operators (modal depth)

Example 4.1

  • F := (a[a]ff) ∨ btt ∈ HMF has modal depth 2
  • Checking F involves analysis of all behaviours of length ≤ 2

9 of 24 Concurrency Theory Winter Semester 2019/20 Lecture 4: Hennessy-Milner Logic with Recursion

slide-11
SLIDE 11

Adding Recursion to HML Finiteness of HML Observation: HML formulae only describe finite part of process behaviour

  • each modal operator ([.], .) talks about one step
  • only finite nesting of operators (modal depth)

Example 4.1

  • F := (a[a]ff) ∨ btt ∈ HMF has modal depth 2
  • Checking F involves analysis of all behaviours of length ≤ 2

But: sometimes necessary to refer to arbitrarily long computations (e.g., “no deadlock state reachable”

  • possible solution: support infinite conjunctions and disjunctions

9 of 24 Concurrency Theory Winter Semester 2019/20 Lecture 4: Hennessy-Milner Logic with Recursion

slide-12
SLIDE 12

Adding Recursion to HML Infinite Conjunctions Example 4.2

  • Let C = a.C, D = a.D + a.nil
  • Then C |

= [a]att but D | = [a]att (i.e., C and D distinguishable by formula of depth 2)

10 of 24 Concurrency Theory Winter Semester 2019/20 Lecture 4: Hennessy-Milner Logic with Recursion

slide-13
SLIDE 13

Adding Recursion to HML Infinite Conjunctions Example 4.2

  • Let C = a.C, D = a.D + a.nil
  • Then C |

= [a]att but D | = [a]att (i.e., C and D distinguishable by formula of depth 2)

  • Now redefine D as Dn = a.Dn + a.En where n ∈ N, Ek = a.Ek−1 (1 ≤ k ≤ n), E0 = nil
  • Then (for [α]kF := [α] . . . [α]
  • k times

F where F ∈ HMF):

– C |

= [a]katt for all k ∈ N

– Dn |

= [a]katt for all 0 ≤ k ≤ n

– Dn |

= [a]katt for all k > n

10 of 24 Concurrency Theory Winter Semester 2019/20 Lecture 4: Hennessy-Milner Logic with Recursion

slide-14
SLIDE 14

Adding Recursion to HML Infinite Conjunctions Example 4.2

  • Let C = a.C, D = a.D + a.nil
  • Then C |

= [a]att but D | = [a]att (i.e., C and D distinguishable by formula of depth 2)

  • Now redefine D as Dn = a.Dn + a.En where n ∈ N, Ek = a.Ek−1 (1 ≤ k ≤ n), E0 = nil
  • Then (for [α]kF := [α] . . . [α]
  • k times

F where F ∈ HMF):

– C |

= [a]katt for all k ∈ N

– Dn |

= [a]katt for all 0 ≤ k ≤ n

– Dn |

= [a]katt for all k > n

  • Conclusion: no single HML formula can distinguish C and all Dn

– unsatisfactory as behaviour clearly different

  • Generally: invariant property “always att” not expressible
  • Requires infinite conjunction:

Inv(att) = att ∧ [a]att ∧ [a][a]att ∧ . . . =

  • k∈N

[a]katt

10 of 24 Concurrency Theory Winter Semester 2019/20 Lecture 4: Hennessy-Milner Logic with Recursion

slide-15
SLIDE 15

Adding Recursion to HML Infinite Disjunctions Dually: possibility properties expressible by infinite disjunctions Example 4.3

  • Let C = a.C, D = a.D + a.nil as before
  • C has no possibility to terminate
  • D has the option to terminate (i.e., to eventually satisfy [a]ff) at any time by choosing the

a.nil branch

11 of 24 Concurrency Theory Winter Semester 2019/20 Lecture 4: Hennessy-Milner Logic with Recursion

slide-16
SLIDE 16

Adding Recursion to HML Infinite Disjunctions Dually: possibility properties expressible by infinite disjunctions Example 4.3

  • Let C = a.C, D = a.D + a.nil as before
  • C has no possibility to terminate
  • D has the option to terminate (i.e., to eventually satisfy [a]ff) at any time by choosing the

a.nil branch

  • Representable by infinite disjunction:

Pos([a]ff) = [a]ff ∨ a[a]ff ∨ aa[a]ff ∨ . . . =

  • k∈N

ak[a]ff

11 of 24 Concurrency Theory Winter Semester 2019/20 Lecture 4: Hennessy-Milner Logic with Recursion

slide-17
SLIDE 17

Adding Recursion to HML Infinite Disjunctions Dually: possibility properties expressible by infinite disjunctions Example 4.3

  • Let C = a.C, D = a.D + a.nil as before
  • C has no possibility to terminate
  • D has the option to terminate (i.e., to eventually satisfy [a]ff) at any time by choosing the

a.nil branch

  • Representable by infinite disjunction:

Pos([a]ff) = [a]ff ∨ a[a]ff ∨ aa[a]ff ∨ . . . =

  • k∈N

ak[a]ff

Problem: infinite formulae not easy to handle

11 of 24 Concurrency Theory Winter Semester 2019/20 Lecture 4: Hennessy-Milner Logic with Recursion

slide-18
SLIDE 18

Adding Recursion to HML Introducing Recursion Solution: employ recursion!

  • Inv(att) ≡ att ∧ [a] Inv(att)
  • Pos([a]ff) ≡ [a]ff ∨ a Pos([a]ff)

12 of 24 Concurrency Theory Winter Semester 2019/20 Lecture 4: Hennessy-Milner Logic with Recursion

slide-19
SLIDE 19

Adding Recursion to HML Introducing Recursion Solution: employ recursion!

  • Inv(att) ≡ att ∧ [a] Inv(att)
  • Pos([a]ff) ≡ [a]ff ∨ a Pos([a]ff)

Interpretation: the sets of states X, Y ⊆ S satisfying the respective formula should solve the corresponding equation, i.e.,

  • X = ·a·(S) ∩ [·a·](X)
  • Y = [·a·](∅) ∪ ·a·(Y)

12 of 24 Concurrency Theory Winter Semester 2019/20 Lecture 4: Hennessy-Milner Logic with Recursion

slide-20
SLIDE 20

Adding Recursion to HML Introducing Recursion Solution: employ recursion!

  • Inv(att) ≡ att ∧ [a] Inv(att)
  • Pos([a]ff) ≡ [a]ff ∨ a Pos([a]ff)

Interpretation: the sets of states X, Y ⊆ S satisfying the respective formula should solve the corresponding equation, i.e.,

  • X = ·a·(S) ∩ [·a·](X)
  • Y = [·a·](∅) ∪ ·a·(Y)

Open questions

  • Do such recursive equations (always) have solutions?
  • If so, are they unique?
  • How can we decide whether a process satisfies a recursive formula (“model checking”)?

12 of 24 Concurrency Theory Winter Semester 2019/20 Lecture 4: Hennessy-Milner Logic with Recursion

slide-21
SLIDE 21

Adding Recursion to HML Existence of Solutions Example 4.4

  • Consider again C = a.C, D = a.D + a.nil

13 of 24 Concurrency Theory Winter Semester 2019/20 Lecture 4: Hennessy-Milner Logic with Recursion

slide-22
SLIDE 22

Adding Recursion to HML Existence of Solutions Example 4.4

  • Consider again C = a.C, D = a.D + a.nil
  • Invariant: X ≡ att ∧ [a]X

– X = ∅ is a solution (as no process can satisfy both att and [a]ff) – but we expect C ∈ X (as C can perform a invariantly) – in fact, X = {C} also solves the equation (and is the greatest solution w.r.t. ⊆)

= ⇒ write X

max

= att ∧ [a]X

13 of 24 Concurrency Theory Winter Semester 2019/20 Lecture 4: Hennessy-Milner Logic with Recursion

slide-23
SLIDE 23

Adding Recursion to HML Existence of Solutions Example 4.4

  • Consider again C = a.C, D = a.D + a.nil
  • Invariant: X ≡ att ∧ [a]X

– X = ∅ is a solution (as no process can satisfy both att and [a]ff) – but we expect C ∈ X (as C can perform a invariantly) – in fact, X = {C} also solves the equation (and is the greatest solution w.r.t. ⊆)

= ⇒ write X

max

= att ∧ [a]X

  • Possibility: Y ≡ [a]ff ∨ aY

– greatest solution: Y = {C, D, nil} – but we expect C /

∈ Y (as C cannot terminate at all)

– here: least solution w.r.t. ⊆: Y = {D, nil}

= ⇒ write Y

min

= [a]ff ∨ aY

13 of 24 Concurrency Theory Winter Semester 2019/20 Lecture 4: Hennessy-Milner Logic with Recursion

slide-24
SLIDE 24

Adding Recursion to HML Uniqueness of Solutions Uniqueness of solutions

  • Use greatest solutions for properties that hold unless the process has a finite computation

that disproves it.

  • Use least solutions for properties that hold if the process has a finite computation that

proves it.

14 of 24 Concurrency Theory Winter Semester 2019/20 Lecture 4: Hennessy-Milner Logic with Recursion

slide-25
SLIDE 25

Adding Recursion to HML Uniqueness of Solutions Uniqueness of solutions

  • Use greatest solutions for properties that hold unless the process has a finite computation

that disproves it.

  • Use least solutions for properties that hold if the process has a finite computation that

proves it.

Example 4.5 Let (S, Act, −

→) be an LTS, s ∈ S, and F ∈ HMF.

  • Invariant: Inv(F) ≡ X for X

max

= F ∧ [Act]X

– s |

= Inv(F) if all states reachable from s satisfy F

14 of 24 Concurrency Theory Winter Semester 2019/20 Lecture 4: Hennessy-Milner Logic with Recursion

slide-26
SLIDE 26

Adding Recursion to HML Uniqueness of Solutions Uniqueness of solutions

  • Use greatest solutions for properties that hold unless the process has a finite computation

that disproves it.

  • Use least solutions for properties that hold if the process has a finite computation that

proves it.

Example 4.5 Let (S, Act, −

→) be an LTS, s ∈ S, and F ∈ HMF.

  • Invariant: Inv(F) ≡ X for X

max

= F ∧ [Act]X

– s |

= Inv(F) if all states reachable from s satisfy F

  • Possibility: Pos(F) ≡ Y for Y

min

= F ∨ ActY

– s |

= Pos(F) if a state satisfying F is reachable from s

14 of 24 Concurrency Theory Winter Semester 2019/20 Lecture 4: Hennessy-Milner Logic with Recursion

slide-27
SLIDE 27

Adding Recursion to HML Uniqueness of Solutions Uniqueness of solutions

  • Use greatest solutions for properties that hold unless the process has a finite computation

that disproves it.

  • Use least solutions for properties that hold if the process has a finite computation that

proves it.

Example 4.5 Let (S, Act, −

→) be an LTS, s ∈ S, and F ∈ HMF.

  • Invariant: Inv(F) ≡ X for X

max

= F ∧ [Act]X

– s |

= Inv(F) if all states reachable from s satisfy F

  • Possibility: Pos(F) ≡ Y for Y

min

= F ∨ ActY

– s |

= Pos(F) if a state satisfying F is reachable from s

  • Safety: Safe(F) ≡ X for X

max

= F ∧ ([Act]ff ∨ ActX)

– s |

= Safe(F) if s has a complete (i.e., infinite or terminating) transition sequence where each state

satisfies F

14 of 24 Concurrency Theory Winter Semester 2019/20 Lecture 4: Hennessy-Milner Logic with Recursion

slide-28
SLIDE 28

Adding Recursion to HML Uniqueness of Solutions Uniqueness of solutions

  • Use greatest solutions for properties that hold unless the process has a finite computation

that disproves it.

  • Use least solutions for properties that hold if the process has a finite computation that

proves it.

Example 4.5 Let (S, Act, −

→) be an LTS, s ∈ S, and F ∈ HMF.

  • Invariant: Inv(F) ≡ X for X

max

= F ∧ [Act]X

– s |

= Inv(F) if all states reachable from s satisfy F

  • Possibility: Pos(F) ≡ Y for Y

min

= F ∨ ActY

– s |

= Pos(F) if a state satisfying F is reachable from s

  • Safety: Safe(F) ≡ X for X

max

= F ∧ ([Act]ff ∨ ActX)

– s |

= Safe(F) if s has a complete (i.e., infinite or terminating) transition sequence where each state

satisfies F

  • Eventuality: Evt(F) ≡ Y for Y

min

= F ∨ (Acttt ∧ [Act]Y)

– s |

= Evt(F) if each complete transition sequence starting in s contains a state satisfying F

14 of 24 Concurrency Theory Winter Semester 2019/20 Lecture 4: Hennessy-Milner Logic with Recursion

slide-29
SLIDE 29

HML with One Recursive Variable Outline of Lecture 4 Recap: Hennessy-Milner Logic and Process Traces Adding Recursion to HML HML with One Recursive Variable Algebraic Foundations

15 of 24 Concurrency Theory Winter Semester 2019/20 Lecture 4: Hennessy-Milner Logic with Recursion

slide-30
SLIDE 30

HML with One Recursive Variable Syntax of HML with One Recursive Variable Initially: only one variable (for simplicity) Later: mutual recursion

16 of 24 Concurrency Theory Winter Semester 2019/20 Lecture 4: Hennessy-Milner Logic with Recursion

slide-31
SLIDE 31

HML with One Recursive Variable Syntax of HML with One Recursive Variable Initially: only one variable (for simplicity) Later: mutual recursion Definition 4.6 (Syntax of HML with one variable) The set HMF X of Hennessy-Milner formulae with one variable X over a set of actions Act is defined by the following syntax: F ::= X (variable)

|

tt (true)

|

ff (false)

|

F1 ∧ F2 (conjunction)

|

F1 ∨ F2 (disjunction)

| αF

(diamond)

| [α]F

(box) where α ∈ Act.

16 of 24 Concurrency Theory Winter Semester 2019/20 Lecture 4: Hennessy-Milner Logic with Recursion

slide-32
SLIDE 32

HML with One Recursive Variable Semantics of HML with One Recursive Variable I So far: F ⊆ S for F ∈ HMF and LTS (S, Act, −

→)

Now: semantics of formula depends on states that (are assumed to) satisfy X

17 of 24 Concurrency Theory Winter Semester 2019/20 Lecture 4: Hennessy-Milner Logic with Recursion

slide-33
SLIDE 33

HML with One Recursive Variable Semantics of HML with One Recursive Variable I So far: F ⊆ S for F ∈ HMF and LTS (S, Act, −

→)

Now: semantics of formula depends on states that (are assumed to) satisfy X Definition 4.7 (Semantics of HML with one variable) Let (S, Act, −

→) be an LTS and F ∈ HMF X. The semantics of F, F : 2S → 2S,

is defined by

X(T) := T tt(T) := S ff(T) := ∅ F1 ∧ F2(T) := F1(T) ∩ F2(T) F1 ∨ F2(T) := F1(T) ∪ F2(T) αF(T) := ·α·(F(T)) [α]F(T) := [·α·](F(T))

17 of 24 Concurrency Theory Winter Semester 2019/20 Lecture 4: Hennessy-Milner Logic with Recursion

slide-34
SLIDE 34

HML with One Recursive Variable Semantics of HML with One Recursive Variable II Example 4.8 s1 s2 s3 a b a a Let S := {s1, s2, s3}.

18 of 24 Concurrency Theory Winter Semester 2019/20 Lecture 4: Hennessy-Milner Logic with Recursion

slide-35
SLIDE 35

HML with One Recursive Variable Semantics of HML with One Recursive Variable II Example 4.8 s1 s2 s3 a b a a Let S := {s1, s2, s3}.

  • aX({s1}) = {s3}

18 of 24 Concurrency Theory Winter Semester 2019/20 Lecture 4: Hennessy-Milner Logic with Recursion

slide-36
SLIDE 36

HML with One Recursive Variable Semantics of HML with One Recursive Variable II Example 4.8 s1 s2 s3 a b a a Let S := {s1, s2, s3}.

  • aX({s1}) = {s3}
  • aX({s1, s2}) = {s1, s3}

18 of 24 Concurrency Theory Winter Semester 2019/20 Lecture 4: Hennessy-Milner Logic with Recursion

slide-37
SLIDE 37

HML with One Recursive Variable Semantics of HML with One Recursive Variable II Example 4.8 s1 s2 s3 a b a a Let S := {s1, s2, s3}.

  • aX({s1}) = {s3}
  • aX({s1, s2}) = {s1, s3}
  • [b]X({s2}) = {s2, s3}

18 of 24 Concurrency Theory Winter Semester 2019/20 Lecture 4: Hennessy-Milner Logic with Recursion

slide-38
SLIDE 38

HML with One Recursive Variable Semantics of HML with One Recursive Variable III

  • Idea underlying the definition of

. : HMF X → (2S → 2S) :

if T ⊆ S gives the set of states that satisfy X, then F(T) will be the set of states that satisfy F

19 of 24 Concurrency Theory Winter Semester 2019/20 Lecture 4: Hennessy-Milner Logic with Recursion

slide-39
SLIDE 39

HML with One Recursive Variable Semantics of HML with One Recursive Variable III

  • Idea underlying the definition of

. : HMF X → (2S → 2S) :

if T ⊆ S gives the set of states that satisfy X, then F(T) will be the set of states that satisfy F

  • How to determine this T?
  • According to previous discussion: as solution of recursive equation of the form X = FX

where FX ∈ HMF X

19 of 24 Concurrency Theory Winter Semester 2019/20 Lecture 4: Hennessy-Milner Logic with Recursion

slide-40
SLIDE 40

HML with One Recursive Variable Semantics of HML with One Recursive Variable III

  • Idea underlying the definition of

. : HMF X → (2S → 2S) :

if T ⊆ S gives the set of states that satisfy X, then F(T) will be the set of states that satisfy F

  • How to determine this T?
  • According to previous discussion: as solution of recursive equation of the form X = FX

where FX ∈ HMF X

  • But: solution not unique; therefore write:

X

min

= FX

  • r

X

max

= FX

19 of 24 Concurrency Theory Winter Semester 2019/20 Lecture 4: Hennessy-Milner Logic with Recursion

slide-41
SLIDE 41

HML with One Recursive Variable Semantics of HML with One Recursive Variable III

  • Idea underlying the definition of

. : HMF X → (2S → 2S) :

if T ⊆ S gives the set of states that satisfy X, then F(T) will be the set of states that satisfy F

  • How to determine this T?
  • According to previous discussion: as solution of recursive equation of the form X = FX

where FX ∈ HMF X

  • But: solution not unique; therefore write:

X

min

= FX

  • r

X

max

= FX

  • In the following we will see:
  • 1. Equation X = FX always solvable
  • 2. Least and greatest solutions are unique and can be obtained by fixed-point iteration

19 of 24 Concurrency Theory Winter Semester 2019/20 Lecture 4: Hennessy-Milner Logic with Recursion

slide-42
SLIDE 42

Algebraic Foundations Outline of Lecture 4 Recap: Hennessy-Milner Logic and Process Traces Adding Recursion to HML HML with One Recursive Variable Algebraic Foundations

20 of 24 Concurrency Theory Winter Semester 2019/20 Lecture 4: Hennessy-Milner Logic with Recursion

slide-43
SLIDE 43

Algebraic Foundations Partial Orders Definition 4.9 (Partial order) A partial order (PO) (D, ⊑) consists of a set D, called domain, and of a relation

⊑ ⊆ D × D such that, for every d1, d2, d3 ∈ D,

reflexivity: d1 ⊑ d1 transitivity: d1 ⊑ d2 and d2 ⊑ d3 =

⇒ d1 ⊑ d3

antisymmetry: d1 ⊑ d2 and d2 ⊑ d1 =

⇒ d1 = d2

It is called total if, in addition, always d1 ⊑ d2 or d2 ⊑ d1.

21 of 24 Concurrency Theory Winter Semester 2019/20 Lecture 4: Hennessy-Milner Logic with Recursion

slide-44
SLIDE 44

Algebraic Foundations Partial Orders Definition 4.9 (Partial order) A partial order (PO) (D, ⊑) consists of a set D, called domain, and of a relation

⊑ ⊆ D × D such that, for every d1, d2, d3 ∈ D,

reflexivity: d1 ⊑ d1 transitivity: d1 ⊑ d2 and d2 ⊑ d3 =

⇒ d1 ⊑ d3

antisymmetry: d1 ⊑ d2 and d2 ⊑ d1 =

⇒ d1 = d2

It is called total if, in addition, always d1 ⊑ d2 or d2 ⊑ d1. Example 4.10

  • 1. (N, ≤) is a total partial order

21 of 24 Concurrency Theory Winter Semester 2019/20 Lecture 4: Hennessy-Milner Logic with Recursion

slide-45
SLIDE 45

Algebraic Foundations Partial Orders Definition 4.9 (Partial order) A partial order (PO) (D, ⊑) consists of a set D, called domain, and of a relation

⊑ ⊆ D × D such that, for every d1, d2, d3 ∈ D,

reflexivity: d1 ⊑ d1 transitivity: d1 ⊑ d2 and d2 ⊑ d3 =

⇒ d1 ⊑ d3

antisymmetry: d1 ⊑ d2 and d2 ⊑ d1 =

⇒ d1 = d2

It is called total if, in addition, always d1 ⊑ d2 or d2 ⊑ d1. Example 4.10

  • 1. (N, ≤) is a total partial order
  • 2. (N, <) is not a partial order (since not reflexive)

21 of 24 Concurrency Theory Winter Semester 2019/20 Lecture 4: Hennessy-Milner Logic with Recursion

slide-46
SLIDE 46

Algebraic Foundations Partial Orders Definition 4.9 (Partial order) A partial order (PO) (D, ⊑) consists of a set D, called domain, and of a relation

⊑ ⊆ D × D such that, for every d1, d2, d3 ∈ D,

reflexivity: d1 ⊑ d1 transitivity: d1 ⊑ d2 and d2 ⊑ d3 =

⇒ d1 ⊑ d3

antisymmetry: d1 ⊑ d2 and d2 ⊑ d1 =

⇒ d1 = d2

It is called total if, in addition, always d1 ⊑ d2 or d2 ⊑ d1. Example 4.10

  • 1. (N, ≤) is a total partial order
  • 2. (N, <) is not a partial order (since not reflexive)
  • 3. (2N, ⊆) is a (non-total) partial order

21 of 24 Concurrency Theory Winter Semester 2019/20 Lecture 4: Hennessy-Milner Logic with Recursion

slide-47
SLIDE 47

Algebraic Foundations Partial Orders Definition 4.9 (Partial order) A partial order (PO) (D, ⊑) consists of a set D, called domain, and of a relation

⊑ ⊆ D × D such that, for every d1, d2, d3 ∈ D,

reflexivity: d1 ⊑ d1 transitivity: d1 ⊑ d2 and d2 ⊑ d3 =

⇒ d1 ⊑ d3

antisymmetry: d1 ⊑ d2 and d2 ⊑ d1 =

⇒ d1 = d2

It is called total if, in addition, always d1 ⊑ d2 or d2 ⊑ d1. Example 4.10

  • 1. (N, ≤) is a total partial order
  • 2. (N, <) is not a partial order (since not reflexive)
  • 3. (2N, ⊆) is a (non-total) partial order
  • 4. (Σ∗, ⊑) is a (non-total) partial order, where Σ is some alphabet and ⊑ denotes prefix
  • rdering (u ⊑ v ⇐

⇒ ∃w ∈ Σ∗ : uw = v)

21 of 24 Concurrency Theory Winter Semester 2019/20 Lecture 4: Hennessy-Milner Logic with Recursion

slide-48
SLIDE 48

Algebraic Foundations Upper and Lower Bounds Definition 4.11 ((Least) upper bounds and (greatest) lower bounds) Let (D, ⊑) be a partial order and T ⊆ D.

  • 1. An element d ∈ D is called an upper bound of T if t ⊑ d for every t ∈ T (notation: T ⊑ d).

It is called least upper bound (LUB) (or supremum) of T if additionally d ⊑ d′ for every upper bound d′ of T (notation: d = T).

22 of 24 Concurrency Theory Winter Semester 2019/20 Lecture 4: Hennessy-Milner Logic with Recursion

slide-49
SLIDE 49

Algebraic Foundations Upper and Lower Bounds Definition 4.11 ((Least) upper bounds and (greatest) lower bounds) Let (D, ⊑) be a partial order and T ⊆ D.

  • 1. An element d ∈ D is called an upper bound of T if t ⊑ d for every t ∈ T (notation: T ⊑ d).

It is called least upper bound (LUB) (or supremum) of T if additionally d ⊑ d′ for every upper bound d′ of T (notation: d = T).

  • 2. An element d ∈ D is called an lower bound of T if d ⊑ t for every t ∈ T (notation: d ⊑ T).

It is called greatest lower bound (GLB) (or infimum) of T if d′ ⊑ d for every lower bound d′

  • f T (notation: d = T).

22 of 24 Concurrency Theory Winter Semester 2019/20 Lecture 4: Hennessy-Milner Logic with Recursion

slide-50
SLIDE 50

Algebraic Foundations Upper and Lower Bounds Definition 4.11 ((Least) upper bounds and (greatest) lower bounds) Let (D, ⊑) be a partial order and T ⊆ D.

  • 1. An element d ∈ D is called an upper bound of T if t ⊑ d for every t ∈ T (notation: T ⊑ d).

It is called least upper bound (LUB) (or supremum) of T if additionally d ⊑ d′ for every upper bound d′ of T (notation: d = T).

  • 2. An element d ∈ D is called an lower bound of T if d ⊑ t for every t ∈ T (notation: d ⊑ T).

It is called greatest lower bound (GLB) (or infimum) of T if d′ ⊑ d for every lower bound d′

  • f T (notation: d = T).

Example 4.12

  • 1. T ⊆ N has a LUB/GLB in (N, ≤) iff it is finite/non-empty

22 of 24 Concurrency Theory Winter Semester 2019/20 Lecture 4: Hennessy-Milner Logic with Recursion

slide-51
SLIDE 51

Algebraic Foundations Upper and Lower Bounds Definition 4.11 ((Least) upper bounds and (greatest) lower bounds) Let (D, ⊑) be a partial order and T ⊆ D.

  • 1. An element d ∈ D is called an upper bound of T if t ⊑ d for every t ∈ T (notation: T ⊑ d).

It is called least upper bound (LUB) (or supremum) of T if additionally d ⊑ d′ for every upper bound d′ of T (notation: d = T).

  • 2. An element d ∈ D is called an lower bound of T if d ⊑ t for every t ∈ T (notation: d ⊑ T).

It is called greatest lower bound (GLB) (or infimum) of T if d′ ⊑ d for every lower bound d′

  • f T (notation: d = T).

Example 4.12

  • 1. T ⊆ N has a LUB/GLB in (N, ≤) iff it is finite/non-empty
  • 2. In (2N, ⊆), every subset T ⊆ 2N has an LUB and GLB:
  • T =
  • T

and

  • T =
  • T

22 of 24 Concurrency Theory Winter Semester 2019/20 Lecture 4: Hennessy-Milner Logic with Recursion

slide-52
SLIDE 52

Algebraic Foundations Complete Lattices Definition 4.13 (Complete lattice) A complete lattice is a partial order (D, ⊑) such that all subsets of D have LUBs and

  • GLBs. In this case,

⊥ :=

  • ∅ (=
  • D)

and

⊤ :=

  • ∅ (=
  • D)

respectively denote the least and greatest element of D.

23 of 24 Concurrency Theory Winter Semester 2019/20 Lecture 4: Hennessy-Milner Logic with Recursion

slide-53
SLIDE 53

Algebraic Foundations Complete Lattices Definition 4.13 (Complete lattice) A complete lattice is a partial order (D, ⊑) such that all subsets of D have LUBs and

  • GLBs. In this case,

⊥ :=

  • ∅ (=
  • D)

and

⊤ :=

  • ∅ (=
  • D)

respectively denote the least and greatest element of D. Example 4.14

  • 1. (N, ≤) is not a complete lattice as, e.g., N does not have a LUB

23 of 24 Concurrency Theory Winter Semester 2019/20 Lecture 4: Hennessy-Milner Logic with Recursion

slide-54
SLIDE 54

Algebraic Foundations Complete Lattices Definition 4.13 (Complete lattice) A complete lattice is a partial order (D, ⊑) such that all subsets of D have LUBs and

  • GLBs. In this case,

⊥ :=

  • ∅ (=
  • D)

and

⊤ :=

  • ∅ (=
  • D)

respectively denote the least and greatest element of D. Example 4.14

  • 1. (N, ≤) is not a complete lattice as, e.g., N does not have a LUB
  • 2. (N ∪ {∞}, ≤) with n ≤ ∞ for all n ∈ N is a complete lattice

23 of 24 Concurrency Theory Winter Semester 2019/20 Lecture 4: Hennessy-Milner Logic with Recursion

slide-55
SLIDE 55

Algebraic Foundations Complete Lattices Definition 4.13 (Complete lattice) A complete lattice is a partial order (D, ⊑) such that all subsets of D have LUBs and

  • GLBs. In this case,

⊥ :=

  • ∅ (=
  • D)

and

⊤ :=

  • ∅ (=
  • D)

respectively denote the least and greatest element of D. Example 4.14

  • 1. (N, ≤) is not a complete lattice as, e.g., N does not have a LUB
  • 2. (N ∪ {∞}, ≤) with n ≤ ∞ for all n ∈ N is a complete lattice
  • 3. (2N, ⊆) is a complete lattice

23 of 24 Concurrency Theory Winter Semester 2019/20 Lecture 4: Hennessy-Milner Logic with Recursion

slide-56
SLIDE 56

Algebraic Foundations Application to HML with Recursion Lemma 4.15 Let (S, Act, −

→) be an LTS. Then (2S, ⊆) is a complete lattice with

  • T = T =

T∈T T for all T ⊆ 2S

  • T = T =

T∈T T for all T ⊆ 2S

24 of 24 Concurrency Theory Winter Semester 2019/20 Lecture 4: Hennessy-Milner Logic with Recursion

slide-57
SLIDE 57

Algebraic Foundations Application to HML with Recursion Lemma 4.15 Let (S, Act, −

→) be an LTS. Then (2S, ⊆) is a complete lattice with

  • T = T =

T∈T T for all T ⊆ 2S

  • T = T =

T∈T T for all T ⊆ 2S

  • ⊥ = ∅ = 2S = ∅
  • ⊤ = ∅ =

2S = S

24 of 24 Concurrency Theory Winter Semester 2019/20 Lecture 4: Hennessy-Milner Logic with Recursion

slide-58
SLIDE 58

Algebraic Foundations Application to HML with Recursion Lemma 4.15 Let (S, Act, −

→) be an LTS. Then (2S, ⊆) is a complete lattice with

  • T = T =

T∈T T for all T ⊆ 2S

  • T = T =

T∈T T for all T ⊆ 2S

  • ⊥ = ∅ = 2S = ∅
  • ⊤ = ∅ =

2S = S

Proof.

  • mitted

24 of 24 Concurrency Theory Winter Semester 2019/20 Lecture 4: Hennessy-Milner Logic with Recursion