Professional Documents
Culture Documents
Formal Methods of S/W Development: Department of Computer Science
Formal Methods of S/W Development: Department of Computer Science
2
Review of Lecture 7
A high-level petri net 𝑁 = (𝑃, 𝑇, 𝐹, 𝜑, 𝑅, 𝐿, 𝑀0)
𝑃 is a set of places
𝑇 is a set of transitions
𝐹 is the flow relation 𝐹 ⊆ 𝑃 × 𝑇 ∪ (𝑇 × 𝑃)
𝜑 ∶ 𝑃 → 𝑇𝑦𝑝𝑒
𝑅 ∶ 𝑇 → 𝐹𝑜𝑟𝑚𝑢𝑙𝑎
𝐿 ∶ 𝐹 → 𝐿𝑎𝑏𝑒𝑙
𝑀0 is the initial marking
3
Review of Lecture 7 (cont.)
4
Temporal Logic
Representing and reasoning about propositions qualified
in terms of time
Examples:
Students are always late
Students will eventually be early
Students will be late until they lose points for tardiness
5
Temporal Logic (cont.)
In the temporal logics we consider that time is not
mentioned explicitly
6
Introduction to CTL*
We focus on a logic called CTL*,
in which formulas describe
properties of computation trees
8
Introduction to CTL* (cont.)
Temporal operators describe properties of a path
i.e., linear-time
X – Next
F – Future
G – Globally
U – Until
9
CTL* Syntax
CTL* combines branching-time and linear-time operators
Path quantifiers prefix an assertion composed of a
combination of temporal operators, e.g., A (FG) p
10
Kripke Structure
Let 𝐴𝑃 be a set of atomic propositions. A Kripke model 𝑀
over 𝐴𝑃 is a four tuple 𝑀 = 𝑆, 𝑆0, 𝑅, 𝐿 where,
𝑆 is a set of finite states
𝑆0 ⊆ 𝑆 is a set of initial states
𝑅 ⊆ 𝑆 × 𝑆 is a transition relation
𝐿 is a function that labels each state with a set of atomic
propositions true in that state
Sometimes we will not be concerned with 𝑆0, and hence omit it
from the definition, i.e., 𝑀 = 𝑆, 𝑅, 𝐿
11
Kripke Structure (cont.)
Our model of computation assumes that every state has at
least one possible successor, i.e.,
∀𝑠 ∈ 𝑆 ⋅ ∃𝑠 ′ ∈ 𝑆 such that (𝑠, 𝑠 ′ ) ∈ 𝑅
12
Core
Resource HLCC
Manager
...
13
Control
Strategy
HLCC
New Job RM γ
Over Heat
Action
Processing Complete
Pod
LLCC
α δ S
14
NJ
RM
Pod HLCC
HLCC RM Pr
PoD RM Pr
x x
Cm Pr OH CS
Cm Pr OH CS
x x x x x
Act
x x Act
x x
Pr
Pr
15
Cm Pr OH
Cm Pr OH
LTL and CTL
Two useful sublogics of CTL*, which are distinguished by
how they handle branching in the computational tree