0% found this document useful (0 votes)
27 views29 pages

CTL Slides

Uploaded by

Van Tien Le
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
27 views29 pages

CTL Slides

Uploaded by

Van Tien Le
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 29

A Crash Course on

Temporal Specifications

John Hatcliff [Kansas State]

Work on specification patterns by


Matthew Dwyer, Jay Corbett, and George Avrunin

http://www.cis.ksu.edu/santos/bandera
Reasoning about Executions
Conceptual View
?b1
L1 L4
?b0 Explored State-Space (computation tree)
?b1 !a1 !a0 ?err
[L1, (mt1, vr1), ….]
L2 L5
?err [L2, (mt2, vr2), ….]
?b0
?a1
[L3, (mt3, vr3), ….] [L5, (mt5, vr5), ….]
L3

 We want to reason about execution trees


– tree node = snap shot of the program’s state
 Reasoning consists of two layers
– defining predicates on the program states (control points,
variable values)
– expressing temporal relationships between those predicates
Computational Tree Logic (CTL)
Syntax

Φ ::= P …primitive propositions


| !Φ | Φ && Φ | Φ || Φ | Φ -> Φ …propositional connectives
| AG Φ | EG Φ | AF Φ | EF Φ …temporal operators
| AX Φ | EX Φ | A[Φ U Φ] | E[Φ U Φ]

Semantic Intuition
path quantifier
AG p …along All paths p holds Globally temporal operator

EG p …there Exists a path where p holds Globally

AF p …along All paths p holds at some state in the Future

EF p …there Exists a path where p holds at some state in the Future


Computational Tree Logic (CTL)
Syntax

Φ ::= P …primitive propositions


| !Φ | Φ && Φ | Φ || Φ | Φ -> Φ …propositional connectives
| AG Φ | EG Φ | AF Φ | EF Φ …path/temporal operators
| AX Φ | EX Φ | A[Φ U Φ] | E[Φ U Φ]

Semantic Intuition

AX p …along All paths, p holds in the neXt state

EX p …there Exists a path where p holds in the neXt state

A[p U q] …along All paths, p holds Until q holds

E[p U q] …there Exists a path where p holds Until q holds


Computation Tree Logic

AG p p

p p

p p p p

p p p p p p p p
Computation Tree Logic

EG p p

p
Computation Tree Logic

AF p

p p p p
Computation Tree Logic

EF p

p
Computation Tree Logic

AX p

p p

p p

p p p p p
Computation Tree Logic

EX p

p p p p
Computation Tree Logic

A[p U q]
p

p q

p p p

q q p p q
Computation Tree Logic

E[p U q]
p

p p q

q q p q
Example CTL Specifications
 For any state, a request (for some resource) will
eventually be acknowledged
AG(requested -> AF acknowledged)

 From any state, it is possible to get to a restart state


AG(EF restart)

 An upwards travelling elevator at the second floor


does not changes its direction when it has
passengers waiting to go to the fifth floor
AG((floor=2 && direction=up && button5pressed)
-> A[direction=up U floor=5])
CTL Notes
 Invented by E. Clarke and E. A. Emerson
(early 1980’s)
 Specification language for Symbolic Model
Verifier (SMV) model-checker
 SMV is a symbolic model-checker instead of
an explicit-state model-checker
 Symbolic model-checking uses Binary
Decision Diagrams (BDDs) to represent
boolean functions (both transition system and
specification
Linear Temporal Logic
Restrict path quantification to “ALL” (no “EXISTS”)

Reason in terms of linear traces instead of branching trees


Linear Temporal Logic (LTL)
Syntax

Φ ::= P …primitive propositions


| !Φ | Φ && Φ | Φ || Φ | Φ -> Φ …propositional connectives
| []Φ | <>Φ | Φ U Φ | X Φ …temporal operators

Semantic Intuition
ΦΦΦΦΦΦΦΦΦΦΦΦΦΦ
[]Φ …always Φ

Φ Φ
<>Φ …eventually Φ

ΦΦΦΦΦΦ Γ Φ Γ
Φ UΓ …Φ until Γ
LTL Notes

 Invented by Prior (1960’s), and first use to


reason about concurrent systems by A.
Pnueli, Z. Manna, etc.
 LTL model-checkers are usually explicit-state
checkers due to connection between LTL and
automata theory
 Most popular LTL-based checker is Spin
(G. Holzman)
Comparing LTL and CTL

CTL*
CTL LTL

 CTL is not strictly more expression than LTL (and


vice versa)
 CTL* invented by Emerson and Halpern in 1986 to
unify CTL and LTL
 We believe that almost all properties that one wants to express
about software lie in intersection of LTL and CTL
Motivation for
Specification Patterns
 Temporal properties are not always easy to write
 Clearly many specifications can be captured in both
CTL and LTL

Example: action Q must respond to action P

CTL: AG(P -> AF Q) LTL: [](P -> <>Q)

We use specification patterns to:

 Capure the experience base of expert designers


 Transfer that experience between practictioners.
Pattern Hierarchy
Property Patterns

Occurrence Order

Absence Bounded Existence Precedence Chain


Universality Existence Response
Response Chain
Precedence
Classification

 Occurrence Patterns:
– require states/events to occur or not to occur
 Order Patterns
– constrain the order of states/events
Occurrence Patterns

 Absence: A given state/event does not occur within a


scope
 Existence: A given state/event must occur within a
scope
 Bounded Existence: A given state/event must occur k
times within a scope
– variants: at least k times in scope, at most k times in scope
 Universality: A given state/event must occur
throughout a scope
Order Patterns
 Precedence: A state/event P must always be
preceded by a state/event Q within a scope
 Response: A state/event P must always be followed
a state/event Q within a scope
 Chain Precedence: A sequence of state/events P1,
…, Pn must always be preceded by a sequence of
states/events Q1, …, Qm within a scope
 Chain Response: A sequence of state/events P1, …,
Pn must always be followed by a sequence of
states/events Q1, …, Qm within a scope
Pattern Scopes
Global

Before Q

After Q

Between Q and R

After Q and R

State sequence Q R Q Q R Q
The Response Pattern
Intent
To describe cause-effect relationships between a pair of events/states. An
occurrence of the first, the cause, must be followed by an occurrence of the
second, the effect. Also known as Follows and Leads-to.
Mappings: In these mappings, P is the cause and S is the effect
Globally: [](P -> <>S)
LTL:
Before R: <>R -> (P -> (!R U (S & !R))) U R

After Q: [](Q -> [](P -> <>S))

Between Q and R: []((Q & !R & <>R) -> (P -> (!R U (S & !R))) U R)

After Q until R: [](Q & !R -> ((P -> (!R U (S & !R))) W R)
The Response Pattern (continued)
Mappings: In these mappings, P is the cause and S is the effect
Globally: AG(P -> AF(S))
CTL:
Before R: A[((P -> A[!R U (S & !R)]) | AG(!R)) W R]

After Q: A[!Q W (Q & AG(P -> AF(S))]

Between Q and R: AG(Q & !R -> A[((P -> A[!R U (S & !R)]) | AG(!R)) W R])

After Q until R: AG(Q & !R -> A[(P -> A[!R U (S & !R)]) W R])

Examples and Known Uses:


Response properties occur quite commonly in specifications of concurrent systems.
Perhaps the most common example is in describing a requirement that a resource
must be granted after it is requested.
Relationships
Note that a Response property is like a converse of a Precedence property.
Precedence says that some cause precedes each effect, and...
Specify Patterns in Bandera
The Bandera Pattern Library is populated by writing pattern macros:

pattern {
name = “Response”
scope = “Globally”
parameters = {P, S}
format = “{P} leads to {S} globally”
ltl = “[]({P} –> <>{S})”
ctl = “AG({P} –> AF({S}))”
}
Evaluation

 555 TL specs collected from at least 35 different


sources
 511 (92%) matched one of the patterns
 Of the matches...
– Response: 245 (48%)
– Universality: 119 (23%)
– Absence: 85 (17%)
Questions
 Do patterns facilitate the learning of specification
formalisms like CTL and LTL?
 Do patterns allow specifications to be written more
quickly?
 Are the specifications generated from patterns more
likely to be correct?
 Does the use of the pattern system lead people to
write more expressive specifications?

Based on anecdotal evidence, we believe the answer to each of these


questions is “yes”
For more information...

 Pattern web pages and papers


http://www.cis.ksu.edu/santos/spec-patterns

You might also like