5
1. Write down a C program and a Promela model to solve the Tower of Hanoi game (3 poles and 4 disks) by using CBMC and Spin Hint: you may non-deterministically select the disk to move Find and describe the shortest solution by analyzing counter examples. Also explain why your solution is the shortest one. Use non-determinism and __CPROVER_assume() properly for the moving choice Use assert statement to detect when all the disks are moved to the destination Report the complexity of the problem i.e., # of clauses and variables, # of states, memory usage, verification time, etc. HW #5 Due Nov 14 23:59

HW #5 Due Nov 14 23:59

  • Upload
    maris

  • View
    42

  • Download
    1

Embed Size (px)

DESCRIPTION

HW #5 Due Nov 14 23:59. 1. Write down a C program and a Promela model to solve the Tower of Hanoi game (3 poles and 4 disks) by using CBMC and Spin Hint : you may non-deterministically select the disk to move - PowerPoint PPT Presentation

Citation preview

Page 1: HW #5 Due Nov 14 23:59

1. Write down a C program and a Promela model to solve the Tower of Hanoi game (3 poles and 4 disks) by using CBMC and Spin

• Hint: you may non-deterministically select the disk to move

• Find and describe the shortest solution by analyzing counter examples. Also explain why your solution is the shortest one. – Use non-determinism and __CPROVER_assume() properly for the moving

choice– Use assert statement to detect when all the disks are moved to the desti-

nation • Report the complexity of the problem

– i.e., # of clauses and variables, # of states, memory usage, verification time, etc.

HW #5 Due Nov 14 23:59

Page 2: HW #5 Due Nov 14 23:59

Q2:Royal Garden’s Puzzle as a Model Checking Problem

Pictures from UbiSoft

Page 4: HW #5 Due Nov 14 23:59

R1 R2 R3 R4

R8 R9 R10 R11

R5 R6 R7H1 H2

H3 H4

Source

Sink Han-dle

Areas rotated

H1 R1,R2,R5,R6H2 R2,R3,R4,R6,R7H3 R5,R6,R8,R9,R10H4 -R6,R7,-R10,R11

Type A

Type B

Type C

Page 5: HW #5 Due Nov 14 23:59

2. Write down a Promela model program to model the game and get a solution by using Spin

– Use assert statement to detect when the route is established - Find and explain the shortest solution by and analyzing

counter examples. Also show that why your solution is the

shortest one for the route (Hint: there exists a solution less than 10 steps)

• Report the complexity of the problem– i.e., # of clauses and variables, # of states, memory usage, verification

time, etc.