Software Model Checking Linear Temporal Logic

20
Korea Advanced Institute of Science and Technology Copyright © 2006 CS750B Software Model Checking Software Model Checking Software Model Checking Linear Temporal Logic Linear Temporal Logic Moonzoo Kim CS Dept. KAIST

Transcript of Software Model Checking Linear Temporal Logic

Page 1: Software Model Checking Linear Temporal Logic

Korea Advanced Institute of Science and Technology

Copyright © 2006 CS750B Software Model Checking

Software Model CheckingSoftware Model Checking

Linear Temporal LogicLinear Temporal LogicMoonzoo Kim

CS Dept. KAIST

Page 2: Software Model Checking Linear Temporal Logic

CS750 Software Model Checking

Copyright © 2006

Comments on #3 of HW#1Comments on #3 of HW#1

Do not blindly repeat patterns you know!Squeeze out your specification to reduce # of state and transition

Comparison7 smart people in the class modeled Peterson’s mutual exclusion protocol including a process NumCrit

• # of states: 70, # of transition: 130One smarter person darely removed NumCrit

• # of states: 35, # of transition:70

Page 3: Software Model Checking Linear Temporal Logic

CS750 Software Model Checking

Copyright © 2006

HW#2 due Oct 10HW#2 due Oct 10Wolf, ram, and cabbage problem

Goal: move wolf, ram and cabbage to B Restriction: • Boat can deliver only 1 object with a person• Ram eats cabbage and wolf eats ram if a person is not with them

To do:• 1. Model this system in CCS

– When all of wolf, ram, and cabbage are delivered to B, the system should generate “finish” action and halt

• 2. Show that there exists a solution to the problem using simulation feature of CWB-NC

• 3. Show that there exists a solution using GCTL* model checking capability• 4. Show that there exists a solution using proper equivalence semantics

Page 4: Software Model Checking Linear Temporal Logic

CS750 Software Model Checking

Copyright © 2006

HW#2 (cont.)HW#2 (cont.)

RW problem of lecture 5RW system shown in lecture 5 does not faithfully model Java thread behavior. Point out difference between the model used in RW system and real Java thread behavior

• 1.Read “Threads” chapter of “The Java Programming Language” by K.Arnold and J.Gosling

– Optionally RW explanation in “Concurrent Programming in Java”by D.Lea

• 2. Analyze given RW specification in CCS• 3. Explain difference between the model and real Java threads• Hints: carefully looking at thread suspension, scheduling, wait,

and notify mechanism

Modify the model to reflect real Java thread behavior

Page 5: Software Model Checking Linear Temporal Logic
Page 6: Software Model Checking Linear Temporal Logic
Page 7: Software Model Checking Linear Temporal Logic
Page 8: Software Model Checking Linear Temporal Logic
Page 9: Software Model Checking Linear Temporal Logic
Page 10: Software Model Checking Linear Temporal Logic
Page 11: Software Model Checking Linear Temporal Logic
Page 12: Software Model Checking Linear Temporal Logic
Page 13: Software Model Checking Linear Temporal Logic
Page 14: Software Model Checking Linear Temporal Logic
Page 15: Software Model Checking Linear Temporal Logic
Page 16: Software Model Checking Linear Temporal Logic
Page 17: Software Model Checking Linear Temporal Logic
Page 18: Software Model Checking Linear Temporal Logic
Page 19: Software Model Checking Linear Temporal Logic

CS750 Software Model Checking

Copyright © 2006

Relationship among Various Temporal LogicsRelationship among Various Temporal Logics

Linear Temporal Logic (LTL)

Computational Tree Logic (CTL)

CTL*

Page 20: Software Model Checking Linear Temporal Logic

CS750 Software Model Checking

Copyright © 2006

Combined Buffer Example in Lecture 3Combined Buffer Example in Lecture 3

(b―’.Bufab | b+’.Bufbc)\L

(b―’.Bufab | Bufbc)\L (Bufab | b+’.Bufbc)\L

(Bufab | c―’.Bufbc)\L (a―’.Bufab | Buf.bc)\L

Sys

a+c+

a+c+

c―’ a―’

τ1τ2

Copyright© Jinseong Jeon

(b―’.Bufab | c―’.Bufbc)\L (a―’Bufab | b+’.Bufbc)\L

a+

c―’ a―’

c+

deadlock