-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy paththreeby3_1.spc
49 lines (36 loc) · 1.34 KB
/
threeby3_1.spc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# AERE 507X: Final course project
# Saveri Pal
# .spc file in gr1py
# Contains a 3 X 3 grid with two obstacles.
# |I| |G|
# | | | |
# |*|*|*|
#
ENV: ;
# Defining grid scope: number of cells
SYS: Y_0_0 Y_0_1 Y_0_2 Y_1_0 Y_1_1 Y_1_2 Y_2_0 Y_2_1 Y_2_2;
ENVINIT: ;
ENVTRANS: ;
ENVGOAL: ;
# Initial position: Only one starting point
SYSINIT: (Y_0_0 & !Y_0_1 & !Y_0_2 & !Y_1_0 & !Y_1_1 & !Y_1_2 & !Y_2_0 & !Y_2_1 & !Y_2_2);
# Defining all possible movements from one cell
SYSTRANS: [](Y_0_0 -> (Y_0_0' | Y_0_1' | Y_0_2))
& [](Y_0_1 -> (Y_0_1' | Y_0_2' | Y_1_1' | Y_0_0))
& [](Y_0_2 -> (Y_0_2'))
& [](Y_1_0 -> (Y_1_0' | Y_0_0' | Y_1_1'))
& [](Y_1_1 -> (Y_1_1' | Y_1_2' | Y_1_0' | Y_0_1))
& [](Y_1_2 -> (Y_1_2' | Y_1_1' | Y_0_2'))
# Defining the blocked cells; the obstacles
& [](!(Y_2_0'))
& [](!(Y_2_1'))
& [](!(Y_2_2'))
# At any instant of time, the pointer can be at only one position
& []((Y_0_0' & (!Y_0_1') & (!Y_0_2') & (!Y_1_0') & (!Y_1_1') & (!Y_1_2'))
| (Y_0_2' & (!Y_0_0') & (!Y_1_0') & (!Y_1_1') & (!Y_1_2') & (!Y_0_1'))
| (Y_1_0' & (!Y_0_0') & (!Y_0_2') & (!Y_1_1') & (!Y_1_2') & (!Y_0_1'))
| (Y_1_1' & (!Y_0_0') & (!Y_0_2') & (!Y_1_0') & (!Y_1_2') & (!Y_0_1'))
| (Y_1_2' & (!Y_0_0') & (!Y_1_0') & (!Y_1_1') & (!Y_0_2') & (!Y_0_1'))
| (Y_0_1' & (!Y_0_0') & (!Y_1_0') & (!Y_1_1') & (!Y_1_2') & (!Y_0_2')));
# Defining the Goal position
SYSGOAL: []<>(Y_0_2);