;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Pearls
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(role robot)

(init p1)

(<= (legal robot a)
    (true p1))
(<= (legal robot a)
    (true p2))
(<= (legal robot a)
    (true p5))
(<= (legal robot a)
    (true p6))
(<= (legal robot a)
    (true p9))
(<= (legal robot a)
    (true p10))
(<= (legal robot a)
    (true p13))
(<= (legal robot a)
    (true p14))

(<= (legal robot b)
    (true p1))
(<= (legal robot b)
    (true p3))
(<= (legal robot b)
    (true p5))
(<= (legal robot b)
    (true p7))
(<= (legal robot b)
    (true p9))
(<= (legal robot b)
    (true p11))
(<= (legal robot b)
    (true p13))
(<= (legal robot b)
    (true p15))

(<= (legal robot c)
    (true p4))
(<= (legal robot c)
    (true p8))
(<= (legal robot c)
    (true p12))

(<= (next p2) (does robot a) (true p1))
(<= (next p3) (does robot b) (true p1))
(<= (next p4) (does robot a) (true p2))
(<= (next p4) (does robot b) (true p3))
(<= (next p5) (does robot c) (true p4))
(<= (next p6) (does robot a) (true p5))
(<= (next p7) (does robot b) (true p5))
(<= (next p8) (does robot a) (true p6))
(<= (next p8) (does robot b) (true p7))
(<= (next p9) (does robot c) (true p8))
(<= (next p10) (does robot a) (true p9))
(<= (next p11) (does robot b) (true p9))
(<= (next p12) (does robot a) (true p10))
(<= (next p12) (does robot b) (true p11))
(<= (next p13) (does robot c) (true p12))
(<= (next p14) (does robot a) (true p13))
(<= (next p15) (does robot b) (true p13))
(<= (next p16) (does robot a) (true p14))
(<= (next p16) (does robot b) (true p15))

(<= (goal robot 90) (true p16))
(<= (goal robot 0) (not (true p16)))

(<= terminal (true p16))