• Tidak ada hasil yang ditemukan

Week-1: Introduction to model checking

N/A
N/A
Protected

Academic year: 2024

Membagikan "Week-1: Introduction to model checking"

Copied!
38
0
0

Teks penuh

(1)

Week-1: Introduction to model checking

B. Srivathsan

Chennai Mathematical Institute

NPTEL-course July - November 2015

1/15

(2)

Module 2:

Modeling hardware circuits

2/15

(3)

x1

XOR

x2 y

0 0 0

0 1 1

1 0 1

1 1 0

x1 x2 y

x1

AND

x2 y

0 0 0

0 1 0

1 0 0

1 1 1

x1 x2 y

x

NOT

y

0 1

1 0

x y

x1

OR

x2 y

0 0 0

0 1 1

1 0 1

1 1 1

x1 x2 y

3/15

(4)

y = NOT ( XOR (x

1

, x

2

) )

XOR NOT

x1

x2 y

0 0 1

0 1 0

1 0 0

1 1 1

x1 x2 y

4/15

(5)

y = NOT ( XOR (x

1

, x

2

) )

XOR NOT

x1

x2 y

0 0 1

0 1 0

1 0 0

1 1 1

x1 x2 y

4/15

(6)

y = NOT ( XOR (x

1

, x

2

) )

XOR NOT

x1

x2 y

0 0 1

0 1 0

1 0 0

1 1 1

x1 x2 y

4/15

(7)

y= NOT(XOR(x,r) )

rnext = XOR(x,r)

XOR NOT

x

y

r register

Ø Ø Ø Ø Ø Ø Ø Ø Ø

x r y

1 0 0

1 1 1

0

1 0

1

0 0

1

1 1

1 0 0

0 1 0

0 1 0

1 1 1

0 0 1

· · ·

x=0,r=0,y=1 x=1,r=0,y=0

x=0,r=1,y=0 x=1,r=1,y=1

Ø

Ø Ø Ø

Ø

Ø Ø

Ø

5/15

(8)

y= NOT(XOR(x,r) ) rnext = XOR(x,r)

XOR NOT

x

y

r register

Ø Ø Ø Ø Ø Ø Ø Ø Ø

x r y

1 0 0

1 1 1

0

1 0

1

0 0

1

1 1

1 0 0

0 1 0

0 1 0

1 1 1

0 0 1

· · ·

x=0,r=0,y=1 x=1,r=0,y=0

x=0,r=1,y=0 x=1,r=1,y=1

Ø

Ø Ø Ø

Ø

Ø Ø

Ø

5/15

(9)

y= NOT(XOR(x,r) ) rnext = XOR(x,r)

XOR NOT

x

y

r register

Ø Ø Ø Ø Ø Ø Ø Ø Ø

x r y

1 0 0

1 1 1

0

1 0

1

0 0

1

1 1

1 0 0

0 1 0

0 1 0

1 1 1

0 0 1

· · ·

x=0,r=0,y=1 x=1,r=0,y=0

x=0,r=1,y=0 x=1,r=1,y=1

Ø

Ø Ø Ø

Ø

Ø Ø

Ø

5/15

(10)

y= NOT(XOR(x,r) ) rnext = XOR(x,r)

XOR NOT

x

y

r register

Ø Ø Ø Ø Ø Ø Ø Ø Ø

x r y

1 0 0

1

1

1 0

1 0

1

0 0

1

1 1

1 0 0

0 1 0

0 1 0

1 1 1

0 0 1

· · ·

x=0,r=0,y=1 x=1,r=0,y=0

x=0,r=1,y=0 x=1,r=1,y=1

Ø

Ø Ø Ø

Ø

Ø Ø

Ø

5/15

(11)

y= NOT(XOR(x,r) ) rnext = XOR(x,r)

XOR NOT

x

y

r register

Ø Ø Ø Ø Ø Ø Ø Ø Ø

x r y

1 0 0

1 1 1

0

1 0

1

0 0

1

1 1

1 0 0

0 1 0

0 1 0

1 1 1

0 0 1

· · ·

x=0,r=0,y=1 x=1,r=0,y=0

x=0,r=1,y=0 x=1,r=1,y=1

Ø

Ø Ø Ø

Ø

Ø Ø

Ø

5/15

(12)

y= NOT(XOR(x,r) ) rnext = XOR(x,r)

XOR NOT

x

y

r register

Ø Ø Ø Ø Ø Ø Ø Ø Ø

x r y

1 0 0

1 1 1

0

1

0

1

0 0

1

1 1

1 0 0

0 1 0

0 1 0

1 1 1

0 0 1

· · ·

x=0,r=0,y=1 x=1,r=0,y=0

x=0,r=1,y=0 x=1,r=1,y=1

Ø

Ø Ø Ø

Ø

Ø Ø

Ø

5/15

(13)

y= NOT(XOR(x,r) ) rnext = XOR(x,r)

XOR NOT

x

y

r register

Ø Ø Ø Ø Ø Ø Ø Ø Ø

x r y

1 0 0

1 1 1

0

1 0

1

0 0

1

1 1

1 0 0

0 1 0

0 1 0

1 1 1

0 0 1

· · ·

x=0,r=0,y=1 x=1,r=0,y=0

x=0,r=1,y=0 x=1,r=1,y=1

Ø

Ø Ø Ø

Ø

Ø Ø

Ø

5/15

(14)

y= NOT(XOR(x,r) ) rnext = XOR(x,r)

XOR NOT

x

y

r register

Ø Ø Ø Ø Ø Ø Ø Ø Ø

x r y

1 0 0

1 1 1

0

1 0

1

0

0

1

1 1

1 0 0

0 1 0

0 1 0

1 1 1

0 0 1

· · ·

x=0,r=0,y=1 x=1,r=0,y=0

x=0,r=1,y=0 x=1,r=1,y=1

Ø

Ø Ø Ø

Ø

Ø Ø

Ø

5/15

(15)

y= NOT(XOR(x,r) ) rnext = XOR(x,r)

XOR NOT

x

y

r register

Ø Ø Ø Ø Ø Ø Ø Ø Ø

x r y

1 0 0

1 1 1

0

1 0

1

0 0

1

1 1

1 0 0

0 1 0

0 1 0

1 1 1

0 0 1

· · ·

x=0,r=0,y=1 x=1,r=0,y=0

x=0,r=1,y=0 x=1,r=1,y=1

Ø

Ø Ø Ø

Ø

Ø Ø

Ø

5/15

(16)

y= NOT(XOR(x,r) ) rnext = XOR(x,r)

XOR NOT

x

y

r register

Ø Ø Ø Ø Ø Ø Ø Ø Ø

x r y

1 0 0

1 1 1

0

1 0

1

0 0

1

1

1

1 0 0

0 1 0

0 1 0

1 1 1

0 0 1

· · ·

x=0,r=0,y=1 x=1,r=0,y=0

x=0,r=1,y=0 x=1,r=1,y=1

Ø

Ø Ø Ø

Ø

Ø Ø

Ø

5/15

(17)

y= NOT(XOR(x,r) ) rnext = XOR(x,r)

XOR NOT

x

y

r register

Ø Ø Ø Ø Ø Ø Ø Ø Ø

x r y

1 0 0

1 1 1

0

1 0

1

0 0

1

1 1

1 0 0

0 1 0

0 1 0

1 1 1

0 0 1

· · ·

x=0,r=0,y=1 x=1,r=0,y=0

x=0,r=1,y=0 x=1,r=1,y=1

Ø

Ø Ø Ø

Ø

Ø Ø

Ø

5/15

(18)

y= NOT(XOR(x,r) ) rnext = XOR(x,r)

XOR NOT

x

y

r register

Ø Ø Ø Ø Ø Ø Ø Ø Ø

x r y

1 0 0

1 1 1

0

1 0

1

0 0

1

1 1

1 0 0

0 1 0

0 1 0

1 1 1

0 0 1

· · ·

x=0,r=0,y=1 x=1,r=0,y=0

x=0,r=1,y=0 x=1,r=1,y=1

Ø

Ø Ø Ø

Ø

Ø Ø

Ø

5/15

(19)

y= NOT(XOR(x,r) ) rnext = XOR(x,r)

XOR NOT

x

y

r register

Ø Ø Ø Ø Ø Ø Ø Ø Ø

x r y

1 0 0

1 1 1

0

1 0

1

0 0

1

1 1

1 0 0

0 1 0

0 1 0

1 1 1

0 0 1

· · ·

x=0,r=0,y=1 x=1,r=0,y=0

x=0,r=1,y=0 x=1,r=1,y=1

Ø

Ø Ø Ø

Ø

Ø Ø

Ø

5/15

(20)

y= NOT(XOR(x,r) ) rnext = XOR(x,r)

XOR NOT

x

y

r register

Ø Ø Ø Ø Ø Ø Ø Ø Ø

x r y

1 0 0

1 1 1

0

1 0

1

0 0

1

1 1

1 0 0

0 1 0

0 1 0

1 1 1

0 0 1

· · ·

x=0,r=0,y=1 x=1,r=0,y=0

x=0,r=1,y=0 x=1,r=1,y=1

Ø

Ø Ø Ø

Ø

Ø Ø

Ø

5/15

(21)

y= NOT(XOR(x,r) ) rnext = XOR(x,r)

XOR NOT

x

y

r register

Ø Ø Ø Ø Ø Ø Ø Ø Ø

x r y

1 0 0

1 1 1

0

1 0

1

0 0

1

1 1

1 0 0

0 1 0

0 1 0

1 1 1

0 0 1

· · ·

x=0,r=0,y=1 x=1,r=0,y=0

x=0,r=1,y=0 x=1,r=1,y=1

Ø

Ø

Ø Ø

Ø

Ø Ø

Ø

5/15

(22)

y= NOT(XOR(x,r) ) rnext = XOR(x,r)

XOR NOT

x

y

r register

Ø Ø Ø Ø Ø Ø Ø Ø Ø

x r y

1 0 0

1 1 1

0

1 0

1

0 0

1

1 1

1 0 0

0 1 0

0 1 0

1 1 1

0 0 1

· · ·

x=0,r=0,y=1 x=1,r=0,y=0

x=0,r=1,y=0 x=1,r=1,y=1

Ø

Ø Ø Ø

Ø

Ø Ø

Ø

5/15

(23)

y= NOT(XOR(x,r) ) rnext = XOR(x,r)

XOR NOT

x

y

r register

Ø Ø Ø Ø Ø Ø Ø Ø Ø

x r y

1 0 0

1 1 1

0

1 0

1

0 0

1

1 1

1 0 0

0 1 0

0 1 0

1 1 1

0 0 1

· · ·

x=0,r=0,y=1 x=1,r=0,y=0

x=0,r=1,y=0 x=1,r=1,y=1

Ø

Ø Ø Ø

Ø

Ø Ø

Ø

5/15

(24)

x=0,r=0,y=1 x=1,r=0,y=0

x=0,r=1,y=0 x=1,r=1,y=1

Ø

Ø Ø Ø

Ø

Ø Ø

Ø

Non-deterministic transition system

More than one initial state

States with more than one transition on an action

6/15

(25)

x=0,r=0,y=1 x=1,r=0,y=0

x=0,r=1,y=0 x=1,r=1,y=1

Ø

Ø Ø Ø

Ø

Ø Ø

Ø

Non-deterministic transition system

More than one initial state

States with more than one transition on an action

6/15

(26)

x=0,r=0,y=1 x=1,r=0,y=0

x=0,r=1,y=0 x=1,r=1,y=1

Ø

Ø Ø Ø

Ø

Ø Ø

Ø

Non-deterministic transition system

More than one initial state

States with more than one transition on an action

6/15

(27)

Transition Systems

Deterministic Single initial state

and

Non-deterministic Multiple initial states

or

s r s r

1

r

2

r

m

a a

a a

...

7/15

(28)

Coming next: examples of deterministic and non-deterministic transition systems

8/15

(29)

Non-deterministic

q0 a q1

a b

q0 q1

q2 b

b

a a

b a

q0 a q1

b b

Deterministic

q0 a q1

b b

q0 q1

q2 b

b

a a

c c

q0 a q1

b b

9/15

(30)

Model of ATM

IDLE PIN? TRAN

BAL DRAW

MORE $$

insert_card

wrong

correct

balance withdrawal

print

amount

cash

no yes

no

Deterministic transition system

10/15

(31)

Model of ATM

IDLE PIN? TRAN

BAL DRAW

MORE $$

insert_card

wrong

correct

balance withdrawal

print

amount

cash

no yes

no

Deterministic transition system

10/15

(32)

Model of vending machine

IDLE

SELECT

W C

coin

water cola

get_water get_cola

Deterministic transition system

11/15

(33)

Model of vending machine

IDLE

SELECT

W C

coin

water cola

get_water get_cola

Deterministic transition system

11/15

(34)

Model of hardware circuit

x=0,r=0,y=1 x=1,r=0,y=0

x=0,r=1,y=0 x=1,r=1,y=1

Non-deterministic transition system: to model incomplete information

12/15

(35)

Model of hardware circuit

x=0,r=0,y=1 x=1,r=0,y=0

x=0,r=1,y=0 x=1,r=1,y=1

Non-deterministic transition system: to model incomplete information

12/15

(36)

Coming next: Another example of hardware circuit

13/15

(37)

XOR NOT

OR

r

x y

x=0,r=0,y=1 x=1,r=0,y=0

x=0,r=1,y=0 x=1,r=1,y=1

14/15

(38)

Summary

Hardware Circuits

Modeling using transition systems

Non-determinism

Reference:Principles of Model Checking,Baier and Katoen, MIT Press (2008) Pages 26 - 29

15/15

Referensi

Dokumen terkait