You are not logged in. login register
Game vacuumcleaner_obstacles_7
name vacuumcleaner_obstacles_7
creator stephan
number of roles 1
stylesheet vacuumcleaner/vacuumcleaner.xsl
GDL v2
enabled
matches show matches
statistics show game statistics
description vacuum cleaner world with obstacles

Game Description

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Vacuum cleaner world with obstacles
;;
;; Author: Stephan Schiffel
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;; Fluents
;;;;;;;;;;
;; at(?x,?m,?n)     ?x :: agent | obstacle | dirt
;;                  ?m,?n :: 1 | 2 | 3 | 4 | ...
;; orientation(?o)  ?o :: north | south | east | west
;; stopped
;; step(?x)         ?x :: 1 | 2 | 3 | ... | 60
;;
;; Actions
;;;;;;;;;;
;; turn_on; go; turn_left; turn_right; suck; turn_off
;;
;; Percepts
;;;;;;;;;;;
;; bump; dirt
;;

;; roles and initial state

(role agent)

(init (orientation north))

(size 20 40)

(init (home 1 38))

(init (at dirt 20 37))
(init (at dirt 2 33))
(init (at dirt 15 28))
; (init (at dirt 7 26))
; (init (at dirt 13 25))
(init (at dirt 4 17))
; (init (at dirt 1 15))
; (init (at dirt 15 15))
(init (at dirt 16 6))
(init (at dirt 5 2))
(init (at obstacle 4 40))
(init (at obstacle 5 40))
(init (at obstacle 12 40))
(init (at obstacle 13 40))
(init (at obstacle 14 40))
(init (at obstacle 15 40))
(init (at obstacle 16 40))
(init (at obstacle 17 40))
(init (at obstacle 18 40))
(init (at obstacle 19 40))
(init (at obstacle 12 39))
(init (at obstacle 13 39))
(init (at obstacle 3 38))
(init (at obstacle 4 38))
(init (at obstacle 5 38))
(init (at obstacle 6 38))
(init (at obstacle 7 38))
(init (at obstacle 8 38))
(init (at obstacle 12 38))
(init (at obstacle 18 38))
(init (at obstacle 19 38))
(init (at obstacle 1 37))
(init (at obstacle 2 37))
(init (at obstacle 3 37))
(init (at obstacle 4 37))
(init (at obstacle 5 37))
(init (at obstacle 6 37))
(init (at obstacle 7 37))
(init (at obstacle 8 37))
(init (at obstacle 18 37))
(init (at obstacle 19 37))
(init (at obstacle 2 36))
(init (at obstacle 5 36))
(init (at obstacle 6 36))
(init (at obstacle 8 36))
(init (at obstacle 18 36))
(init (at obstacle 19 36))
(init (at obstacle 2 35))
(init (at obstacle 5 35))
(init (at obstacle 6 35))
(init (at obstacle 8 35))
(init (at obstacle 12 35))
(init (at obstacle 8 34))
(init (at obstacle 12 34))
(init (at obstacle 14 34))
(init (at obstacle 15 34))
(init (at obstacle 16 34))
(init (at obstacle 17 34))
(init (at obstacle 18 34))
(init (at obstacle 19 34))
(init (at obstacle 3 33))
(init (at obstacle 4 33))
(init (at obstacle 8 33))
(init (at obstacle 12 33))
(init (at obstacle 14 33))
(init (at obstacle 15 33))
(init (at obstacle 16 33))
(init (at obstacle 17 33))
(init (at obstacle 18 33))
(init (at obstacle 19 33))
(init (at obstacle 3 32))
(init (at obstacle 4 32))
(init (at obstacle 8 32))
(init (at obstacle 12 32))
(init (at obstacle 14 32))
(init (at obstacle 15 32))
(init (at obstacle 16 32))
(init (at obstacle 17 32))
(init (at obstacle 18 32))
(init (at obstacle 19 32))
(init (at obstacle 12 31))
(init (at obstacle 14 31))
(init (at obstacle 15 31))
(init (at obstacle 16 31))
(init (at obstacle 17 31))
(init (at obstacle 18 31))
(init (at obstacle 19 31))
(init (at obstacle 1 30))
(init (at obstacle 12 30))
(init (at obstacle 13 30))
(init (at obstacle 14 30))
(init (at obstacle 15 30))
(init (at obstacle 16 30))
(init (at obstacle 17 30))
(init (at obstacle 18 30))
(init (at obstacle 19 30))
(init (at obstacle 20 30))
(init (at obstacle 1 29))
(init (at obstacle 7 29))
(init (at obstacle 8 29))
(init (at obstacle 12 29))
(init (at obstacle 14 29))
(init (at obstacle 17 29))
(init (at obstacle 18 29))
(init (at obstacle 8 28))
(init (at obstacle 12 28))
(init (at obstacle 14 28))
(init (at obstacle 17 28))
(init (at obstacle 18 28))
(init (at obstacle 20 28))
(init (at obstacle 2 27))
(init (at obstacle 3 27))
(init (at obstacle 4 27))
(init (at obstacle 8 27))
(init (at obstacle 12 27))
(init (at obstacle 2 26))
(init (at obstacle 3 26))
(init (at obstacle 4 26))
(init (at obstacle 8 26))
(init (at obstacle 12 26))
(init (at obstacle 15 26))
(init (at obstacle 16 26))
(init (at obstacle 2 25))
(init (at obstacle 3 25))
(init (at obstacle 4 25))
(init (at obstacle 8 25))
(init (at obstacle 12 25))
(init (at obstacle 15 25))
(init (at obstacle 16 25))
(init (at obstacle 2 24))
(init (at obstacle 3 24))
(init (at obstacle 4 24))
(init (at obstacle 8 24))
(init (at obstacle 20 24))
(init (at obstacle 1 23))
(init (at obstacle 2 23))
(init (at obstacle 3 23))
(init (at obstacle 4 23))
(init (at obstacle 5 23))
(init (at obstacle 6 23))
(init (at obstacle 7 23))
(init (at obstacle 8 23))
(init (at obstacle 20 23))
(init (at obstacle 1 22))
(init (at obstacle 2 22))
(init (at obstacle 3 22))
(init (at obstacle 4 22))
(init (at obstacle 5 22))
(init (at obstacle 8 22))
(init (at obstacle 12 22))
(init (at obstacle 1 21))
(init (at obstacle 2 21))
(init (at obstacle 3 21))
(init (at obstacle 4 21))
(init (at obstacle 5 21))
(init (at obstacle 8 21))
(init (at obstacle 12 21))
(init (at obstacle 8 20))
(init (at obstacle 12 20))
(init (at obstacle 15 20))
(init (at obstacle 16 20))
(init (at obstacle 17 20))
(init (at obstacle 20 20))
(init (at obstacle 2 19))
(init (at obstacle 12 19))
(init (at obstacle 15 19))
(init (at obstacle 16 19))
(init (at obstacle 17 19))
(init (at obstacle 20 19))
(init (at obstacle 1 18))
(init (at obstacle 2 18))
(init (at obstacle 3 18))
(init (at obstacle 12 18))
(init (at obstacle 15 18))
(init (at obstacle 16 18))
(init (at obstacle 17 18))
(init (at obstacle 20 18))
(init (at obstacle 1 17))
(init (at obstacle 2 17))
(init (at obstacle 3 17))
(init (at obstacle 5 17))
(init (at obstacle 8 17))
(init (at obstacle 12 17))
(init (at obstacle 15 17))
(init (at obstacle 16 17))
(init (at obstacle 17 17))
(init (at obstacle 1 16))
(init (at obstacle 2 16))
(init (at obstacle 3 16))
(init (at obstacle 8 16))
(init (at obstacle 12 16))
(init (at obstacle 13 16))
(init (at obstacle 14 16))
(init (at obstacle 15 16))
(init (at obstacle 16 16))
(init (at obstacle 17 16))
(init (at obstacle 18 16))
(init (at obstacle 19 16))
(init (at obstacle 20 16))
(init (at obstacle 8 15))
(init (at obstacle 12 15))
(init (at obstacle 2 14))
(init (at obstacle 8 14))
(init (at obstacle 12 14))
(init (at obstacle 14 14))
(init (at obstacle 15 14))
(init (at obstacle 16 14))
(init (at obstacle 17 14))
(init (at obstacle 18 14))
(init (at obstacle 19 14))
(init (at obstacle 8 13))
(init (at obstacle 12 13))
(init (at obstacle 14 13))
(init (at obstacle 15 13))
(init (at obstacle 16 13))
(init (at obstacle 17 13))
(init (at obstacle 18 13))
(init (at obstacle 19 13))
(init (at obstacle 1 12))
(init (at obstacle 2 12))
(init (at obstacle 3 12))
(init (at obstacle 6 12))
(init (at obstacle 7 12))
(init (at obstacle 8 12))
(init (at obstacle 12 12))
(init (at obstacle 18 12))
(init (at obstacle 19 12))
(init (at obstacle 12 11))
(init (at obstacle 13 11))
(init (at obstacle 14 11))
(init (at obstacle 18 11))
(init (at obstacle 19 11))
(init (at obstacle 12 10))
(init (at obstacle 13 10))
(init (at obstacle 14 10))
(init (at obstacle 18 10))
(init (at obstacle 19 10))
(init (at obstacle 12 9))
(init (at obstacle 5 8))
(init (at obstacle 12 8))
(init (at obstacle 15 8))
(init (at obstacle 16 8))
(init (at obstacle 17 8))
(init (at obstacle 15 7))
(init (at obstacle 16 7))
(init (at obstacle 17 7))
(init (at obstacle 4 6))
(init (at obstacle 5 6))
(init (at obstacle 6 6))
(init (at obstacle 20 6))
(init (at obstacle 2 5))
(init (at obstacle 4 5))
(init (at obstacle 5 5))
(init (at obstacle 6 5))
(init (at obstacle 8 5))
(init (at obstacle 18 5))
(init (at obstacle 19 5))
(init (at obstacle 4 4))
(init (at obstacle 5 4))
(init (at obstacle 6 4))
(init (at obstacle 16 4))
(init (at obstacle 17 4))
(init (at obstacle 2 3))
(init (at obstacle 4 3))
(init (at obstacle 5 3))
(init (at obstacle 6 3))
(init (at obstacle 8 3))
(init (at obstacle 14 3))
(init (at obstacle 15 3))
(init (at obstacle 12 2))
(init (at obstacle 13 2))
(init (at obstacle 5 1))
(init (at obstacle 10 1))
(init (at obstacle 11 1))

(init (step 0))
(init (points 850))

;; action preconditions

(<= (legal agent turn_on)
   (true (step 0))
)
(<= (legal agent go)
   (not (true (step 0)))
)
(<= (legal agent turn_left)
   (not (true (step 0)))
)
(<= (legal agent turn_right)
   (not (true (step 0)))
)
(<= (legal agent suck)
   (true (at agent ?m ?n))
   ; (true (at dirt ?m ?n))
)
(<= (legal agent turn_off)
   (not (true (step 0)))
)

;; home location

(<= (next (home ?x ?y))
	(true (home ?x ?y))
)

;; action effects

(<= (next (at agent ?m ?n))
   (next_position ?m ?n)
)

(<= (next (orientation ?o))
   (does agent turn_left)
   (true (orientation ?p))
   (clockwise ?o ?p)
)

(<= (next (orientation ?o))
   (does agent turn_right)
   (true (orientation ?p))
   (clockwise ?p ?o)
)

(<= (next (orientation ?o))
   (true (orientation ?o))
   (not (does agent turn_left))
   (not (does agent turn_right))
)

(<= (next (at dirt ?m ?n))
   (true (at dirt ?m ?n))
   (not (does agent suck))
)

(<= (next (at dirt ?m ?n))
	(true (at dirt ?m ?n))
	(does agent suck)
	(true (at agent ?m1 ?n1))
	(distinct ?m1 ?m)
)
(<= (next (at dirt ?m ?n))
	(true (at dirt ?m ?n))
	(does agent suck)
	(true (at agent ?m1 ?n1))
	(distinct ?n1 ?n)
)

(<= (next stopped)
   (does agent turn_off)
)

(<= (next (at obstacle ?m ?n))
   (true (at obstacle ?m ?n))
)

;; step counter

(<= (next (step ?y))
    (true (step ?x))
    (succ ?x ?y)
)

;; points

(<= (next (points ?y))
    (true (points ?x))
	(not (does agent suck))
	(not (does agent turn_off))
    (minus ?x 1 ?y)
)

(<= (next (points ?y))
    (true (points ?x))
	(does agent suck)
	(true (at agent ?m ?n))
	(not (true (at dirt ?m ?n)))
    (minus ?x 5 ?y)
)

(<= (next (points ?y))
    (true (points ?x))
	(does agent suck)
	(true (at agent ?m ?n))
	(true (at dirt ?m ?n))
    (plus ?x 15 ?y)
)

(<= (next (points ?y))
    (true (points ?x))
	(does agent turn_off)
	(true (home ?m ?n))
	(true (at agent ?m ?n))
    (minus ?x 1 ?y)
)

(<= (next (points ?y))
    (true (points ?x))
	(does agent turn_off)
	(true (home ?m ?n))
	(not (true (at agent ?m ?n)))
    (minus ?x 100 ?y)
)


;; percepts

(<= (sees agent dirt)
   (next_position ?m ?n)
   (true (at dirt ?m ?n))
   (not (does agent suck))
)

(<= (sees agent bump)
   is_bumping
)

(<= is_bumping
   (does agent go)
   facing_wall
)

;; termination & goal

(<= terminal
   (true stopped)
)

(<= terminal
	(maxnumber ?m)
	(true (step ?m))
)

(<= (goal agent ?p)
	(true (points ?p))
	(true stopped)
)

(<= (goal agent ?p1)
	(not (true stopped))
	(true (points ?p))
	(minus ?p 25 ?p1)
)

;; auxiliary

(<= (next_position ?m ?n)
	(does agent turn_on)
	(true (home ?m ?n))
)

(<= (next_position ?m ?n)
   (does agent go)
   (not facing_wall)
   (true (at agent ?i ?j))
   (true (orientation ?o))
   (adjacent ?i ?j ?o ?m ?n))

(<= (next_position ?m ?n)
   (does agent go)
   facing_wall
   (true (at agent ?m ?n)))

(<= (next_position ?m ?n)
   (not (does agent go))
   (true (at agent ?m ?n)))

(<= (adjacent ?m ?i north ?m ?j)
   (succ ?i ?j)
   (xcoordinate ?m))
(<= (adjacent ?m ?i south ?m ?j)
   (succ ?j ?i)
   (xcoordinate ?m))
(<= (adjacent ?i ?n east ?j ?n)
   (succ ?i ?j)
   (ycoordinate ?n))
(<= (adjacent ?i ?n west ?j ?n)
   (succ ?j ?i)
   (ycoordinate ?n))

(<= facing_wall
   (true (at agent ?m ?n))
   (size ?width ?n)
   (true (orientation north)))
(<= facing_wall
   (true (at agent ?m 1))
   (true (orientation south)))
(<= facing_wall
   (true (at agent ?m ?n))
   (size ?m ?height)
   (true (orientation east)))
(<= facing_wall
   (true (at agent 1 ?n))
   (true (orientation west)))
(<= facing_wall
   (true (at agent ?i ?j))
   (true (orientation ?o))
   (adjacent ?i ?j ?o ?m ?n)
   (true (at obstacle ?m ?n)))

(direction north)
(direction south)
(direction east)
(direction west)

(clockwise north east)
(clockwise east south)
(clockwise south west)
(clockwise west north)

(xcoordinate 1)
(xcoordinate 2)
(xcoordinate 3)
(xcoordinate 4)
(xcoordinate 5)
(xcoordinate 6)
(xcoordinate 7)
(xcoordinate 8)
(xcoordinate 9)
(xcoordinate 10)
(xcoordinate 11)
(xcoordinate 12)
(xcoordinate 13)
(xcoordinate 14)
(xcoordinate 15)
(xcoordinate 16)
(xcoordinate 17)
(xcoordinate 18)
(xcoordinate 19)
(xcoordinate 20)

(ycoordinate 1)
(ycoordinate 2)
(ycoordinate 3)
(ycoordinate 4)
(ycoordinate 5)
(ycoordinate 6)
(ycoordinate 7)
(ycoordinate 8)
(ycoordinate 9)
(ycoordinate 10)
(ycoordinate 11)
(ycoordinate 12)
(ycoordinate 13)
(ycoordinate 14)
(ycoordinate 15)
(ycoordinate 16)
(ycoordinate 17)
(ycoordinate 18)
(ycoordinate 19)
(ycoordinate 20)
(ycoordinate 21)
(ycoordinate 22)
(ycoordinate 23)
(ycoordinate 24)
(ycoordinate 25)
(ycoordinate 26)
(ycoordinate 27)
(ycoordinate 28)
(ycoordinate 29)
(ycoordinate 30)
(ycoordinate 31)
(ycoordinate 32)
(ycoordinate 33)
(ycoordinate 34)
(ycoordinate 35)
(ycoordinate 36)
(ycoordinate 37)
(ycoordinate 38)
(ycoordinate 39)
(ycoordinate 40)


(succ 0 1)
(succ 1 2)
(succ 2 3)
(succ 3 4)
(succ 4 5)
(succ 5 6)
(succ 6 7)
(succ 7 8)
(succ 8 9)
(succ 9 10)
(succ 10 11)
(succ 11 12)
(succ 12 13)
(succ 13 14)
(succ 14 15)
(succ 15 16)
(succ 16 17)
(succ 17 18)
(succ 18 19)
(succ 19 20)
(succ 20 21)
(succ 21 22)
(succ 22 23)
(succ 23 24)
(succ 24 25)
(succ 25 26)
(succ 26 27)
(succ 27 28)
(succ 28 29)
(succ 29 30)
(succ 30 31)
(succ 31 32)
(succ 32 33)
(succ 33 34)
(succ 34 35)
(succ 35 36)
(succ 36 37)
(succ 37 38)
(succ 38 39)
(succ 39 40)
(succ 40 41)
(succ 41 42)
(succ 42 43)
(succ 43 44)
(succ 44 45)
(succ 45 46)
(succ 46 47)
(succ 47 48)
(succ 48 49)
(succ 49 50)
(succ 50 51)
(succ 51 52)
(succ 52 53)
(succ 53 54)
(succ 54 55)
(succ 55 56)
(succ 56 57)
(succ 57 58)
(succ 58 59)
(succ 59 60)
(succ 60 61)
(succ 61 62)
(succ 62 63)
(succ 63 64)
(succ 64 65)
(succ 65 66)
(succ 66 67)
(succ 67 68)
(succ 68 69)
(succ 69 70)
(succ 70 71)
(succ 71 72)
(succ 72 73)
(succ 73 74)
(succ 74 75)
(succ 75 76)
(succ 76 77)
(succ 77 78)
(succ 78 79)
(succ 79 80)
(succ 80 81)
(succ 81 82)
(succ 82 83)
(succ 83 84)
(succ 84 85)
(succ 85 86)
(succ 86 87)
(succ 87 88)
(succ 88 89)
(succ 89 90)
(succ 90 91)
(succ 91 92)
(succ 92 93)
(succ 93 94)
(succ 94 95)
(succ 95 96)
(succ 96 97)
(succ 97 98)
(succ 98 99)
(succ 99 100)
(succ 100 101)
(succ 101 102)
(succ 102 103)
(succ 103 104)
(succ 104 105)
(succ 105 106)
(succ 106 107)
(succ 107 108)
(succ 108 109)
(succ 109 110)
(succ 110 111)
(succ 111 112)
(succ 112 113)
(succ 113 114)
(succ 114 115)
(succ 115 116)
(succ 116 117)
(succ 117 118)
(succ 118 119)
(succ 119 120)
(succ 120 121)
(succ 121 122)
(succ 122 123)
(succ 123 124)
(succ 124 125)
(succ 125 126)
(succ 126 127)
(succ 127 128)
(succ 128 129)
(succ 129 130)
(succ 130 131)
(succ 131 132)
(succ 132 133)
(succ 133 134)
(succ 134 135)
(succ 135 136)
(succ 136 137)
(succ 137 138)
(succ 138 139)
(succ 139 140)
(succ 140 141)
(succ 141 142)
(succ 142 143)
(succ 143 144)
(succ 144 145)
(succ 145 146)
(succ 146 147)
(succ 147 148)
(succ 148 149)
(succ 149 150)
(succ 150 151)
(succ 151 152)
(succ 152 153)
(succ 153 154)
(succ 154 155)
(succ 155 156)
(succ 156 157)
(succ 157 158)
(succ 158 159)
(succ 159 160)
(succ 160 161)
(succ 161 162)
(succ 162 163)
(succ 163 164)
(succ 164 165)
(succ 165 166)
(succ 166 167)
(succ 167 168)
(succ 168 169)
(succ 169 170)
(succ 170 171)
(succ 171 172)
(succ 172 173)
(succ 173 174)
(succ 174 175)
(succ 175 176)
(succ 176 177)
(succ 177 178)
(succ 178 179)
(succ 179 180)
(succ 180 181)
(succ 181 182)
(succ 182 183)
(succ 183 184)
(succ 184 185)
(succ 185 186)
(succ 186 187)
(succ 187 188)
(succ 188 189)
(succ 189 190)
(succ 190 191)
(succ 191 192)
(succ 192 193)
(succ 193 194)
(succ 194 195)
(succ 195 196)
(succ 196 197)
(succ 197 198)
(succ 198 199)
(succ 199 200)
(succ 200 201)
(succ 201 202)
(succ 202 203)
(succ 203 204)
(succ 204 205)
(succ 205 206)
(succ 206 207)
(succ 207 208)
(succ 208 209)
(succ 209 210)
(succ 210 211)
(succ 211 212)
(succ 212 213)
(succ 213 214)
(succ 214 215)
(succ 215 216)
(succ 216 217)
(succ 217 218)
(succ 218 219)
(succ 219 220)
(succ 220 221)
(succ 221 222)
(succ 222 223)
(succ 223 224)
(succ 224 225)
(succ 225 226)
(succ 226 227)
(succ 227 228)
(succ 228 229)
(succ 229 230)
(succ 230 231)
(succ 231 232)
(succ 232 233)
(succ 233 234)
(succ 234 235)
(succ 235 236)
(succ 236 237)
(succ 237 238)
(succ 238 239)
(succ 239 240)
(succ 240 241)
(succ 241 242)
(succ 242 243)
(succ 243 244)
(succ 244 245)
(succ 245 246)
(succ 246 247)
(succ 247 248)
(succ 248 249)
(succ 249 250)
(succ 250 251)
(succ 251 252)
(succ 252 253)
(succ 253 254)
(succ 254 255)
(succ 255 256)
(succ 256 257)
(succ 257 258)
(succ 258 259)
(succ 259 260)
(succ 260 261)
(succ 261 262)
(succ 262 263)
(succ 263 264)
(succ 264 265)
(succ 265 266)
(succ 266 267)
(succ 267 268)
(succ 268 269)
(succ 269 270)
(succ 270 271)
(succ 271 272)
(succ 272 273)
(succ 273 274)
(succ 274 275)
(succ 275 276)
(succ 276 277)
(succ 277 278)
(succ 278 279)
(succ 279 280)
(succ 280 281)
(succ 281 282)
(succ 282 283)
(succ 283 284)
(succ 284 285)
(succ 285 286)
(succ 286 287)
(succ 287 288)
(succ 288 289)
(succ 289 290)
(succ 290 291)
(succ 291 292)
(succ 292 293)
(succ 293 294)
(succ 294 295)
(succ 295 296)
(succ 296 297)
(succ 297 298)
(succ 298 299)
(succ 299 300)
(succ 300 301)
(succ 301 302)
(succ 302 303)
(succ 303 304)
(succ 304 305)
(succ 305 306)
(succ 306 307)
(succ 307 308)
(succ 308 309)
(succ 309 310)
(succ 310 311)
(succ 311 312)
(succ 312 313)
(succ 313 314)
(succ 314 315)
(succ 315 316)
(succ 316 317)
(succ 317 318)
(succ 318 319)
(succ 319 320)
(succ 320 321)
(succ 321 322)
(succ 322 323)
(succ 323 324)
(succ 324 325)
(succ 325 326)
(succ 326 327)
(succ 327 328)
(succ 328 329)
(succ 329 330)
(succ 330 331)
(succ 331 332)
(succ 332 333)
(succ 333 334)
(succ 334 335)
(succ 335 336)
(succ 336 337)
(succ 337 338)
(succ 338 339)
(succ 339 340)
(succ 340 341)
(succ 341 342)
(succ 342 343)
(succ 343 344)
(succ 344 345)
(succ 345 346)
(succ 346 347)
(succ 347 348)
(succ 348 349)
(succ 349 350)
(succ 350 351)
(succ 351 352)
(succ 352 353)
(succ 353 354)
(succ 354 355)
(succ 355 356)
(succ 356 357)
(succ 357 358)
(succ 358 359)
(succ 359 360)
(succ 360 361)
(succ 361 362)
(succ 362 363)
(succ 363 364)
(succ 364 365)
(succ 365 366)
(succ 366 367)
(succ 367 368)
(succ 368 369)
(succ 369 370)
(succ 370 371)
(succ 371 372)
(succ 372 373)
(succ 373 374)
(succ 374 375)
(succ 375 376)
(succ 376 377)
(succ 377 378)
(succ 378 379)
(succ 379 380)
(succ 380 381)
(succ 381 382)
(succ 382 383)
(succ 383 384)
(succ 384 385)
(succ 385 386)
(succ 386 387)
(succ 387 388)
(succ 388 389)
(succ 389 390)
(succ 390 391)
(succ 391 392)
(succ 392 393)
(succ 393 394)
(succ 394 395)
(succ 395 396)
(succ 396 397)
(succ 397 398)
(succ 398 399)
(succ 399 400)
(succ 400 401)
(succ 401 402)
(succ 402 403)
(succ 403 404)
(succ 404 405)
(succ 405 406)
(succ 406 407)
(succ 407 408)
(succ 408 409)
(succ 409 410)
(succ 410 411)
(succ 411 412)
(succ 412 413)
(succ 413 414)
(succ 414 415)
(succ 415 416)
(succ 416 417)
(succ 417 418)
(succ 418 419)
(succ 419 420)
(succ 420 421)
(succ 421 422)
(succ 422 423)
(succ 423 424)
(succ 424 425)
(succ 425 426)
(succ 426 427)
(succ 427 428)
(succ 428 429)
(succ 429 430)
(succ 430 431)
(succ 431 432)
(succ 432 433)
(succ 433 434)
(succ 434 435)
(succ 435 436)
(succ 436 437)
(succ 437 438)
(succ 438 439)
(succ 439 440)
(succ 440 441)
(succ 441 442)
(succ 442 443)
(succ 443 444)
(succ 444 445)
(succ 445 446)
(succ 446 447)
(succ 447 448)
(succ 448 449)
(succ 449 450)
(succ 450 451)
(succ 451 452)
(succ 452 453)
(succ 453 454)
(succ 454 455)
(succ 455 456)
(succ 456 457)
(succ 457 458)
(succ 458 459)
(succ 459 460)
(succ 460 461)
(succ 461 462)
(succ 462 463)
(succ 463 464)
(succ 464 465)
(succ 465 466)
(succ 466 467)
(succ 467 468)
(succ 468 469)
(succ 469 470)
(succ 470 471)
(succ 471 472)
(succ 472 473)
(succ 473 474)
(succ 474 475)
(succ 475 476)
(succ 476 477)
(succ 477 478)
(succ 478 479)
(succ 479 480)
(succ 480 481)
(succ 481 482)
(succ 482 483)
(succ 483 484)
(succ 484 485)
(succ 485 486)
(succ 486 487)
(succ 487 488)
(succ 488 489)
(succ 489 490)
(succ 490 491)
(succ 491 492)
(succ 492 493)
(succ 493 494)
(succ 494 495)
(succ 495 496)
(succ 496 497)
(succ 497 498)
(succ 498 499)
(succ 499 500)
(succ 500 501)
(succ 501 502)
(succ 502 503)
(succ 503 504)
(succ 504 505)
(succ 505 506)
(succ 506 507)
(succ 507 508)
(succ 508 509)
(succ 509 510)
(succ 510 511)
(succ 511 512)
(succ 512 513)
(succ 513 514)
(succ 514 515)
(succ 515 516)
(succ 516 517)
(succ 517 518)
(succ 518 519)
(succ 519 520)
(succ 520 521)
(succ 521 522)
(succ 522 523)
(succ 523 524)
(succ 524 525)
(succ 525 526)
(succ 526 527)
(succ 527 528)
(succ 528 529)
(succ 529 530)
(succ 530 531)
(succ 531 532)
(succ 532 533)
(succ 533 534)
(succ 534 535)
(succ 535 536)
(succ 536 537)
(succ 537 538)
(succ 538 539)
(succ 539 540)
(succ 540 541)
(succ 541 542)
(succ 542 543)
(succ 543 544)
(succ 544 545)
(succ 545 546)
(succ 546 547)
(succ 547 548)
(succ 548 549)
(succ 549 550)
(succ 550 551)
(succ 551 552)
(succ 552 553)
(succ 553 554)
(succ 554 555)
(succ 555 556)
(succ 556 557)
(succ 557 558)
(succ 558 559)
(succ 559 560)
(succ 560 561)
(succ 561 562)
(succ 562 563)
(succ 563 564)
(succ 564 565)
(succ 565 566)
(succ 566 567)
(succ 567 568)
(succ 568 569)
(succ 569 570)
(succ 570 571)
(succ 571 572)
(succ 572 573)
(succ 573 574)
(succ 574 575)
(succ 575 576)
(succ 576 577)
(succ 577 578)
(succ 578 579)
(succ 579 580)
(succ 580 581)
(succ 581 582)
(succ 582 583)
(succ 583 584)
(succ 584 585)
(succ 585 586)
(succ 586 587)
(succ 587 588)
(succ 588 589)
(succ 589 590)
(succ 590 591)
(succ 591 592)
(succ 592 593)
(succ 593 594)
(succ 594 595)
(succ 595 596)
(succ 596 597)
(succ 597 598)
(succ 598 599)
(succ 599 600)
(succ 600 601)
(succ 601 602)
(succ 602 603)
(succ 603 604)
(succ 604 605)
(succ 605 606)
(succ 606 607)
(succ 607 608)
(succ 608 609)
(succ 609 610)
(succ 610 611)
(succ 611 612)
(succ 612 613)
(succ 613 614)
(succ 614 615)
(succ 615 616)
(succ 616 617)
(succ 617 618)
(succ 618 619)
(succ 619 620)
(succ 620 621)
(succ 621 622)
(succ 622 623)
(succ 623 624)
(succ 624 625)
(succ 625 626)
(succ 626 627)
(succ 627 628)
(succ 628 629)
(succ 629 630)
(succ 630 631)
(succ 631 632)
(succ 632 633)
(succ 633 634)
(succ 634 635)
(succ 635 636)
(succ 636 637)
(succ 637 638)
(succ 638 639)
(succ 639 640)
(succ 640 641)
(succ 641 642)
(succ 642 643)
(succ 643 644)
(succ 644 645)
(succ 645 646)
(succ 646 647)
(succ 647 648)
(succ 648 649)
(succ 649 650)
(succ 650 651)
(succ 651 652)
(succ 652 653)
(succ 653 654)
(succ 654 655)
(succ 655 656)
(succ 656 657)
(succ 657 658)
(succ 658 659)
(succ 659 660)
(succ 660 661)
(succ 661 662)
(succ 662 663)
(succ 663 664)
(succ 664 665)
(succ 665 666)
(succ 666 667)
(succ 667 668)
(succ 668 669)
(succ 669 670)
(succ 670 671)
(succ 671 672)
(succ 672 673)
(succ 673 674)
(succ 674 675)
(succ 675 676)
(succ 676 677)
(succ 677 678)
(succ 678 679)
(succ 679 680)
(succ 680 681)
(succ 681 682)
(succ 682 683)
(succ 683 684)
(succ 684 685)
(succ 685 686)
(succ 686 687)
(succ 687 688)
(succ 688 689)
(succ 689 690)
(succ 690 691)
(succ 691 692)
(succ 692 693)
(succ 693 694)
(succ 694 695)
(succ 695 696)
(succ 696 697)
(succ 697 698)
(succ 698 699)
(succ 699 700)
(succ 700 701)
(succ 701 702)
(succ 702 703)
(succ 703 704)
(succ 704 705)
(succ 705 706)
(succ 706 707)
(succ 707 708)
(succ 708 709)
(succ 709 710)
(succ 710 711)
(succ 711 712)
(succ 712 713)
(succ 713 714)
(succ 714 715)
(succ 715 716)
(succ 716 717)
(succ 717 718)
(succ 718 719)
(succ 719 720)
(succ 720 721)
(succ 721 722)
(succ 722 723)
(succ 723 724)
(succ 724 725)
(succ 725 726)
(succ 726 727)
(succ 727 728)
(succ 728 729)
(succ 729 730)
(succ 730 731)
(succ 731 732)
(succ 732 733)
(succ 733 734)
(succ 734 735)
(succ 735 736)
(succ 736 737)
(succ 737 738)
(succ 738 739)
(succ 739 740)
(succ 740 741)
(succ 741 742)
(succ 742 743)
(succ 743 744)
(succ 744 745)
(succ 745 746)
(succ 746 747)
(succ 747 748)
(succ 748 749)
(succ 749 750)
(succ 750 751)
(succ 751 752)
(succ 752 753)
(succ 753 754)
(succ 754 755)
(succ 755 756)
(succ 756 757)
(succ 757 758)
(succ 758 759)
(succ 759 760)
(succ 760 761)
(succ 761 762)
(succ 762 763)
(succ 763 764)
(succ 764 765)
(succ 765 766)
(succ 766 767)
(succ 767 768)
(succ 768 769)
(succ 769 770)
(succ 770 771)
(succ 771 772)
(succ 772 773)
(succ 773 774)
(succ 774 775)
(succ 775 776)
(succ 776 777)
(succ 777 778)
(succ 778 779)
(succ 779 780)
(succ 780 781)
(succ 781 782)
(succ 782 783)
(succ 783 784)
(succ 784 785)
(succ 785 786)
(succ 786 787)
(succ 787 788)
(succ 788 789)
(succ 789 790)
(succ 790 791)
(succ 791 792)
(succ 792 793)
(succ 793 794)
(succ 794 795)
(succ 795 796)
(succ 796 797)
(succ 797 798)
(succ 798 799)
(succ 799 800)
(succ 800 801)
(succ 801 802)
(succ 802 803)
(succ 803 804)
(succ 804 805)
(succ 805 806)
(succ 806 807)
(succ 807 808)
(succ 808 809)
(succ 809 810)
(succ 810 811)
(succ 811 812)
(succ 812 813)
(succ 813 814)
(succ 814 815)
(succ 815 816)
(succ 816 817)
(succ 817 818)
(succ 818 819)
(succ 819 820)
(succ 820 821)
(succ 821 822)
(succ 822 823)
(succ 823 824)
(succ 824 825)
(succ 825 826)
(succ 826 827)
(succ 827 828)
(succ 828 829)
(succ 829 830)
(succ 830 831)
(succ 831 832)
(succ 832 833)
(succ 833 834)
(succ 834 835)
(succ 835 836)
(succ 836 837)
(succ 837 838)
(succ 838 839)
(succ 839 840)
(succ 840 841)
(succ 841 842)
(succ 842 843)
(succ 843 844)
(succ 844 845)
(succ 845 846)
(succ 846 847)
(succ 847 848)
(succ 848 849)
(succ 849 850)
(succ 850 851)
(succ 851 852)
(succ 852 853)
(succ 853 854)
(succ 854 855)
(succ 855 856)
(succ 856 857)
(succ 857 858)
(succ 858 859)
(succ 859 860)
(succ 860 861)
(succ 861 862)
(succ 862 863)
(succ 863 864)
(succ 864 865)
(succ 865 866)
(succ 866 867)
(succ 867 868)
(succ 868 869)
(succ 869 870)
(succ 870 871)
(succ 871 872)
(succ 872 873)
(succ 873 874)
(succ 874 875)
(succ 875 876)
(succ 876 877)
(succ 877 878)
(succ 878 879)
(succ 879 880)
(succ 880 881)
(succ 881 882)
(succ 882 883)
(succ 883 884)
(succ 884 885)
(succ 885 886)
(succ 886 887)
(succ 887 888)
(succ 888 889)
(succ 889 890)
(succ 890 891)
(succ 891 892)
(succ 892 893)
(succ 893 894)
(succ 894 895)
(succ 895 896)
(succ 896 897)
(succ 897 898)
(succ 898 899)
(succ 899 900)
(succ 900 901)
(succ 901 902)
(succ 902 903)
(succ 903 904)
(succ 904 905)
(succ 905 906)
(succ 906 907)
(succ 907 908)
(succ 908 909)
(succ 909 910)
(succ 910 911)
(succ 911 912)
(succ 912 913)
(succ 913 914)
(succ 914 915)
(succ 915 916)
(succ 916 917)
(succ 917 918)
(succ 918 919)
(succ 919 920)
(succ 920 921)
(succ 921 922)
(succ 922 923)
(succ 923 924)
(succ 924 925)
(succ 925 926)
(succ 926 927)
(succ 927 928)
(succ 928 929)
(succ 929 930)
(succ 930 931)
(succ 931 932)
(succ 932 933)
(succ 933 934)
(succ 934 935)
(succ 935 936)
(succ 936 937)
(succ 937 938)
(succ 938 939)
(succ 939 940)
(succ 940 941)
(succ 941 942)
(succ 942 943)
(succ 943 944)
(succ 944 945)
(succ 945 946)
(succ 946 947)
(succ 947 948)
(succ 948 949)
(succ 949 950)
(succ 950 951)
(succ 951 952)
(succ 952 953)
(succ 953 954)
(succ 954 955)
(succ 955 956)
(succ 956 957)
(succ 957 958)
(succ 958 959)
(succ 959 960)
(succ 960 961)
(succ 961 962)
(succ 962 963)
(succ 963 964)
(succ 964 965)
(succ 965 966)
(succ 966 967)
(succ 967 968)
(succ 968 969)
(succ 969 970)
(succ 970 971)
(succ 971 972)
(succ 972 973)
(succ 973 974)
(succ 974 975)
(succ 975 976)
(succ 976 977)
(succ 977 978)
(succ 978 979)
(succ 979 980)
(succ 980 981)
(succ 981 982)
(succ 982 983)
(succ 983 984)
(succ 984 985)
(succ 985 986)
(succ 986 987)
(succ 987 988)
(succ 988 989)
(succ 989 990)
(succ 990 991)
(succ 991 992)
(succ 992 993)
(succ 993 994)
(succ 994 995)
(succ 995 996)
(succ 996 997)
(succ 997 998)
(succ 998 999)
(succ 999 1000)

(maxnumber 1000)

(number 0)
(<= (number ?y)
    (succ ?x ?y)
)

(<= (plus ?x 0 ?x)
        (number ?x)
)
(<= (plus ?m ?x ?m)
	(maxnumber ?m)
	(number ?x)
)
(<= (plus ?x ?y ?sum)
	(succ ?x ?x1)
	(succ ?y1 ?y)
	(plus ?x1 ?y1 ?sum)
)

(<= (minus ?x 0 ?x)
        (number ?x)
)
(<= (minus 0 ?x 0)
	(number ?x)
)
(<= (minus ?x ?y ?sum)
	(succ ?x1 ?x)
	(succ ?y1 ?y)
	(minus ?x1 ?y1 ?sum)
)

(<= (smaller ?x ?y)
        (succ ?x ?y)
)
(<= (smaller ?x ?y)
        (succ ?z ?y)
        (smaller ?x ?z)
)

sees_XML(...) rules

(<= (sees_xml random ?t) (sees_xml1 ?t))
(<= (sees_xml ?p ?t) (role ?p) (distinct ?p random) (sees_xml1 ?t))

(<= (sees_xml1 (cell ?x ?y b))
    (xcoordinate ?x)
    (ycoordinate ?y)
    (not (true (at ?what ?x ?y)))
)
(<= (sees_xml1 (cell ?x ?y x))
    (true (at obstacle ?x ?y))
)
(<= (sees_xml1 (cell ?x ?y whitepawn))
    (true (at agent ?x ?y))
    (not (true (at dirt ?x ?y)))
)
(<= (sees_xml1 (cell ?x ?y blackpawn))
    (true (at dirt ?x ?y))
    (true (at agent ?x ?y))
)
(<= (sees_xml1 (cell ?x ?y brown_disc))
    (true (at dirt ?x ?y))
    (not (true (at agent ?x ?y)))
)
(<= (sees_xml1 stopped)
    (true stopped)
)
(<= (sees_xml1 (orientation ?x))
    (true (orientation ?x))
)
(<= (sees_xml1 (cell ?x ?y x))
    (true (at wall ?x ?y))
)
(<= (sees_xml1 (points ?x))
    (true (points ?x))
)
(<= (sees_xml1 (step ?x))
    (true (step ?x))
)
(<= (sees_xml1 (size ?x ?y))
    (size ?x ?y)
)