(role white)
(<= (base (location ?X ?Y ?Piece)) (file ?X) (rank ?Y) (owns ?Piece ?Role))
(<= (base (control ?Role)) (role ?Role))
(base (step 0))
(<= (base (step ?N)) (pp ?M ?N))
(<= (input white (place ?U ?V whitequeen)) (file ?U) (rank ?V))
(init (control white))
(init (step 0))
(<= (legal ?Player (place ?X ?Y ?Piece)) (file ?X) (rank ?Y) (true (control ?Player)) (owns ?Piece ?Player) (not (attackable ?X ?Y)) (not (celloccupiedby ?X ?Y ?Player)))
(<= (attackable ?X ?Y) (true (location ?X1 ?Y1 ?Piece)) (validmove ?Piece ?X1 ?Y1 ?X ?Y))
(<= (next (location ?X ?Y ?Piece)) (role ?Player) (does ?Player (place ?X ?Y ?Piece)))
(<= (next (location ?X ?Y ?Piece)) (role ?Player) (does ?Player (place ?X1 ?Y1 ?Piece1)) (true (location ?X ?Y ?Piece)))
(<= (next (control white)) (true (control white)))
(<= (next (step ?Tpp)) (true (step ?T)) (pp ?T ?Tpp))
(<= (goal ?Player ?Goal) (role ?Player) (true (step ?T)) (scoremap ?T ?Goal))
(<= terminal (role ?Player) (not (haslegalmove ?Player)))
(<= (horizontal ?X1 ?Y ?X2 ?Y) (nextfile ?X1 ?X2) (rank ?Y))
(<= (horizontal ?X1 ?Y ?X3 ?Y) (nextfile ?X1 ?X2) (horizontal ?X2 ?Y ?X3 ?Y))
(<= (vertical ?X ?Y1 ?X ?Y2) (nextrank ?Y1 ?Y2) (file ?X))
(<= (vertical ?X ?Y1 ?X ?Y3) (nextrank ?Y1 ?Y2) (vertical ?X ?Y2 ?X ?Y3))
(<= (northeast ?X1 ?Y1 ?X2 ?Y2) (nextfile ?X1 ?X2) (nextrank ?Y1 ?Y2))
(<= (northeast ?X1 ?Y1 ?X3 ?Y3) (nextfile ?X1 ?X2) (nextrank ?Y1 ?Y2) (northeast ?X2 ?Y2 ?X3 ?Y3))
(<= (southeast ?X1 ?Y1 ?X2 ?Y2) (nextfile ?X1 ?X2) (nextrank ?Y2 ?Y1))
(<= (southeast ?X1 ?Y1 ?X3 ?Y3) (nextfile ?X1 ?X2) (nextrank ?Y2 ?Y1) (southeast ?X2 ?Y2 ?X3 ?Y3))
(<= (validmove ?Piece ?X1 ?Y1 ?X2 ?Y2) (type ?Piece queen) (queenmove ?X1 ?Y1 ?X2 ?Y2))
(<= (rookmove ?X1 ?Y1 ?X2 ?Y2) (horizontalmove ?X1 ?Y1 ?X2 ?Y2))
(<= (rookmove ?X1 ?Y1 ?X2 ?Y2) (horizontalmove ?X2 ?Y2 ?X1 ?Y1))
(<= (rookmove ?X1 ?Y1 ?X2 ?Y2) (verticalmove ?X1 ?Y1 ?X2 ?Y2))
(<= (rookmove ?X1 ?Y1 ?X2 ?Y2) (verticalmove ?X2 ?Y2 ?X1 ?Y1))
(<= (bishopmove ?X1 ?Y1 ?X2 ?Y2) (northeastmove ?X1 ?Y1 ?X2 ?Y2))
(<= (bishopmove ?X1 ?Y1 ?X2 ?Y2) (northeastmove ?X2 ?Y2 ?X1 ?Y1))
(<= (bishopmove ?X1 ?Y1 ?X2 ?Y2) (southeastmove ?X1 ?Y1 ?X2 ?Y2))
(<= (bishopmove ?X1 ?Y1 ?X2 ?Y2) (southeastmove ?X2 ?Y2 ?X1 ?Y1))
(<= (queenmove ?X1 ?Y1 ?X2 ?Y2) (rookmove ?X1 ?Y1 ?X2 ?Y2))
(<= (queenmove ?X1 ?Y1 ?X2 ?Y2) (bishopmove ?X1 ?Y1 ?X2 ?Y2))
(<= (horizontalmove ?X1 ?Y ?X2 ?Y) (nextfile ?X1 ?X2) (rank ?Y))
(<= (horizontalmove ?X1 ?Y ?X3 ?Y) (nextfile ?X1 ?X2) (cellempty ?X2 ?Y) (horizontalmove ?X2 ?Y ?X3 ?Y))
(<= (verticalmove ?X ?Y1 ?X ?Y2) (nextrank ?Y1 ?Y2) (file ?X))
(<= (verticalmove ?X ?Y1 ?X ?Y3) (nextrank ?Y1 ?Y2) (cellempty ?X ?Y2) (verticalmove ?X ?Y2 ?X ?Y3))
(<= (northeastmove ?X1 ?Y1 ?X2 ?Y2) (nextfile ?X1 ?X2) (nextrank ?Y1 ?Y2))
(<= (northeastmove ?X1 ?Y1 ?X3 ?Y3) (nextfile ?X1 ?X2) (nextrank ?Y1 ?Y2) (cellempty ?X2 ?Y2) (northeastmove ?X2 ?Y2 ?X3 ?Y3))
(<= (southeastmove ?X1 ?Y1 ?X2 ?Y2) (nextfile ?X1 ?X2) (nextrank ?Y2 ?Y1))
(<= (southeastmove ?X1 ?Y1 ?X3 ?Y3) (nextfile ?X1 ?X2) (nextrank ?Y2 ?Y1) (cellempty ?X2 ?Y2) (southeastmove ?X2 ?Y2 ?X3 ?Y3))
(<= (haslegalmove ?Player) (legal ?Player (place ?X ?Y ?Piece)))
(<= (celloccupied ?X ?Y) (true (location ?X ?Y ?Piece)))
(<= (celloccupiedby ?X ?Y ?Player) (true (location ?X ?Y ?Piece)) (owns ?Piece ?Player))
(<= (cellempty ?X ?Y) (file ?X) (rank ?Y) (not (celloccupied ?X ?Y)))
(file a)
(file b)
(file c)
(file d)
(file e)
(file f)
(file g)
(file h)
(file i)
(file j)
(file k)
(file l)
(rank 1)
(rank 2)
(rank 3)
(rank 4)
(rank 5)
(rank 6)
(rank 7)
(rank 8)
(rank 9)
(rank 10)
(rank 11)
(rank 12)

(nextrank 1 2)
(nextrank 2 3)
(nextrank 3 4)
(nextrank 4 5)
(nextrank 5 6)
(nextrank 6 7)
(nextrank 7 8)
(nextrank 8 9)
(nextrank 9 10)
(nextrank 10 11)
(nextrank 11 12)
(nextrank 12 13)
(nextrank 13 14)
(nextrank 14 15)
(nextrank 15 16)

(nextfile a b)
(nextfile b c)
(nextfile c d)
(nextfile d e)
(nextfile e f)
(nextfile f g)
(nextfile g h)
(nextfile h i)
(nextfile i j)
(nextfile j k)
(nextfile k l)
(nextfile l m)
(nextfile m n)
(nextfile n o)
(nextfile o p)
(skiprank 1 3)
(skiprank 2 4)
(skiprank 3 5)
(skiprank 4 6)
(skiprank 5 7)
(skiprank 6 8)
(skiprank 7 9)
(skiprank 8 10)
(skiprank 9 11)
(skiprank 10 12)
(skiprank 11 13)
(skiprank 12 14)
(skiprank 13 15)
(skiprank 14 16)
(skipfile a c)
(skipfile b d)
(skipfile c e)
(skipfile d f)
(skipfile e g)
(skipfile f h)
(skipfile g i)
(skipfile h j)
(skipfile i k)
(skipfile j l)
(skipfile k m)
(skipfile l n)
(skipfile m o)
(skipfile n p)
(pp 0 1)
(pp 1 2)
(pp 2 3)
(pp 3 4)
(pp 4 5)
(pp 5 6)
(pp 6 7)
(pp 7 8)
(pp 8 9)
(pp 9 10)
(pp 10 11)
(pp 11 12)
(pp 12 13)
(pp 13 14)
(pp 14 15)
(pp 15 16)
(pp 16 17)
(scoremap 0 0)
(scoremap 1 6)
(scoremap 2 12)
(scoremap 3 18)
(scoremap 4 24)
(scoremap 5 30)
(scoremap 6 36)
(scoremap 7 42)
(scoremap 8 48)
(scoremap 9 54)
(scoremap 10 60)
(scoremap 11 66)
(scoremap 12 72)
(scoremap 13 78)
(scoremap 14 84)
(scoremap 15 90)
(scoremap 16 100)
(owns blackqueen black)
(owns whitequeen white)
(type whitequeen queen)
(type blackqueen queen)
