1:-include(library('ec_planner/ec_test_incl')).    2:-expects_dialect(pfc).    3 %  loading(always,'ectest/sanity_equals_01.e').
    4
    5% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ectest/sanity_equals_01.e:1
    6% predicate Neighbor(position,position)
    7% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ectest/sanity_equals_01.e:2
    8predicate(neighbor(position,position)).
    9==> mpred_prop(neighbor(position,position),predicate).
   10==> meta_argtypes(neighbor(position,position)).
   11
   12
   13% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ectest/sanity_equals_01.e:3
   14% [position1,position2]
   15% Neighbor(position1,position2) <->
   16% ((position1=1 & position2=2) |
   17%  (position1=1 & position2=3) |
   18%  (position1=1 & position2=4) |
   19%  (position1=2 & position2=3) |
   20%  (position1=2 & position2=4) |
   21%  (position1=3 & position2=4) |
   22%  (position1=5 & position2=6) |
   23%  (position1=5 & position2=7) |
   24%  (position1=5 & position2=8) |
   25%  (position1=6 & position2=7) |
   26%  (position1=6 & position2=8) |
   27%  (position1=7 & position2=8) |
   28%  (position2=1 & position1=2) |
   29%  (position2=1 & position1=3) |
   30%  (position2=1 & position1=4) |
   31%  (position2=2 & position1=3) |
   32%  (position2=2 & position1=4) |
   33%  (position2=3 & position1=4) |
   34%  (position2=5 & position1=6) |
   35%  (position2=5 & position1=7) |
   36%  (position2=5 & position1=8) |
   37%  (position2=6 & position1=7) |
   38%  (position2=6 & position1=8) |
   39%  (position2=7 & position1=8) |
   40%  (position1=4 & position2=7) |
   41%  (position2=4 & position1=7)).
   42
   43 /*  neighbor(Position1, Position2) <->
   44       (   Position1=1,
   45           Position2=2
   46       ;   Position1=1,
   47           Position2=3
   48       ;   Position1=1,
   49           Position2=4
   50       ;   Position1=2,
   51           Position2=3
   52       ;   Position1=2,
   53           Position2=4
   54       ;   Position1=3,
   55           Position2=4
   56       ;   Position1=5,
   57           Position2=6
   58       ;   Position1=5,
   59           Position2=7
   60       ;   Position1=5,
   61           Position2=8
   62       ;   Position1=6,
   63           Position2=7
   64       ;   Position1=6,
   65           Position2=8
   66       ;   Position1=7,
   67           Position2=8
   68       ;   Position2=1,
   69           Position1=2
   70       ;   Position2=1,
   71           Position1=3
   72       ;   Position2=1,
   73           Position1=4
   74       ;   Position2=2,
   75           Position1=3
   76       ;   Position2=2,
   77           Position1=4
   78       ;   Position2=3,
   79           Position1=4
   80       ;   Position2=5,
   81           Position1=6
   82       ;   Position2=5,
   83           Position1=7
   84       ;   Position2=5,
   85           Position1=8
   86       ;   Position2=6,
   87           Position1=7
   88       ;   Position2=6,
   89           Position1=8
   90       ;   Position2=7,
   91           Position1=8
   92       ;   Position1=4,
   93           Position2=7
   94       ;   Position2=4,
   95           Position1=7
   96       ).
   97 */
   98
   99 /*  neighbor(Position1, Position2) ->
  100       (   equals(Position1, 1),
  101           equals(Position2, 2)
  102       ;   equals(Position1, 1),
  103           equals(Position2, 3)
  104       ;   equals(Position1, 1),
  105           equals(Position2, 4)
  106       ;   equals(Position1, 2),
  107           equals(Position2, 3)
  108       ;   equals(Position1, 2),
  109           equals(Position2, 4)
  110       ;   equals(Position1, 3),
  111           equals(Position2, 4)
  112       ;   equals(Position1, 5),
  113           equals(Position2, 6)
  114       ;   equals(Position1, 5),
  115           equals(Position2, 7)
  116       ;   equals(Position1, 5),
  117           equals(Position2, 8)
  118       ;   equals(Position1, 6),
  119           equals(Position2, 7)
  120       ;   equals(Position1, 6),
  121           equals(Position2, 8)
  122       ;   equals(Position1, 7),
  123           equals(Position2, 8)
  124       ;   equals(Position2, 1),
  125           equals(Position1, 2)
  126       ;   equals(Position2, 1),
  127           equals(Position1, 3)
  128       ;   equals(Position2, 1),
  129           equals(Position1, 4)
  130       ;   equals(Position2, 2),
  131           equals(Position1, 3)
  132       ;   equals(Position2, 2),
  133           equals(Position1, 4)
  134       ;   equals(Position2, 3),
  135           equals(Position1, 4)
  136       ;   equals(Position2, 5),
  137           equals(Position1, 6)
  138       ;   equals(Position2, 5),
  139           equals(Position1, 7)
  140       ;   equals(Position2, 5),
  141           equals(Position1, 8)
  142       ;   equals(Position2, 6),
  143           equals(Position1, 7)
  144       ;   equals(Position2, 6),
  145           equals(Position1, 8)
  146       ;   equals(Position2, 7),
  147           equals(Position1, 8)
  148       ;   equals(Position1, 4),
  149           equals(Position2, 7)
  150       ;   equals(Position2, 4),
  151           equals(Position1, 7)
  152       ).
  153 */
  154
  155 /*  not(neighbor(Position1, Position2)) :-
  156       (   not(equals(Position1, 1))
  157       ;   not(equals(Position2, 2))
  158       ),
  159       (   not(equals(Position1, 1))
  160       ;   not(equals(Position2, 3))
  161       ),
  162       (   not(equals(Position1, 1))
  163       ;   not(equals(Position2, 4))
  164       ),
  165       (   not(equals(Position1, 2))
  166       ;   not(equals(Position2, 3))
  167       ),
  168       (   not(equals(Position1, 2))
  169       ;   not(equals(Position2, 4))
  170       ),
  171       (   not(equals(Position1, 3))
  172       ;   not(equals(Position2, 4))
  173       ),
  174       (   not(equals(Position1, 5))
  175       ;   not(equals(Position2, 6))
  176       ),
  177       (   not(equals(Position1, 5))
  178       ;   not(equals(Position2, 7))
  179       ),
  180       (   not(equals(Position1, 5))
  181       ;   not(equals(Position2, 8))
  182       ),
  183       (   not(equals(Position1, 6))
  184       ;   not(equals(Position2, 7))
  185       ),
  186       (   not(equals(Position1, 6))
  187       ;   not(equals(Position2, 8))
  188       ),
  189       (   not(equals(Position1, 7))
  190       ;   not(equals(Position2, 8))
  191       ),
  192       (   not(equals(Position2, 1))
  193       ;   not(equals(Position1, 2))
  194       ),
  195       (   not(equals(Position2, 1))
  196       ;   not(equals(Position1, 3))
  197       ),
  198       (   not(equals(Position2, 1))
  199       ;   not(equals(Position1, 4))
  200       ),
  201       (   not(equals(Position2, 2))
  202       ;   not(equals(Position1, 3))
  203       ),
  204       (   not(equals(Position2, 2))
  205       ;   not(equals(Position1, 4))
  206       ),
  207       (   not(equals(Position2, 3))
  208       ;   not(equals(Position1, 4))
  209       ),
  210       (   not(equals(Position2, 5))
  211       ;   not(equals(Position1, 6))
  212       ),
  213       (   not(equals(Position2, 5))
  214       ;   not(equals(Position1, 7))
  215       ),
  216       (   not(equals(Position2, 5))
  217       ;   not(equals(Position1, 8))
  218       ),
  219       (   not(equals(Position2, 6))
  220       ;   not(equals(Position1, 7))
  221       ),
  222       (   not(equals(Position2, 6))
  223       ;   not(equals(Position1, 8))
  224       ),
  225       (   not(equals(Position2, 7))
  226       ;   not(equals(Position1, 8))
  227       ),
  228       (   not(equals(Position1, 4))
  229       ;   not(equals(Position2, 7))
  230       ),
  231       (   not(equals(Position2, 4))
  232       ;   not(equals(Position1, 7))
  233       ).
  234 */
  235% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ectest/sanity_equals_01.e:30
  236axiom(not(neighbor(Position1, Position2)),
  237   
  238    [  (not(equals(Position1, 1));not(equals(Position2, 2))),
  239       (not(equals(Position1, 1));not(equals(Position2, 3))),
  240       (not(equals(Position1, 1));not(equals(Position2, 4))),
  241       (not(equals(Position1, 2));not(equals(Position2, 3))),
  242       (not(equals(Position1, 2));not(equals(Position2, 4))),
  243       (not(equals(Position1, 3));not(equals(Position2, 4))),
  244       (not(equals(Position1, 5));not(equals(Position2, 6))),
  245       (not(equals(Position1, 5));not(equals(Position2, 7))),
  246       (not(equals(Position1, 5));not(equals(Position2, 8))),
  247       (not(equals(Position1, 6));not(equals(Position2, 7))),
  248       (not(equals(Position1, 6));not(equals(Position2, 8))),
  249       (not(equals(Position1, 7));not(equals(Position2, 8))),
  250       (not(equals(Position2, 1));not(equals(Position1, 2))),
  251       (not(equals(Position2, 1));not(equals(Position1, 3))),
  252       (not(equals(Position2, 1));not(equals(Position1, 4))),
  253       (not(equals(Position2, 2));not(equals(Position1, 3))),
  254       (not(equals(Position2, 2));not(equals(Position1, 4))),
  255       (not(equals(Position2, 3));not(equals(Position1, 4))),
  256       (not(equals(Position2, 5));not(equals(Position1, 6))),
  257       (not(equals(Position2, 5));not(equals(Position1, 7))),
  258       (not(equals(Position2, 5));not(equals(Position1, 8))),
  259       (not(equals(Position2, 6));not(equals(Position1, 7))),
  260       (not(equals(Position2, 6));not(equals(Position1, 8))),
  261       (not(equals(Position2, 7));not(equals(Position1, 8))),
  262       (not(equals(Position1, 4));not(equals(Position2, 7))),
  263       (not(equals(Position2, 4));not(equals(Position1, 7)))
  264    ]).
  265
  266 /*  equals(Position1, 1) :-
  267       ( (   not(equals(Position1, 1))
  268         ;   not(equals(Position2, 3))
  269         ),
  270         (   not(equals(Position1, 1))
  271         ;   not(equals(Position2, 4))
  272         ),
  273         (   not(equals(Position1, 2))
  274         ;   not(equals(Position2, 3))
  275         ),
  276         (   not(equals(Position1, 2))
  277         ;   not(equals(Position2, 4))
  278         ),
  279         (   not(equals(Position1, 3))
  280         ;   not(equals(Position2, 4))
  281         ),
  282         (   not(equals(Position1, 5))
  283         ;   not(equals(Position2, 6))
  284         ),
  285         (   not(equals(Position1, 5))
  286         ;   not(equals(Position2, 7))
  287         ),
  288         (   not(equals(Position1, 5))
  289         ;   not(equals(Position2, 8))
  290         ),
  291         (   not(equals(Position1, 6))
  292         ;   not(equals(Position2, 7))
  293         ),
  294         (   not(equals(Position1, 6))
  295         ;   not(equals(Position2, 8))
  296         ),
  297         (   not(equals(Position1, 7))
  298         ;   not(equals(Position2, 8))
  299         ),
  300         (   not(equals(Position2, 1))
  301         ;   not(equals(Position1, 2))
  302         ),
  303         (   not(equals(Position2, 1))
  304         ;   not(equals(Position1, 3))
  305         ),
  306         (   not(equals(Position2, 1))
  307         ;   not(equals(Position1, 4))
  308         ),
  309         (   not(equals(Position2, 2))
  310         ;   not(equals(Position1, 3))
  311         ),
  312         (   not(equals(Position2, 2))
  313         ;   not(equals(Position1, 4))
  314         ),
  315         (   not(equals(Position2, 3))
  316         ;   not(equals(Position1, 4))
  317         ),
  318         (   not(equals(Position2, 5))
  319         ;   not(equals(Position1, 6))
  320         ),
  321         (   not(equals(Position2, 5))
  322         ;   not(equals(Position1, 7))
  323         ),
  324         (   not(equals(Position2, 5))
  325         ;   not(equals(Position1, 8))
  326         ),
  327         (   not(equals(Position2, 6))
  328         ;   not(equals(Position1, 7))
  329         ),
  330         (   not(equals(Position2, 6))
  331         ;   not(equals(Position1, 8))
  332         ),
  333         (   not(equals(Position2, 7))
  334         ;   not(equals(Position1, 8))
  335         ),
  336         (   not(equals(Position1, 4))
  337         ;   not(equals(Position2, 7))
  338         ),
  339         (   not(equals(Position2, 4))
  340         ;   not(equals(Position1, 7))
  341         )
  342       ),
  343       neighbor(Position1, Position2).
  344 */
  345axiom(equals(Position1, 1),
  346   
  347    [  (not(equals(Position1, 1));not(equals(Position2, 3))),
  348       (not(equals(Position1, 1));not(equals(Position2, 4))),
  349       (not(equals(Position1, 2));not(equals(Position2, 3))),
  350       (not(equals(Position1, 2));not(equals(Position2, 4))),
  351       (not(equals(Position1, 3));not(equals(Position2, 4))),
  352       (not(equals(Position1, 5));not(equals(Position2, 6))),
  353       (not(equals(Position1, 5));not(equals(Position2, 7))),
  354       (not(equals(Position1, 5));not(equals(Position2, 8))),
  355       (not(equals(Position1, 6));not(equals(Position2, 7))),
  356       (not(equals(Position1, 6));not(equals(Position2, 8))),
  357       (not(equals(Position1, 7));not(equals(Position2, 8))),
  358       (not(equals(Position2, 1));not(equals(Position1, 2))),
  359       (not(equals(Position2, 1));not(equals(Position1, 3))),
  360       (not(equals(Position2, 1));not(equals(Position1, 4))),
  361       (not(equals(Position2, 2));not(equals(Position1, 3))),
  362       (not(equals(Position2, 2));not(equals(Position1, 4))),
  363       (not(equals(Position2, 3));not(equals(Position1, 4))),
  364       (not(equals(Position2, 5));not(equals(Position1, 6))),
  365       (not(equals(Position2, 5));not(equals(Position1, 7))),
  366       (not(equals(Position2, 5));not(equals(Position1, 8))),
  367       (not(equals(Position2, 6));not(equals(Position1, 7))),
  368       (not(equals(Position2, 6));not(equals(Position1, 8))),
  369       (not(equals(Position2, 7));not(equals(Position1, 8))),
  370       (not(equals(Position1, 4));not(equals(Position2, 7))),
  371       (not(equals(Position2, 4));not(equals(Position1, 7))),
  372      neighbor(Position1, Position2)
  373    ]).
  374
  375 /*  equals(Position2, 2) :-
  376       ( (   not(equals(Position1, 1))
  377         ;   not(equals(Position2, 3))
  378         ),
  379         (   not(equals(Position1, 1))
  380         ;   not(equals(Position2, 4))
  381         ),
  382         (   not(equals(Position1, 2))
  383         ;   not(equals(Position2, 3))
  384         ),
  385         (   not(equals(Position1, 2))
  386         ;   not(equals(Position2, 4))
  387         ),
  388         (   not(equals(Position1, 3))
  389         ;   not(equals(Position2, 4))
  390         ),
  391         (   not(equals(Position1, 5))
  392         ;   not(equals(Position2, 6))
  393         ),
  394         (   not(equals(Position1, 5))
  395         ;   not(equals(Position2, 7))
  396         ),
  397         (   not(equals(Position1, 5))
  398         ;   not(equals(Position2, 8))
  399         ),
  400         (   not(equals(Position1, 6))
  401         ;   not(equals(Position2, 7))
  402         ),
  403         (   not(equals(Position1, 6))
  404         ;   not(equals(Position2, 8))
  405         ),
  406         (   not(equals(Position1, 7))
  407         ;   not(equals(Position2, 8))
  408         ),
  409         (   not(equals(Position2, 1))
  410         ;   not(equals(Position1, 2))
  411         ),
  412         (   not(equals(Position2, 1))
  413         ;   not(equals(Position1, 3))
  414         ),
  415         (   not(equals(Position2, 1))
  416         ;   not(equals(Position1, 4))
  417         ),
  418         (   not(equals(Position2, 2))
  419         ;   not(equals(Position1, 3))
  420         ),
  421         (   not(equals(Position2, 2))
  422         ;   not(equals(Position1, 4))
  423         ),
  424         (   not(equals(Position2, 3))
  425         ;   not(equals(Position1, 4))
  426         ),
  427         (   not(equals(Position2, 5))
  428         ;   not(equals(Position1, 6))
  429         ),
  430         (   not(equals(Position2, 5))
  431         ;   not(equals(Position1, 7))
  432         ),
  433         (   not(equals(Position2, 5))
  434         ;   not(equals(Position1, 8))
  435         ),
  436         (   not(equals(Position2, 6))
  437         ;   not(equals(Position1, 7))
  438         ),
  439         (   not(equals(Position2, 6))
  440         ;   not(equals(Position1, 8))
  441         ),
  442         (   not(equals(Position2, 7))
  443         ;   not(equals(Position1, 8))
  444         ),
  445         (   not(equals(Position1, 4))
  446         ;   not(equals(Position2, 7))
  447         ),
  448         (   not(equals(Position2, 4))
  449         ;   not(equals(Position1, 7))
  450         )
  451       ),
  452       neighbor(Position1, Position2).
  453 */
  454axiom(equals(Position2, 2),
  455   
  456    [  (not(equals(Position1, 1));not(equals(Position2, 3))),
  457       (not(equals(Position1, 1));not(equals(Position2, 4))),
  458       (not(equals(Position1, 2));not(equals(Position2, 3))),
  459       (not(equals(Position1, 2));not(equals(Position2, 4))),
  460       (not(equals(Position1, 3));not(equals(Position2, 4))),
  461       (not(equals(Position1, 5));not(equals(Position2, 6))),
  462       (not(equals(Position1, 5));not(equals(Position2, 7))),
  463       (not(equals(Position1, 5));not(equals(Position2, 8))),
  464       (not(equals(Position1, 6));not(equals(Position2, 7))),
  465       (not(equals(Position1, 6));not(equals(Position2, 8))),
  466       (not(equals(Position1, 7));not(equals(Position2, 8))),
  467       (not(equals(Position2, 1));not(equals(Position1, 2))),
  468       (not(equals(Position2, 1));not(equals(Position1, 3))),
  469       (not(equals(Position2, 1));not(equals(Position1, 4))),
  470       (not(equals(Position2, 2));not(equals(Position1, 3))),
  471       (not(equals(Position2, 2));not(equals(Position1, 4))),
  472       (not(equals(Position2, 3));not(equals(Position1, 4))),
  473       (not(equals(Position2, 5));not(equals(Position1, 6))),
  474       (not(equals(Position2, 5));not(equals(Position1, 7))),
  475       (not(equals(Position2, 5));not(equals(Position1, 8))),
  476       (not(equals(Position2, 6));not(equals(Position1, 7))),
  477       (not(equals(Position2, 6));not(equals(Position1, 8))),
  478       (not(equals(Position2, 7));not(equals(Position1, 8))),
  479       (not(equals(Position1, 4));not(equals(Position2, 7))),
  480       (not(equals(Position2, 4));not(equals(Position1, 7))),
  481      neighbor(Position1, Position2)
  482    ]).
  483
  484 /*  equals(Position1, 1) :-
  485       ( (   not(equals(Position1, 1))
  486         ;   not(equals(Position2, 4))
  487         ),
  488         (   not(equals(Position1, 2))
  489         ;   not(equals(Position2, 3))
  490         ),
  491         (   not(equals(Position1, 2))
  492         ;   not(equals(Position2, 4))
  493         ),
  494         (   not(equals(Position1, 3))
  495         ;   not(equals(Position2, 4))
  496         ),
  497         (   not(equals(Position1, 5))
  498         ;   not(equals(Position2, 6))
  499         ),
  500         (   not(equals(Position1, 5))
  501         ;   not(equals(Position2, 7))
  502         ),
  503         (   not(equals(Position1, 5))
  504         ;   not(equals(Position2, 8))
  505         ),
  506         (   not(equals(Position1, 6))
  507         ;   not(equals(Position2, 7))
  508         ),
  509         (   not(equals(Position1, 6))
  510         ;   not(equals(Position2, 8))
  511         ),
  512         (   not(equals(Position1, 7))
  513         ;   not(equals(Position2, 8))
  514         ),
  515         (   not(equals(Position2, 1))
  516         ;   not(equals(Position1, 2))
  517         ),
  518         (   not(equals(Position2, 1))
  519         ;   not(equals(Position1, 3))
  520         ),
  521         (   not(equals(Position2, 1))
  522         ;   not(equals(Position1, 4))
  523         ),
  524         (   not(equals(Position2, 2))
  525         ;   not(equals(Position1, 3))
  526         ),
  527         (   not(equals(Position2, 2))
  528         ;   not(equals(Position1, 4))
  529         ),
  530         (   not(equals(Position2, 3))
  531         ;   not(equals(Position1, 4))
  532         ),
  533         (   not(equals(Position2, 5))
  534         ;   not(equals(Position1, 6))
  535         ),
  536         (   not(equals(Position2, 5))
  537         ;   not(equals(Position1, 7))
  538         ),
  539         (   not(equals(Position2, 5))
  540         ;   not(equals(Position1, 8))
  541         ),
  542         (   not(equals(Position2, 6))
  543         ;   not(equals(Position1, 7))
  544         ),
  545         (   not(equals(Position2, 6))
  546         ;   not(equals(Position1, 8))
  547         ),
  548         (   not(equals(Position2, 7))
  549         ;   not(equals(Position1, 8))
  550         ),
  551         (   not(equals(Position1, 4))
  552         ;   not(equals(Position2, 7))
  553         ),
  554         (   not(equals(Position2, 4))
  555         ;   not(equals(Position1, 7))
  556         )
  557       ),
  558       (   not(equals(Position1, 1))
  559       ;   not(equals(Position2, 2))
  560       ),
  561       neighbor(Position1, Position2).
  562 */
  563axiom(equals(Position1, 1),
  564   
  565    [  (not(equals(Position1, 1));not(equals(Position2, 4))),
  566       (not(equals(Position1, 2));not(equals(Position2, 3))),
  567       (not(equals(Position1, 2));not(equals(Position2, 4))),
  568       (not(equals(Position1, 3));not(equals(Position2, 4))),
  569       (not(equals(Position1, 5));not(equals(Position2, 6))),
  570       (not(equals(Position1, 5));not(equals(Position2, 7))),
  571       (not(equals(Position1, 5));not(equals(Position2, 8))),
  572       (not(equals(Position1, 6));not(equals(Position2, 7))),
  573       (not(equals(Position1, 6));not(equals(Position2, 8))),
  574       (not(equals(Position1, 7));not(equals(Position2, 8))),
  575       (not(equals(Position2, 1));not(equals(Position1, 2))),
  576       (not(equals(Position2, 1));not(equals(Position1, 3))),
  577       (not(equals(Position2, 1));not(equals(Position1, 4))),
  578       (not(equals(Position2, 2));not(equals(Position1, 3))),
  579       (not(equals(Position2, 2));not(equals(Position1, 4))),
  580       (not(equals(Position2, 3));not(equals(Position1, 4))),
  581       (not(equals(Position2, 5));not(equals(Position1, 6))),
  582       (not(equals(Position2, 5));not(equals(Position1, 7))),
  583       (not(equals(Position2, 5));not(equals(Position1, 8))),
  584       (not(equals(Position2, 6));not(equals(Position1, 7))),
  585       (not(equals(Position2, 6));not(equals(Position1, 8))),
  586       (not(equals(Position2, 7));not(equals(Position1, 8))),
  587       (not(equals(Position1, 4));not(equals(Position2, 7))),
  588       (not(equals(Position2, 4));not(equals(Position1, 7))),
  589       (not(equals(Position1, 1));not(equals(Position2, 2))),
  590      neighbor(Position1, Position2)
  591    ]).
  592
  593 /*  equals(Position2, 3) :-
  594       ( (   not(equals(Position1, 1))
  595         ;   not(equals(Position2, 4))
  596         ),
  597         (   not(equals(Position1, 2))
  598         ;   not(equals(Position2, 3))
  599         ),
  600         (   not(equals(Position1, 2))
  601         ;   not(equals(Position2, 4))
  602         ),
  603         (   not(equals(Position1, 3))
  604         ;   not(equals(Position2, 4))
  605         ),
  606         (   not(equals(Position1, 5))
  607         ;   not(equals(Position2, 6))
  608         ),
  609         (   not(equals(Position1, 5))
  610         ;   not(equals(Position2, 7))
  611         ),
  612         (   not(equals(Position1, 5))
  613         ;   not(equals(Position2, 8))
  614         ),
  615         (   not(equals(Position1, 6))
  616         ;   not(equals(Position2, 7))
  617         ),
  618         (   not(equals(Position1, 6))
  619         ;   not(equals(Position2, 8))
  620         ),
  621         (   not(equals(Position1, 7))
  622         ;   not(equals(Position2, 8))
  623         ),
  624         (   not(equals(Position2, 1))
  625         ;   not(equals(Position1, 2))
  626         ),
  627         (   not(equals(Position2, 1))
  628         ;   not(equals(Position1, 3))
  629         ),
  630         (   not(equals(Position2, 1))
  631         ;   not(equals(Position1, 4))
  632         ),
  633         (   not(equals(Position2, 2))
  634         ;   not(equals(Position1, 3))
  635         ),
  636         (   not(equals(Position2, 2))
  637         ;   not(equals(Position1, 4))
  638         ),
  639         (   not(equals(Position2, 3))
  640         ;   not(equals(Position1, 4))
  641         ),
  642         (   not(equals(Position2, 5))
  643         ;   not(equals(Position1, 6))
  644         ),
  645         (   not(equals(Position2, 5))
  646         ;   not(equals(Position1, 7))
  647         ),
  648         (   not(equals(Position2, 5))
  649         ;   not(equals(Position1, 8))
  650         ),
  651         (   not(equals(Position2, 6))
  652         ;   not(equals(Position1, 7))
  653         ),
  654         (   not(equals(Position2, 6))
  655         ;   not(equals(Position1, 8))
  656         ),
  657         (   not(equals(Position2, 7))
  658         ;   not(equals(Position1, 8))
  659         ),
  660         (   not(equals(Position1, 4))
  661         ;   not(equals(Position2, 7))
  662         ),
  663         (   not(equals(Position2, 4))
  664         ;   not(equals(Position1, 7))
  665         )
  666       ),
  667       (   not(equals(Position1, 1))
  668       ;   not(equals(Position2, 2))
  669       ),
  670       neighbor(Position1, Position2).
  671 */
  672axiom(equals(Position2, 3),
  673   
  674    [  (not(equals(Position1, 1));not(equals(Position2, 4))),
  675       (not(equals(Position1, 2));not(equals(Position2, 3))),
  676       (not(equals(Position1, 2));not(equals(Position2, 4))),
  677       (not(equals(Position1, 3));not(equals(Position2, 4))),
  678       (not(equals(Position1, 5));not(equals(Position2, 6))),
  679       (not(equals(Position1, 5));not(equals(Position2, 7))),
  680       (not(equals(Position1, 5));not(equals(Position2, 8))),
  681       (not(equals(Position1, 6));not(equals(Position2, 7))),
  682       (not(equals(Position1, 6));not(equals(Position2, 8))),
  683       (not(equals(Position1, 7));not(equals(Position2, 8))),
  684       (not(equals(Position2, 1));not(equals(Position1, 2))),
  685       (not(equals(Position2, 1));not(equals(Position1, 3))),
  686       (not(equals(Position2, 1));not(equals(Position1, 4))),
  687       (not(equals(Position2, 2));not(equals(Position1, 3))),
  688       (not(equals(Position2, 2));not(equals(Position1, 4))),
  689       (not(equals(Position2, 3));not(equals(Position1, 4))),
  690       (not(equals(Position2, 5));not(equals(Position1, 6))),
  691       (not(equals(Position2, 5));not(equals(Position1, 7))),
  692       (not(equals(Position2, 5));not(equals(Position1, 8))),
  693       (not(equals(Position2, 6));not(equals(Position1, 7))),
  694       (not(equals(Position2, 6));not(equals(Position1, 8))),
  695       (not(equals(Position2, 7));not(equals(Position1, 8))),
  696       (not(equals(Position1, 4));not(equals(Position2, 7))),
  697       (not(equals(Position2, 4));not(equals(Position1, 7))),
  698       (not(equals(Position1, 1));not(equals(Position2, 2))),
  699      neighbor(Position1, Position2)
  700    ]).
  701
  702 /*  equals(Position1, 1) :-
  703       ( (   not(equals(Position1, 2))
  704         ;   not(equals(Position2, 3))
  705         ),
  706         (   not(equals(Position1, 2))
  707         ;   not(equals(Position2, 4))
  708         ),
  709         (   not(equals(Position1, 3))
  710         ;   not(equals(Position2, 4))
  711         ),
  712         (   not(equals(Position1, 5))
  713         ;   not(equals(Position2, 6))
  714         ),
  715         (   not(equals(Position1, 5))
  716         ;   not(equals(Position2, 7))
  717         ),
  718         (   not(equals(Position1, 5))
  719         ;   not(equals(Position2, 8))
  720         ),
  721         (   not(equals(Position1, 6))
  722         ;   not(equals(Position2, 7))
  723         ),
  724         (   not(equals(Position1, 6))
  725         ;   not(equals(Position2, 8))
  726         ),
  727         (   not(equals(Position1, 7))
  728         ;   not(equals(Position2, 8))
  729         ),
  730         (   not(equals(Position2, 1))
  731         ;   not(equals(Position1, 2))
  732         ),
  733         (   not(equals(Position2, 1))
  734         ;   not(equals(Position1, 3))
  735         ),
  736         (   not(equals(Position2, 1))
  737         ;   not(equals(Position1, 4))
  738         ),
  739         (   not(equals(Position2, 2))
  740         ;   not(equals(Position1, 3))
  741         ),
  742         (   not(equals(Position2, 2))
  743         ;   not(equals(Position1, 4))
  744         ),
  745         (   not(equals(Position2, 3))
  746         ;   not(equals(Position1, 4))
  747         ),
  748         (   not(equals(Position2, 5))
  749         ;   not(equals(Position1, 6))
  750         ),
  751         (   not(equals(Position2, 5))
  752         ;   not(equals(Position1, 7))
  753         ),
  754         (   not(equals(Position2, 5))
  755         ;   not(equals(Position1, 8))
  756         ),
  757         (   not(equals(Position2, 6))
  758         ;   not(equals(Position1, 7))
  759         ),
  760         (   not(equals(Position2, 6))
  761         ;   not(equals(Position1, 8))
  762         ),
  763         (   not(equals(Position2, 7))
  764         ;   not(equals(Position1, 8))
  765         ),
  766         (   not(equals(Position1, 4))
  767         ;   not(equals(Position2, 7))
  768         ),
  769         (   not(equals(Position2, 4))
  770         ;   not(equals(Position1, 7))
  771         )
  772       ),
  773       (   not(equals(Position1, 1))
  774       ;   not(equals(Position2, 3))
  775       ),
  776       (   not(equals(Position1, 1))
  777       ;   not(equals(Position2, 2))
  778       ),
  779       neighbor(Position1, Position2).
  780 */
  781axiom(equals(Position1, 1),
  782   
  783    [  (not(equals(Position1, 2));not(equals(Position2, 3))),
  784       (not(equals(Position1, 2));not(equals(Position2, 4))),
  785       (not(equals(Position1, 3));not(equals(Position2, 4))),
  786       (not(equals(Position1, 5));not(equals(Position2, 6))),
  787       (not(equals(Position1, 5));not(equals(Position2, 7))),
  788       (not(equals(Position1, 5));not(equals(Position2, 8))),
  789       (not(equals(Position1, 6));not(equals(Position2, 7))),
  790       (not(equals(Position1, 6));not(equals(Position2, 8))),
  791       (not(equals(Position1, 7));not(equals(Position2, 8))),
  792       (not(equals(Position2, 1));not(equals(Position1, 2))),
  793       (not(equals(Position2, 1));not(equals(Position1, 3))),
  794       (not(equals(Position2, 1));not(equals(Position1, 4))),
  795       (not(equals(Position2, 2));not(equals(Position1, 3))),
  796       (not(equals(Position2, 2));not(equals(Position1, 4))),
  797       (not(equals(Position2, 3));not(equals(Position1, 4))),
  798       (not(equals(Position2, 5));not(equals(Position1, 6))),
  799       (not(equals(Position2, 5));not(equals(Position1, 7))),
  800       (not(equals(Position2, 5));not(equals(Position1, 8))),
  801       (not(equals(Position2, 6));not(equals(Position1, 7))),
  802       (not(equals(Position2, 6));not(equals(Position1, 8))),
  803       (not(equals(Position2, 7));not(equals(Position1, 8))),
  804       (not(equals(Position1, 4));not(equals(Position2, 7))),
  805       (not(equals(Position2, 4));not(equals(Position1, 7))),
  806       (not(equals(Position1, 1));not(equals(Position2, 3))),
  807       (not(equals(Position1, 1));not(equals(Position2, 2))),
  808      neighbor(Position1, Position2)
  809    ]).
  810
  811 /*  equals(Position2, 4) :-
  812       ( (   not(equals(Position1, 2))
  813         ;   not(equals(Position2, 3))
  814         ),
  815         (   not(equals(Position1, 2))
  816         ;   not(equals(Position2, 4))
  817         ),
  818         (   not(equals(Position1, 3))
  819         ;   not(equals(Position2, 4))
  820         ),
  821         (   not(equals(Position1, 5))
  822         ;   not(equals(Position2, 6))
  823         ),
  824         (   not(equals(Position1, 5))
  825         ;   not(equals(Position2, 7))
  826         ),
  827         (   not(equals(Position1, 5))
  828         ;   not(equals(Position2, 8))
  829         ),
  830         (   not(equals(Position1, 6))
  831         ;   not(equals(Position2, 7))
  832         ),
  833         (   not(equals(Position1, 6))
  834         ;   not(equals(Position2, 8))
  835         ),
  836         (   not(equals(Position1, 7))
  837         ;   not(equals(Position2, 8))
  838         ),
  839         (   not(equals(Position2, 1))
  840         ;   not(equals(Position1, 2))
  841         ),
  842         (   not(equals(Position2, 1))
  843         ;   not(equals(Position1, 3))
  844         ),
  845         (   not(equals(Position2, 1))
  846         ;   not(equals(Position1, 4))
  847         ),
  848         (   not(equals(Position2, 2))
  849         ;   not(equals(Position1, 3))
  850         ),
  851         (   not(equals(Position2, 2))
  852         ;   not(equals(Position1, 4))
  853         ),
  854         (   not(equals(Position2, 3))
  855         ;   not(equals(Position1, 4))
  856         ),
  857         (   not(equals(Position2, 5))
  858         ;   not(equals(Position1, 6))
  859         ),
  860         (   not(equals(Position2, 5))
  861         ;   not(equals(Position1, 7))
  862         ),
  863         (   not(equals(Position2, 5))
  864         ;   not(equals(Position1, 8))
  865         ),
  866         (   not(equals(Position2, 6))
  867         ;   not(equals(Position1, 7))
  868         ),
  869         (   not(equals(Position2, 6))
  870         ;   not(equals(Position1, 8))
  871         ),
  872         (   not(equals(Position2, 7))
  873         ;   not(equals(Position1, 8))
  874         ),
  875         (   not(equals(Position1, 4))
  876         ;   not(equals(Position2, 7))
  877         ),
  878         (   not(equals(Position2, 4))
  879         ;   not(equals(Position1, 7))
  880         )
  881       ),
  882       (   not(equals(Position1, 1))
  883       ;   not(equals(Position2, 3))
  884       ),
  885       (   not(equals(Position1, 1))
  886       ;   not(equals(Position2, 2))
  887       ),
  888       neighbor(Position1, Position2).
  889 */
  890axiom(equals(Position2, 4),
  891   
  892    [  (not(equals(Position1, 2));not(equals(Position2, 3))),
  893       (not(equals(Position1, 2));not(equals(Position2, 4))),
  894       (not(equals(Position1, 3));not(equals(Position2, 4))),
  895       (not(equals(Position1, 5));not(equals(Position2, 6))),
  896       (not(equals(Position1, 5));not(equals(Position2, 7))),
  897       (not(equals(Position1, 5));not(equals(Position2, 8))),
  898       (not(equals(Position1, 6));not(equals(Position2, 7))),
  899       (not(equals(Position1, 6));not(equals(Position2, 8))),
  900       (not(equals(Position1, 7));not(equals(Position2, 8))),
  901       (not(equals(Position2, 1));not(equals(Position1, 2))),
  902       (not(equals(Position2, 1));not(equals(Position1, 3))),
  903       (not(equals(Position2, 1));not(equals(Position1, 4))),
  904       (not(equals(Position2, 2));not(equals(Position1, 3))),
  905       (not(equals(Position2, 2));not(equals(Position1, 4))),
  906       (not(equals(Position2, 3));not(equals(Position1, 4))),
  907       (not(equals(Position2, 5));not(equals(Position1, 6))),
  908       (not(equals(Position2, 5));not(equals(Position1, 7))),
  909       (not(equals(Position2, 5));not(equals(Position1, 8))),
  910       (not(equals(Position2, 6));not(equals(Position1, 7))),
  911       (not(equals(Position2, 6));not(equals(Position1, 8))),
  912       (not(equals(Position2, 7));not(equals(Position1, 8))),
  913       (not(equals(Position1, 4));not(equals(Position2, 7))),
  914       (not(equals(Position2, 4));not(equals(Position1, 7))),
  915       (not(equals(Position1, 1));not(equals(Position2, 3))),
  916       (not(equals(Position1, 1));not(equals(Position2, 2))),
  917      neighbor(Position1, Position2)
  918    ]).
  919
  920 /*  equals(Position1, 2) :-
  921       ( (   not(equals(Position1, 2))
  922         ;   not(equals(Position2, 4))
  923         ),
  924         (   not(equals(Position1, 3))
  925         ;   not(equals(Position2, 4))
  926         ),
  927         (   not(equals(Position1, 5))
  928         ;   not(equals(Position2, 6))
  929         ),
  930         (   not(equals(Position1, 5))
  931         ;   not(equals(Position2, 7))
  932         ),
  933         (   not(equals(Position1, 5))
  934         ;   not(equals(Position2, 8))
  935         ),
  936         (   not(equals(Position1, 6))
  937         ;   not(equals(Position2, 7))
  938         ),
  939         (   not(equals(Position1, 6))
  940         ;   not(equals(Position2, 8))
  941         ),
  942         (   not(equals(Position1, 7))
  943         ;   not(equals(Position2, 8))
  944         ),
  945         (   not(equals(Position2, 1))
  946         ;   not(equals(Position1, 2))
  947         ),
  948         (   not(equals(Position2, 1))
  949         ;   not(equals(Position1, 3))
  950         ),
  951         (   not(equals(Position2, 1))
  952         ;   not(equals(Position1, 4))
  953         ),
  954         (   not(equals(Position2, 2))
  955         ;   not(equals(Position1, 3))
  956         ),
  957         (   not(equals(Position2, 2))
  958         ;   not(equals(Position1, 4))
  959         ),
  960         (   not(equals(Position2, 3))
  961         ;   not(equals(Position1, 4))
  962         ),
  963         (   not(equals(Position2, 5))
  964         ;   not(equals(Position1, 6))
  965         ),
  966         (   not(equals(Position2, 5))
  967         ;   not(equals(Position1, 7))
  968         ),
  969         (   not(equals(Position2, 5))
  970         ;   not(equals(Position1, 8))
  971         ),
  972         (   not(equals(Position2, 6))
  973         ;   not(equals(Position1, 7))
  974         ),
  975         (   not(equals(Position2, 6))
  976         ;   not(equals(Position1, 8))
  977         ),
  978         (   not(equals(Position2, 7))
  979         ;   not(equals(Position1, 8))
  980         ),
  981         (   not(equals(Position1, 4))
  982         ;   not(equals(Position2, 7))
  983         ),
  984         (   not(equals(Position2, 4))
  985         ;   not(equals(Position1, 7))
  986         )
  987       ),
  988       (   not(equals(Position1, 1))
  989       ;   not(equals(Position2, 4))
  990       ),
  991       (   not(equals(Position1, 1))
  992       ;   not(equals(Position2, 3))
  993       ),
  994       (   not(equals(Position1, 1))
  995       ;   not(equals(Position2, 2))
  996       ),
  997       neighbor(Position1, Position2).
  998 */
  999axiom(equals(Position1, 2),
 1000   
 1001    [  (not(equals(Position1, 2));not(equals(Position2, 4))),
 1002       (not(equals(Position1, 3));not(equals(Position2, 4))),
 1003       (not(equals(Position1, 5));not(equals(Position2, 6))),
 1004       (not(equals(Position1, 5));not(equals(Position2, 7))),
 1005       (not(equals(Position1, 5));not(equals(Position2, 8))),
 1006       (not(equals(Position1, 6));not(equals(Position2, 7))),
 1007       (not(equals(Position1, 6));not(equals(Position2, 8))),
 1008       (not(equals(Position1, 7));not(equals(Position2, 8))),
 1009       (not(equals(Position2, 1));not(equals(Position1, 2))),
 1010       (not(equals(Position2, 1));not(equals(Position1, 3))),
 1011       (not(equals(Position2, 1));not(equals(Position1, 4))),
 1012       (not(equals(Position2, 2));not(equals(Position1, 3))),
 1013       (not(equals(Position2, 2));not(equals(Position1, 4))),
 1014       (not(equals(Position2, 3));not(equals(Position1, 4))),
 1015       (not(equals(Position2, 5));not(equals(Position1, 6))),
 1016       (not(equals(Position2, 5));not(equals(Position1, 7))),
 1017       (not(equals(Position2, 5));not(equals(Position1, 8))),
 1018       (not(equals(Position2, 6));not(equals(Position1, 7))),
 1019       (not(equals(Position2, 6));not(equals(Position1, 8))),
 1020       (not(equals(Position2, 7));not(equals(Position1, 8))),
 1021       (not(equals(Position1, 4));not(equals(Position2, 7))),
 1022       (not(equals(Position2, 4));not(equals(Position1, 7))),
 1023       (not(equals(Position1, 1));not(equals(Position2, 4))),
 1024       (not(equals(Position1, 1));not(equals(Position2, 3))),
 1025       (not(equals(Position1, 1));not(equals(Position2, 2))),
 1026      neighbor(Position1, Position2)
 1027    ]).
 1028
 1029 /*  equals(Position2, 3) :-
 1030       ( (   not(equals(Position1, 2))
 1031         ;   not(equals(Position2, 4))
 1032         ),
 1033         (   not(equals(Position1, 3))
 1034         ;   not(equals(Position2, 4))
 1035         ),
 1036         (   not(equals(Position1, 5))
 1037         ;   not(equals(Position2, 6))
 1038         ),
 1039         (   not(equals(Position1, 5))
 1040         ;   not(equals(Position2, 7))
 1041         ),
 1042         (   not(equals(Position1, 5))
 1043         ;   not(equals(Position2, 8))
 1044         ),
 1045         (   not(equals(Position1, 6))
 1046         ;   not(equals(Position2, 7))
 1047         ),
 1048         (   not(equals(Position1, 6))
 1049         ;   not(equals(Position2, 8))
 1050         ),
 1051         (   not(equals(Position1, 7))
 1052         ;   not(equals(Position2, 8))
 1053         ),
 1054         (   not(equals(Position2, 1))
 1055         ;   not(equals(Position1, 2))
 1056         ),
 1057         (   not(equals(Position2, 1))
 1058         ;   not(equals(Position1, 3))
 1059         ),
 1060         (   not(equals(Position2, 1))
 1061         ;   not(equals(Position1, 4))
 1062         ),
 1063         (   not(equals(Position2, 2))
 1064         ;   not(equals(Position1, 3))
 1065         ),
 1066         (   not(equals(Position2, 2))
 1067         ;   not(equals(Position1, 4))
 1068         ),
 1069         (   not(equals(Position2, 3))
 1070         ;   not(equals(Position1, 4))
 1071         ),
 1072         (   not(equals(Position2, 5))
 1073         ;   not(equals(Position1, 6))
 1074         ),
 1075         (   not(equals(Position2, 5))
 1076         ;   not(equals(Position1, 7))
 1077         ),
 1078         (   not(equals(Position2, 5))
 1079         ;   not(equals(Position1, 8))
 1080         ),
 1081         (   not(equals(Position2, 6))
 1082         ;   not(equals(Position1, 7))
 1083         ),
 1084         (   not(equals(Position2, 6))
 1085         ;   not(equals(Position1, 8))
 1086         ),
 1087         (   not(equals(Position2, 7))
 1088         ;   not(equals(Position1, 8))
 1089         ),
 1090         (   not(equals(Position1, 4))
 1091         ;   not(equals(Position2, 7))
 1092         ),
 1093         (   not(equals(Position2, 4))
 1094         ;   not(equals(Position1, 7))
 1095         )
 1096       ),
 1097       (   not(equals(Position1, 1))
 1098       ;   not(equals(Position2, 4))
 1099       ),
 1100       (   not(equals(Position1, 1))
 1101       ;   not(equals(Position2, 3))
 1102       ),
 1103       (   not(equals(Position1, 1))
 1104       ;   not(equals(Position2, 2))
 1105       ),
 1106       neighbor(Position1, Position2).
 1107 */
 1108axiom(equals(Position2, 3),
 1109   
 1110    [  (not(equals(Position1, 2));not(equals(Position2, 4))),
 1111       (not(equals(Position1, 3));not(equals(Position2, 4))),
 1112       (not(equals(Position1, 5));not(equals(Position2, 6))),
 1113       (not(equals(Position1, 5));not(equals(Position2, 7))),
 1114       (not(equals(Position1, 5));not(equals(Position2, 8))),
 1115       (not(equals(Position1, 6));not(equals(Position2, 7))),
 1116       (not(equals(Position1, 6));not(equals(Position2, 8))),
 1117       (not(equals(Position1, 7));not(equals(Position2, 8))),
 1118       (not(equals(Position2, 1));not(equals(Position1, 2))),
 1119       (not(equals(Position2, 1));not(equals(Position1, 3))),
 1120       (not(equals(Position2, 1));not(equals(Position1, 4))),
 1121       (not(equals(Position2, 2));not(equals(Position1, 3))),
 1122       (not(equals(Position2, 2));not(equals(Position1, 4))),
 1123       (not(equals(Position2, 3));not(equals(Position1, 4))),
 1124       (not(equals(Position2, 5));not(equals(Position1, 6))),
 1125       (not(equals(Position2, 5));not(equals(Position1, 7))),
 1126       (not(equals(Position2, 5));not(equals(Position1, 8))),
 1127       (not(equals(Position2, 6));not(equals(Position1, 7))),
 1128       (not(equals(Position2, 6));not(equals(Position1, 8))),
 1129       (not(equals(Position2, 7));not(equals(Position1, 8))),
 1130       (not(equals(Position1, 4));not(equals(Position2, 7))),
 1131       (not(equals(Position2, 4));not(equals(Position1, 7))),
 1132       (not(equals(Position1, 1));not(equals(Position2, 4))),
 1133       (not(equals(Position1, 1));not(equals(Position2, 3))),
 1134       (not(equals(Position1, 1));not(equals(Position2, 2))),
 1135      neighbor(Position1, Position2)
 1136    ]).
 1137
 1138 /*  equals(Position1, 2) :-
 1139       ( (   not(equals(Position1, 3))
 1140         ;   not(equals(Position2, 4))
 1141         ),
 1142         (   not(equals(Position1, 5))
 1143         ;   not(equals(Position2, 6))
 1144         ),
 1145         (   not(equals(Position1, 5))
 1146         ;   not(equals(Position2, 7))
 1147         ),
 1148         (   not(equals(Position1, 5))
 1149         ;   not(equals(Position2, 8))
 1150         ),
 1151         (   not(equals(Position1, 6))
 1152         ;   not(equals(Position2, 7))
 1153         ),
 1154         (   not(equals(Position1, 6))
 1155         ;   not(equals(Position2, 8))
 1156         ),
 1157         (   not(equals(Position1, 7))
 1158         ;   not(equals(Position2, 8))
 1159         ),
 1160         (   not(equals(Position2, 1))
 1161         ;   not(equals(Position1, 2))
 1162         ),
 1163         (   not(equals(Position2, 1))
 1164         ;   not(equals(Position1, 3))
 1165         ),
 1166         (   not(equals(Position2, 1))
 1167         ;   not(equals(Position1, 4))
 1168         ),
 1169         (   not(equals(Position2, 2))
 1170         ;   not(equals(Position1, 3))
 1171         ),
 1172         (   not(equals(Position2, 2))
 1173         ;   not(equals(Position1, 4))
 1174         ),
 1175         (   not(equals(Position2, 3))
 1176         ;   not(equals(Position1, 4))
 1177         ),
 1178         (   not(equals(Position2, 5))
 1179         ;   not(equals(Position1, 6))
 1180         ),
 1181         (   not(equals(Position2, 5))
 1182         ;   not(equals(Position1, 7))
 1183         ),
 1184         (   not(equals(Position2, 5))
 1185         ;   not(equals(Position1, 8))
 1186         ),
 1187         (   not(equals(Position2, 6))
 1188         ;   not(equals(Position1, 7))
 1189         ),
 1190         (   not(equals(Position2, 6))
 1191         ;   not(equals(Position1, 8))
 1192         ),
 1193         (   not(equals(Position2, 7))
 1194         ;   not(equals(Position1, 8))
 1195         ),
 1196         (   not(equals(Position1, 4))
 1197         ;   not(equals(Position2, 7))
 1198         ),
 1199         (   not(equals(Position2, 4))
 1200         ;   not(equals(Position1, 7))
 1201         )
 1202       ),
 1203       (   not(equals(Position1, 2))
 1204       ;   not(equals(Position2, 3))
 1205       ),
 1206       (   not(equals(Position1, 1))
 1207       ;   not(equals(Position2, 4))
 1208       ),
 1209       (   not(equals(Position1, 1))
 1210       ;   not(equals(Position2, 3))
 1211       ),
 1212       (   not(equals(Position1, 1))
 1213       ;   not(equals(Position2, 2))
 1214       ),
 1215       neighbor(Position1, Position2).
 1216 */
 1217axiom(equals(Position1, 2),
 1218   
 1219    [  (not(equals(Position1, 3));not(equals(Position2, 4))),
 1220       (not(equals(Position1, 5));not(equals(Position2, 6))),
 1221       (not(equals(Position1, 5));not(equals(Position2, 7))),
 1222       (not(equals(Position1, 5));not(equals(Position2, 8))),
 1223       (not(equals(Position1, 6));not(equals(Position2, 7))),
 1224       (not(equals(Position1, 6));not(equals(Position2, 8))),
 1225       (not(equals(Position1, 7));not(equals(Position2, 8))),
 1226       (not(equals(Position2, 1));not(equals(Position1, 2))),
 1227       (not(equals(Position2, 1));not(equals(Position1, 3))),
 1228       (not(equals(Position2, 1));not(equals(Position1, 4))),
 1229       (not(equals(Position2, 2));not(equals(Position1, 3))),
 1230       (not(equals(Position2, 2));not(equals(Position1, 4))),
 1231       (not(equals(Position2, 3));not(equals(Position1, 4))),
 1232       (not(equals(Position2, 5));not(equals(Position1, 6))),
 1233       (not(equals(Position2, 5));not(equals(Position1, 7))),
 1234       (not(equals(Position2, 5));not(equals(Position1, 8))),
 1235       (not(equals(Position2, 6));not(equals(Position1, 7))),
 1236       (not(equals(Position2, 6));not(equals(Position1, 8))),
 1237       (not(equals(Position2, 7));not(equals(Position1, 8))),
 1238       (not(equals(Position1, 4));not(equals(Position2, 7))),
 1239       (not(equals(Position2, 4));not(equals(Position1, 7))),
 1240       (not(equals(Position1, 2));not(equals(Position2, 3))),
 1241       (not(equals(Position1, 1));not(equals(Position2, 4))),
 1242       (not(equals(Position1, 1));not(equals(Position2, 3))),
 1243       (not(equals(Position1, 1));not(equals(Position2, 2))),
 1244      neighbor(Position1, Position2)
 1245    ]).
 1246
 1247 /*  equals(Position2, 4) :-
 1248       ( (   not(equals(Position1, 3))
 1249         ;   not(equals(Position2, 4))
 1250         ),
 1251         (   not(equals(Position1, 5))
 1252         ;   not(equals(Position2, 6))
 1253         ),
 1254         (   not(equals(Position1, 5))
 1255         ;   not(equals(Position2, 7))
 1256         ),
 1257         (   not(equals(Position1, 5))
 1258         ;   not(equals(Position2, 8))
 1259         ),
 1260         (   not(equals(Position1, 6))
 1261         ;   not(equals(Position2, 7))
 1262         ),
 1263         (   not(equals(Position1, 6))
 1264         ;   not(equals(Position2, 8))
 1265         ),
 1266         (   not(equals(Position1, 7))
 1267         ;   not(equals(Position2, 8))
 1268         ),
 1269         (   not(equals(Position2, 1))
 1270         ;   not(equals(Position1, 2))
 1271         ),
 1272         (   not(equals(Position2, 1))
 1273         ;   not(equals(Position1, 3))
 1274         ),
 1275         (   not(equals(Position2, 1))
 1276         ;   not(equals(Position1, 4))
 1277         ),
 1278         (   not(equals(Position2, 2))
 1279         ;   not(equals(Position1, 3))
 1280         ),
 1281         (   not(equals(Position2, 2))
 1282         ;   not(equals(Position1, 4))
 1283         ),
 1284         (   not(equals(Position2, 3))
 1285         ;   not(equals(Position1, 4))
 1286         ),
 1287         (   not(equals(Position2, 5))
 1288         ;   not(equals(Position1, 6))
 1289         ),
 1290         (   not(equals(Position2, 5))
 1291         ;   not(equals(Position1, 7))
 1292         ),
 1293         (   not(equals(Position2, 5))
 1294         ;   not(equals(Position1, 8))
 1295         ),
 1296         (   not(equals(Position2, 6))
 1297         ;   not(equals(Position1, 7))
 1298         ),
 1299         (   not(equals(Position2, 6))
 1300         ;   not(equals(Position1, 8))
 1301         ),
 1302         (   not(equals(Position2, 7))
 1303         ;   not(equals(Position1, 8))
 1304         ),
 1305         (   not(equals(Position1, 4))
 1306         ;   not(equals(Position2, 7))
 1307         ),
 1308         (   not(equals(Position2, 4))
 1309         ;   not(equals(Position1, 7))
 1310         )
 1311       ),
 1312       (   not(equals(Position1, 2))
 1313       ;   not(equals(Position2, 3))
 1314       ),
 1315       (   not(equals(Position1, 1))
 1316       ;   not(equals(Position2, 4))
 1317       ),
 1318       (   not(equals(Position1, 1))
 1319       ;   not(equals(Position2, 3))
 1320       ),
 1321       (   not(equals(Position1, 1))
 1322       ;   not(equals(Position2, 2))
 1323       ),
 1324       neighbor(Position1, Position2).
 1325 */
 1326axiom(equals(Position2, 4),
 1327   
 1328    [  (not(equals(Position1, 3));not(equals(Position2, 4))),
 1329       (not(equals(Position1, 5));not(equals(Position2, 6))),
 1330       (not(equals(Position1, 5));not(equals(Position2, 7))),
 1331       (not(equals(Position1, 5));not(equals(Position2, 8))),
 1332       (not(equals(Position1, 6));not(equals(Position2, 7))),
 1333       (not(equals(Position1, 6));not(equals(Position2, 8))),
 1334       (not(equals(Position1, 7));not(equals(Position2, 8))),
 1335       (not(equals(Position2, 1));not(equals(Position1, 2))),
 1336       (not(equals(Position2, 1));not(equals(Position1, 3))),
 1337       (not(equals(Position2, 1));not(equals(Position1, 4))),
 1338       (not(equals(Position2, 2));not(equals(Position1, 3))),
 1339       (not(equals(Position2, 2));not(equals(Position1, 4))),
 1340       (not(equals(Position2, 3));not(equals(Position1, 4))),
 1341       (not(equals(Position2, 5));not(equals(Position1, 6))),
 1342       (not(equals(Position2, 5));not(equals(Position1, 7))),
 1343       (not(equals(Position2, 5));not(equals(Position1, 8))),
 1344       (not(equals(Position2, 6));not(equals(Position1, 7))),
 1345       (not(equals(Position2, 6));not(equals(Position1, 8))),
 1346       (not(equals(Position2, 7));not(equals(Position1, 8))),
 1347       (not(equals(Position1, 4));not(equals(Position2, 7))),
 1348       (not(equals(Position2, 4));not(equals(Position1, 7))),
 1349       (not(equals(Position1, 2));not(equals(Position2, 3))),
 1350       (not(equals(Position1, 1));not(equals(Position2, 4))),
 1351       (not(equals(Position1, 1));not(equals(Position2, 3))),
 1352       (not(equals(Position1, 1));not(equals(Position2, 2))),
 1353      neighbor(Position1, Position2)
 1354    ]).
 1355
 1356 /*  equals(Position1, 3) :-
 1357       ( (   not(equals(Position1, 5))
 1358         ;   not(equals(Position2, 6))
 1359         ),
 1360         (   not(equals(Position1, 5))
 1361         ;   not(equals(Position2, 7))
 1362         ),
 1363         (   not(equals(Position1, 5))
 1364         ;   not(equals(Position2, 8))
 1365         ),
 1366         (   not(equals(Position1, 6))
 1367         ;   not(equals(Position2, 7))
 1368         ),
 1369         (   not(equals(Position1, 6))
 1370         ;   not(equals(Position2, 8))
 1371         ),
 1372         (   not(equals(Position1, 7))
 1373         ;   not(equals(Position2, 8))
 1374         ),
 1375         (   not(equals(Position2, 1))
 1376         ;   not(equals(Position1, 2))
 1377         ),
 1378         (   not(equals(Position2, 1))
 1379         ;   not(equals(Position1, 3))
 1380         ),
 1381         (   not(equals(Position2, 1))
 1382         ;   not(equals(Position1, 4))
 1383         ),
 1384         (   not(equals(Position2, 2))
 1385         ;   not(equals(Position1, 3))
 1386         ),
 1387         (   not(equals(Position2, 2))
 1388         ;   not(equals(Position1, 4))
 1389         ),
 1390         (   not(equals(Position2, 3))
 1391         ;   not(equals(Position1, 4))
 1392         ),
 1393         (   not(equals(Position2, 5))
 1394         ;   not(equals(Position1, 6))
 1395         ),
 1396         (   not(equals(Position2, 5))
 1397         ;   not(equals(Position1, 7))
 1398         ),
 1399         (   not(equals(Position2, 5))
 1400         ;   not(equals(Position1, 8))
 1401         ),
 1402         (   not(equals(Position2, 6))
 1403         ;   not(equals(Position1, 7))
 1404         ),
 1405         (   not(equals(Position2, 6))
 1406         ;   not(equals(Position1, 8))
 1407         ),
 1408         (   not(equals(Position2, 7))
 1409         ;   not(equals(Position1, 8))
 1410         ),
 1411         (   not(equals(Position1, 4))
 1412         ;   not(equals(Position2, 7))
 1413         ),
 1414         (   not(equals(Position2, 4))
 1415         ;   not(equals(Position1, 7))
 1416         )
 1417       ),
 1418       (   not(equals(Position1, 2))
 1419       ;   not(equals(Position2, 4))
 1420       ),
 1421       (   not(equals(Position1, 2))
 1422       ;   not(equals(Position2, 3))
 1423       ),
 1424       (   not(equals(Position1, 1))
 1425       ;   not(equals(Position2, 4))
 1426       ),
 1427       (   not(equals(Position1, 1))
 1428       ;   not(equals(Position2, 3))
 1429       ),
 1430       (   not(equals(Position1, 1))
 1431       ;   not(equals(Position2, 2))
 1432       ),
 1433       neighbor(Position1, Position2).
 1434 */
 1435axiom(equals(Position1, 3),
 1436   
 1437    [  (not(equals(Position1, 5));not(equals(Position2, 6))),
 1438       (not(equals(Position1, 5));not(equals(Position2, 7))),
 1439       (not(equals(Position1, 5));not(equals(Position2, 8))),
 1440       (not(equals(Position1, 6));not(equals(Position2, 7))),
 1441       (not(equals(Position1, 6));not(equals(Position2, 8))),
 1442       (not(equals(Position1, 7));not(equals(Position2, 8))),
 1443       (not(equals(Position2, 1));not(equals(Position1, 2))),
 1444       (not(equals(Position2, 1));not(equals(Position1, 3))),
 1445       (not(equals(Position2, 1));not(equals(Position1, 4))),
 1446       (not(equals(Position2, 2));not(equals(Position1, 3))),
 1447       (not(equals(Position2, 2));not(equals(Position1, 4))),
 1448       (not(equals(Position2, 3));not(equals(Position1, 4))),
 1449       (not(equals(Position2, 5));not(equals(Position1, 6))),
 1450       (not(equals(Position2, 5));not(equals(Position1, 7))),
 1451       (not(equals(Position2, 5));not(equals(Position1, 8))),
 1452       (not(equals(Position2, 6));not(equals(Position1, 7))),
 1453       (not(equals(Position2, 6));not(equals(Position1, 8))),
 1454       (not(equals(Position2, 7));not(equals(Position1, 8))),
 1455       (not(equals(Position1, 4));not(equals(Position2, 7))),
 1456       (not(equals(Position2, 4));not(equals(Position1, 7))),
 1457       (not(equals(Position1, 2));not(equals(Position2, 4))),
 1458       (not(equals(Position1, 2));not(equals(Position2, 3))),
 1459       (not(equals(Position1, 1));not(equals(Position2, 4))),
 1460       (not(equals(Position1, 1));not(equals(Position2, 3))),
 1461       (not(equals(Position1, 1));not(equals(Position2, 2))),
 1462      neighbor(Position1, Position2)
 1463    ]).
 1464
 1465 /*  equals(Position2, 4) :-
 1466       ( (   not(equals(Position1, 5))
 1467         ;   not(equals(Position2, 6))
 1468         ),
 1469         (   not(equals(Position1, 5))
 1470         ;   not(equals(Position2, 7))
 1471         ),
 1472         (   not(equals(Position1, 5))
 1473         ;   not(equals(Position2, 8))
 1474         ),
 1475         (   not(equals(Position1, 6))
 1476         ;   not(equals(Position2, 7))
 1477         ),
 1478         (   not(equals(Position1, 6))
 1479         ;   not(equals(Position2, 8))
 1480         ),
 1481         (   not(equals(Position1, 7))
 1482         ;   not(equals(Position2, 8))
 1483         ),
 1484         (   not(equals(Position2, 1))
 1485         ;   not(equals(Position1, 2))
 1486         ),
 1487         (   not(equals(Position2, 1))
 1488         ;   not(equals(Position1, 3))
 1489         ),
 1490         (   not(equals(Position2, 1))
 1491         ;   not(equals(Position1, 4))
 1492         ),
 1493         (   not(equals(Position2, 2))
 1494         ;   not(equals(Position1, 3))
 1495         ),
 1496         (   not(equals(Position2, 2))
 1497         ;   not(equals(Position1, 4))
 1498         ),
 1499         (   not(equals(Position2, 3))
 1500         ;   not(equals(Position1, 4))
 1501         ),
 1502         (   not(equals(Position2, 5))
 1503         ;   not(equals(Position1, 6))
 1504         ),
 1505         (   not(equals(Position2, 5))
 1506         ;   not(equals(Position1, 7))
 1507         ),
 1508         (   not(equals(Position2, 5))
 1509         ;   not(equals(Position1, 8))
 1510         ),
 1511         (   not(equals(Position2, 6))
 1512         ;   not(equals(Position1, 7))
 1513         ),
 1514         (   not(equals(Position2, 6))
 1515         ;   not(equals(Position1, 8))
 1516         ),
 1517         (   not(equals(Position2, 7))
 1518         ;   not(equals(Position1, 8))
 1519         ),
 1520         (   not(equals(Position1, 4))
 1521         ;   not(equals(Position2, 7))
 1522         ),
 1523         (   not(equals(Position2, 4))
 1524         ;   not(equals(Position1, 7))
 1525         )
 1526       ),
 1527       (   not(equals(Position1, 2))
 1528       ;   not(equals(Position2, 4))
 1529       ),
 1530       (   not(equals(Position1, 2))
 1531       ;   not(equals(Position2, 3))
 1532       ),
 1533       (   not(equals(Position1, 1))
 1534       ;   not(equals(Position2, 4))
 1535       ),
 1536       (   not(equals(Position1, 1))
 1537       ;   not(equals(Position2, 3))
 1538       ),
 1539       (   not(equals(Position1, 1))
 1540       ;   not(equals(Position2, 2))
 1541       ),
 1542       neighbor(Position1, Position2).
 1543 */
 1544axiom(equals(Position2, 4),
 1545   
 1546    [  (not(equals(Position1, 5));not(equals(Position2, 6))),
 1547       (not(equals(Position1, 5));not(equals(Position2, 7))),
 1548       (not(equals(Position1, 5));not(equals(Position2, 8))),
 1549       (not(equals(Position1, 6));not(equals(Position2, 7))),
 1550       (not(equals(Position1, 6));not(equals(Position2, 8))),
 1551       (not(equals(Position1, 7));not(equals(Position2, 8))),
 1552       (not(equals(Position2, 1));not(equals(Position1, 2))),
 1553       (not(equals(Position2, 1));not(equals(Position1, 3))),
 1554       (not(equals(Position2, 1));not(equals(Position1, 4))),
 1555       (not(equals(Position2, 2));not(equals(Position1, 3))),
 1556       (not(equals(Position2, 2));not(equals(Position1, 4))),
 1557       (not(equals(Position2, 3));not(equals(Position1, 4))),
 1558       (not(equals(Position2, 5));not(equals(Position1, 6))),
 1559       (not(equals(Position2, 5));not(equals(Position1, 7))),
 1560       (not(equals(Position2, 5));not(equals(Position1, 8))),
 1561       (not(equals(Position2, 6));not(equals(Position1, 7))),
 1562       (not(equals(Position2, 6));not(equals(Position1, 8))),
 1563       (not(equals(Position2, 7));not(equals(Position1, 8))),
 1564       (not(equals(Position1, 4));not(equals(Position2, 7))),
 1565       (not(equals(Position2, 4));not(equals(Position1, 7))),
 1566       (not(equals(Position1, 2));not(equals(Position2, 4))),
 1567       (not(equals(Position1, 2));not(equals(Position2, 3))),
 1568       (not(equals(Position1, 1));not(equals(Position2, 4))),
 1569       (not(equals(Position1, 1));not(equals(Position2, 3))),
 1570       (not(equals(Position1, 1));not(equals(Position2, 2))),
 1571      neighbor(Position1, Position2)
 1572    ]).
 1573
 1574 /*  equals(Position1, 5) :-
 1575       ( (   not(equals(Position1, 5))
 1576         ;   not(equals(Position2, 7))
 1577         ),
 1578         (   not(equals(Position1, 5))
 1579         ;   not(equals(Position2, 8))
 1580         ),
 1581         (   not(equals(Position1, 6))
 1582         ;   not(equals(Position2, 7))
 1583         ),
 1584         (   not(equals(Position1, 6))
 1585         ;   not(equals(Position2, 8))
 1586         ),
 1587         (   not(equals(Position1, 7))
 1588         ;   not(equals(Position2, 8))
 1589         ),
 1590         (   not(equals(Position2, 1))
 1591         ;   not(equals(Position1, 2))
 1592         ),
 1593         (   not(equals(Position2, 1))
 1594         ;   not(equals(Position1, 3))
 1595         ),
 1596         (   not(equals(Position2, 1))
 1597         ;   not(equals(Position1, 4))
 1598         ),
 1599         (   not(equals(Position2, 2))
 1600         ;   not(equals(Position1, 3))
 1601         ),
 1602         (   not(equals(Position2, 2))
 1603         ;   not(equals(Position1, 4))
 1604         ),
 1605         (   not(equals(Position2, 3))
 1606         ;   not(equals(Position1, 4))
 1607         ),
 1608         (   not(equals(Position2, 5))
 1609         ;   not(equals(Position1, 6))
 1610         ),
 1611         (   not(equals(Position2, 5))
 1612         ;   not(equals(Position1, 7))
 1613         ),
 1614         (   not(equals(Position2, 5))
 1615         ;   not(equals(Position1, 8))
 1616         ),
 1617         (   not(equals(Position2, 6))
 1618         ;   not(equals(Position1, 7))
 1619         ),
 1620         (   not(equals(Position2, 6))
 1621         ;   not(equals(Position1, 8))
 1622         ),
 1623         (   not(equals(Position2, 7))
 1624         ;   not(equals(Position1, 8))
 1625         ),
 1626         (   not(equals(Position1, 4))
 1627         ;   not(equals(Position2, 7))
 1628         ),
 1629         (   not(equals(Position2, 4))
 1630         ;   not(equals(Position1, 7))
 1631         )
 1632       ),
 1633       (   not(equals(Position1, 3))
 1634       ;   not(equals(Position2, 4))
 1635       ),
 1636       (   not(equals(Position1, 2))
 1637       ;   not(equals(Position2, 4))
 1638       ),
 1639       (   not(equals(Position1, 2))
 1640       ;   not(equals(Position2, 3))
 1641       ),
 1642       (   not(equals(Position1, 1))
 1643       ;   not(equals(Position2, 4))
 1644       ),
 1645       (   not(equals(Position1, 1))
 1646       ;   not(equals(Position2, 3))
 1647       ),
 1648       (   not(equals(Position1, 1))
 1649       ;   not(equals(Position2, 2))
 1650       ),
 1651       neighbor(Position1, Position2).
 1652 */
 1653axiom(equals(Position1, 5),
 1654   
 1655    [  (not(equals(Position1, 5));not(equals(Position2, 7))),
 1656       (not(equals(Position1, 5));not(equals(Position2, 8))),
 1657       (not(equals(Position1, 6));not(equals(Position2, 7))),
 1658       (not(equals(Position1, 6));not(equals(Position2, 8))),
 1659       (not(equals(Position1, 7));not(equals(Position2, 8))),
 1660       (not(equals(Position2, 1));not(equals(Position1, 2))),
 1661       (not(equals(Position2, 1));not(equals(Position1, 3))),
 1662       (not(equals(Position2, 1));not(equals(Position1, 4))),
 1663       (not(equals(Position2, 2));not(equals(Position1, 3))),
 1664       (not(equals(Position2, 2));not(equals(Position1, 4))),
 1665       (not(equals(Position2, 3));not(equals(Position1, 4))),
 1666       (not(equals(Position2, 5));not(equals(Position1, 6))),
 1667       (not(equals(Position2, 5));not(equals(Position1, 7))),
 1668       (not(equals(Position2, 5));not(equals(Position1, 8))),
 1669       (not(equals(Position2, 6));not(equals(Position1, 7))),
 1670       (not(equals(Position2, 6));not(equals(Position1, 8))),
 1671       (not(equals(Position2, 7));not(equals(Position1, 8))),
 1672       (not(equals(Position1, 4));not(equals(Position2, 7))),
 1673       (not(equals(Position2, 4));not(equals(Position1, 7))),
 1674       (not(equals(Position1, 3));not(equals(Position2, 4))),
 1675       (not(equals(Position1, 2));not(equals(Position2, 4))),
 1676       (not(equals(Position1, 2));not(equals(Position2, 3))),
 1677       (not(equals(Position1, 1));not(equals(Position2, 4))),
 1678       (not(equals(Position1, 1));not(equals(Position2, 3))),
 1679       (not(equals(Position1, 1));not(equals(Position2, 2))),
 1680      neighbor(Position1, Position2)
 1681    ]).
 1682
 1683 /*  equals(Position2, 6) :-
 1684       ( (   not(equals(Position1, 5))
 1685         ;   not(equals(Position2, 7))
 1686         ),
 1687         (   not(equals(Position1, 5))
 1688         ;   not(equals(Position2, 8))
 1689         ),
 1690         (   not(equals(Position1, 6))
 1691         ;   not(equals(Position2, 7))
 1692         ),
 1693         (   not(equals(Position1, 6))
 1694         ;   not(equals(Position2, 8))
 1695         ),
 1696         (   not(equals(Position1, 7))
 1697         ;   not(equals(Position2, 8))
 1698         ),
 1699         (   not(equals(Position2, 1))
 1700         ;   not(equals(Position1, 2))
 1701         ),
 1702         (   not(equals(Position2, 1))
 1703         ;   not(equals(Position1, 3))
 1704         ),
 1705         (   not(equals(Position2, 1))
 1706         ;   not(equals(Position1, 4))
 1707         ),
 1708         (   not(equals(Position2, 2))
 1709         ;   not(equals(Position1, 3))
 1710         ),
 1711         (   not(equals(Position2, 2))
 1712         ;   not(equals(Position1, 4))
 1713         ),
 1714         (   not(equals(Position2, 3))
 1715         ;   not(equals(Position1, 4))
 1716         ),
 1717         (   not(equals(Position2, 5))
 1718         ;   not(equals(Position1, 6))
 1719         ),
 1720         (   not(equals(Position2, 5))
 1721         ;   not(equals(Position1, 7))
 1722         ),
 1723         (   not(equals(Position2, 5))
 1724         ;   not(equals(Position1, 8))
 1725         ),
 1726         (   not(equals(Position2, 6))
 1727         ;   not(equals(Position1, 7))
 1728         ),
 1729         (   not(equals(Position2, 6))
 1730         ;   not(equals(Position1, 8))
 1731         ),
 1732         (   not(equals(Position2, 7))
 1733         ;   not(equals(Position1, 8))
 1734         ),
 1735         (   not(equals(Position1, 4))
 1736         ;   not(equals(Position2, 7))
 1737         ),
 1738         (   not(equals(Position2, 4))
 1739         ;   not(equals(Position1, 7))
 1740         )
 1741       ),
 1742       (   not(equals(Position1, 3))
 1743       ;   not(equals(Position2, 4))
 1744       ),
 1745       (   not(equals(Position1, 2))
 1746       ;   not(equals(Position2, 4))
 1747       ),
 1748       (   not(equals(Position1, 2))
 1749       ;   not(equals(Position2, 3))
 1750       ),
 1751       (   not(equals(Position1, 1))
 1752       ;   not(equals(Position2, 4))
 1753       ),
 1754       (   not(equals(Position1, 1))
 1755       ;   not(equals(Position2, 3))
 1756       ),
 1757       (   not(equals(Position1, 1))
 1758       ;   not(equals(Position2, 2))
 1759       ),
 1760       neighbor(Position1, Position2).
 1761 */
 1762axiom(equals(Position2, 6),
 1763   
 1764    [  (not(equals(Position1, 5));not(equals(Position2, 7))),
 1765       (not(equals(Position1, 5));not(equals(Position2, 8))),
 1766       (not(equals(Position1, 6));not(equals(Position2, 7))),
 1767       (not(equals(Position1, 6));not(equals(Position2, 8))),
 1768       (not(equals(Position1, 7));not(equals(Position2, 8))),
 1769       (not(equals(Position2, 1));not(equals(Position1, 2))),
 1770       (not(equals(Position2, 1));not(equals(Position1, 3))),
 1771       (not(equals(Position2, 1));not(equals(Position1, 4))),
 1772       (not(equals(Position2, 2));not(equals(Position1, 3))),
 1773       (not(equals(Position2, 2));not(equals(Position1, 4))),
 1774       (not(equals(Position2, 3));not(equals(Position1, 4))),
 1775       (not(equals(Position2, 5));not(equals(Position1, 6))),
 1776       (not(equals(Position2, 5));not(equals(Position1, 7))),
 1777       (not(equals(Position2, 5));not(equals(Position1, 8))),
 1778       (not(equals(Position2, 6));not(equals(Position1, 7))),
 1779       (not(equals(Position2, 6));not(equals(Position1, 8))),
 1780       (not(equals(Position2, 7));not(equals(Position1, 8))),
 1781       (not(equals(Position1, 4));not(equals(Position2, 7))),
 1782       (not(equals(Position2, 4));not(equals(Position1, 7))),
 1783       (not(equals(Position1, 3));not(equals(Position2, 4))),
 1784       (not(equals(Position1, 2));not(equals(Position2, 4))),
 1785       (not(equals(Position1, 2));not(equals(Position2, 3))),
 1786       (not(equals(Position1, 1));not(equals(Position2, 4))),
 1787       (not(equals(Position1, 1));not(equals(Position2, 3))),
 1788       (not(equals(Position1, 1));not(equals(Position2, 2))),
 1789      neighbor(Position1, Position2)
 1790    ]).
 1791
 1792 /*  equals(Position1, 5) :-
 1793       ( (   not(equals(Position1, 5))
 1794         ;   not(equals(Position2, 8))
 1795         ),
 1796         (   not(equals(Position1, 6))
 1797         ;   not(equals(Position2, 7))
 1798         ),
 1799         (   not(equals(Position1, 6))
 1800         ;   not(equals(Position2, 8))
 1801         ),
 1802         (   not(equals(Position1, 7))
 1803         ;   not(equals(Position2, 8))
 1804         ),
 1805         (   not(equals(Position2, 1))
 1806         ;   not(equals(Position1, 2))
 1807         ),
 1808         (   not(equals(Position2, 1))
 1809         ;   not(equals(Position1, 3))
 1810         ),
 1811         (   not(equals(Position2, 1))
 1812         ;   not(equals(Position1, 4))
 1813         ),
 1814         (   not(equals(Position2, 2))
 1815         ;   not(equals(Position1, 3))
 1816         ),
 1817         (   not(equals(Position2, 2))
 1818         ;   not(equals(Position1, 4))
 1819         ),
 1820         (   not(equals(Position2, 3))
 1821         ;   not(equals(Position1, 4))
 1822         ),
 1823         (   not(equals(Position2, 5))
 1824         ;   not(equals(Position1, 6))
 1825         ),
 1826         (   not(equals(Position2, 5))
 1827         ;   not(equals(Position1, 7))
 1828         ),
 1829         (   not(equals(Position2, 5))
 1830         ;   not(equals(Position1, 8))
 1831         ),
 1832         (   not(equals(Position2, 6))
 1833         ;   not(equals(Position1, 7))
 1834         ),
 1835         (   not(equals(Position2, 6))
 1836         ;   not(equals(Position1, 8))
 1837         ),
 1838         (   not(equals(Position2, 7))
 1839         ;   not(equals(Position1, 8))
 1840         ),
 1841         (   not(equals(Position1, 4))
 1842         ;   not(equals(Position2, 7))
 1843         ),
 1844         (   not(equals(Position2, 4))
 1845         ;   not(equals(Position1, 7))
 1846         )
 1847       ),
 1848       (   not(equals(Position1, 5))
 1849       ;   not(equals(Position2, 6))
 1850       ),
 1851       (   not(equals(Position1, 3))
 1852       ;   not(equals(Position2, 4))
 1853       ),
 1854       (   not(equals(Position1, 2))
 1855       ;   not(equals(Position2, 4))
 1856       ),
 1857       (   not(equals(Position1, 2))
 1858       ;   not(equals(Position2, 3))
 1859       ),
 1860       (   not(equals(Position1, 1))
 1861       ;   not(equals(Position2, 4))
 1862       ),
 1863       (   not(equals(Position1, 1))
 1864       ;   not(equals(Position2, 3))
 1865       ),
 1866       (   not(equals(Position1, 1))
 1867       ;   not(equals(Position2, 2))
 1868       ),
 1869       neighbor(Position1, Position2).
 1870 */
 1871axiom(equals(Position1, 5),
 1872   
 1873    [  (not(equals(Position1, 5));not(equals(Position2, 8))),
 1874       (not(equals(Position1, 6));not(equals(Position2, 7))),
 1875       (not(equals(Position1, 6));not(equals(Position2, 8))),
 1876       (not(equals(Position1, 7));not(equals(Position2, 8))),
 1877       (not(equals(Position2, 1));not(equals(Position1, 2))),
 1878       (not(equals(Position2, 1));not(equals(Position1, 3))),
 1879       (not(equals(Position2, 1));not(equals(Position1, 4))),
 1880       (not(equals(Position2, 2));not(equals(Position1, 3))),
 1881       (not(equals(Position2, 2));not(equals(Position1, 4))),
 1882       (not(equals(Position2, 3));not(equals(Position1, 4))),
 1883       (not(equals(Position2, 5));not(equals(Position1, 6))),
 1884       (not(equals(Position2, 5));not(equals(Position1, 7))),
 1885       (not(equals(Position2, 5));not(equals(Position1, 8))),
 1886       (not(equals(Position2, 6));not(equals(Position1, 7))),
 1887       (not(equals(Position2, 6));not(equals(Position1, 8))),
 1888       (not(equals(Position2, 7));not(equals(Position1, 8))),
 1889       (not(equals(Position1, 4));not(equals(Position2, 7))),
 1890       (not(equals(Position2, 4));not(equals(Position1, 7))),
 1891       (not(equals(Position1, 5));not(equals(Position2, 6))),
 1892       (not(equals(Position1, 3));not(equals(Position2, 4))),
 1893       (not(equals(Position1, 2));not(equals(Position2, 4))),
 1894       (not(equals(Position1, 2));not(equals(Position2, 3))),
 1895       (not(equals(Position1, 1));not(equals(Position2, 4))),
 1896       (not(equals(Position1, 1));not(equals(Position2, 3))),
 1897       (not(equals(Position1, 1));not(equals(Position2, 2))),
 1898      neighbor(Position1, Position2)
 1899    ]).
 1900
 1901 /*  equals(Position2, 7) :-
 1902       ( (   not(equals(Position1, 5))
 1903         ;   not(equals(Position2, 8))
 1904         ),
 1905         (   not(equals(Position1, 6))
 1906         ;   not(equals(Position2, 7))
 1907         ),
 1908         (   not(equals(Position1, 6))
 1909         ;   not(equals(Position2, 8))
 1910         ),
 1911         (   not(equals(Position1, 7))
 1912         ;   not(equals(Position2, 8))
 1913         ),
 1914         (   not(equals(Position2, 1))
 1915         ;   not(equals(Position1, 2))
 1916         ),
 1917         (   not(equals(Position2, 1))
 1918         ;   not(equals(Position1, 3))
 1919         ),
 1920         (   not(equals(Position2, 1))
 1921         ;   not(equals(Position1, 4))
 1922         ),
 1923         (   not(equals(Position2, 2))
 1924         ;   not(equals(Position1, 3))
 1925         ),
 1926         (   not(equals(Position2, 2))
 1927         ;   not(equals(Position1, 4))
 1928         ),
 1929         (   not(equals(Position2, 3))
 1930         ;   not(equals(Position1, 4))
 1931         ),
 1932         (   not(equals(Position2, 5))
 1933         ;   not(equals(Position1, 6))
 1934         ),
 1935         (   not(equals(Position2, 5))
 1936         ;   not(equals(Position1, 7))
 1937         ),
 1938         (   not(equals(Position2, 5))
 1939         ;   not(equals(Position1, 8))
 1940         ),
 1941         (   not(equals(Position2, 6))
 1942         ;   not(equals(Position1, 7))
 1943         ),
 1944         (   not(equals(Position2, 6))
 1945         ;   not(equals(Position1, 8))
 1946         ),
 1947         (   not(equals(Position2, 7))
 1948         ;   not(equals(Position1, 8))
 1949         ),
 1950         (   not(equals(Position1, 4))
 1951         ;   not(equals(Position2, 7))
 1952         ),
 1953         (   not(equals(Position2, 4))
 1954         ;   not(equals(Position1, 7))
 1955         )
 1956       ),
 1957       (   not(equals(Position1, 5))
 1958       ;   not(equals(Position2, 6))
 1959       ),
 1960       (   not(equals(Position1, 3))
 1961       ;   not(equals(Position2, 4))
 1962       ),
 1963       (   not(equals(Position1, 2))
 1964       ;   not(equals(Position2, 4))
 1965       ),
 1966       (   not(equals(Position1, 2))
 1967       ;   not(equals(Position2, 3))
 1968       ),
 1969       (   not(equals(Position1, 1))
 1970       ;   not(equals(Position2, 4))
 1971       ),
 1972       (   not(equals(Position1, 1))
 1973       ;   not(equals(Position2, 3))
 1974       ),
 1975       (   not(equals(Position1, 1))
 1976       ;   not(equals(Position2, 2))
 1977       ),
 1978       neighbor(Position1, Position2).
 1979 */
 1980axiom(equals(Position2, 7),
 1981   
 1982    [  (not(equals(Position1, 5));not(equals(Position2, 8))),
 1983       (not(equals(Position1, 6));not(equals(Position2, 7))),
 1984       (not(equals(Position1, 6));not(equals(Position2, 8))),
 1985       (not(equals(Position1, 7));not(equals(Position2, 8))),
 1986       (not(equals(Position2, 1));not(equals(Position1, 2))),
 1987       (not(equals(Position2, 1));not(equals(Position1, 3))),
 1988       (not(equals(Position2, 1));not(equals(Position1, 4))),
 1989       (not(equals(Position2, 2));not(equals(Position1, 3))),
 1990       (not(equals(Position2, 2));not(equals(Position1, 4))),
 1991       (not(equals(Position2, 3));not(equals(Position1, 4))),
 1992       (not(equals(Position2, 5));not(equals(Position1, 6))),
 1993       (not(equals(Position2, 5));not(equals(Position1, 7))),
 1994       (not(equals(Position2, 5));not(equals(Position1, 8))),
 1995       (not(equals(Position2, 6));not(equals(Position1, 7))),
 1996       (not(equals(Position2, 6));not(equals(Position1, 8))),
 1997       (not(equals(Position2, 7));not(equals(Position1, 8))),
 1998       (not(equals(Position1, 4));not(equals(Position2, 7))),
 1999       (not(equals(Position2, 4));not(equals(Position1, 7))),
 2000       (not(equals(Position1, 5));not(equals(Position2, 6))),
 2001       (not(equals(Position1, 3));not(equals(Position2, 4))),
 2002       (not(equals(Position1, 2));not(equals(Position2, 4))),
 2003       (not(equals(Position1, 2));not(equals(Position2, 3))),
 2004       (not(equals(Position1, 1));not(equals(Position2, 4))),
 2005       (not(equals(Position1, 1));not(equals(Position2, 3))),
 2006       (not(equals(Position1, 1));not(equals(Position2, 2))),
 2007      neighbor(Position1, Position2)
 2008    ]).
 2009
 2010 /*  equals(Position1, 5) :-
 2011       ( (   not(equals(Position1, 6))
 2012         ;   not(equals(Position2, 7))
 2013         ),
 2014         (   not(equals(Position1, 6))
 2015         ;   not(equals(Position2, 8))
 2016         ),
 2017         (   not(equals(Position1, 7))
 2018         ;   not(equals(Position2, 8))
 2019         ),
 2020         (   not(equals(Position2, 1))
 2021         ;   not(equals(Position1, 2))
 2022         ),
 2023         (   not(equals(Position2, 1))
 2024         ;   not(equals(Position1, 3))
 2025         ),
 2026         (   not(equals(Position2, 1))
 2027         ;   not(equals(Position1, 4))
 2028         ),
 2029         (   not(equals(Position2, 2))
 2030         ;   not(equals(Position1, 3))
 2031         ),
 2032         (   not(equals(Position2, 2))
 2033         ;   not(equals(Position1, 4))
 2034         ),
 2035         (   not(equals(Position2, 3))
 2036         ;   not(equals(Position1, 4))
 2037         ),
 2038         (   not(equals(Position2, 5))
 2039         ;   not(equals(Position1, 6))
 2040         ),
 2041         (   not(equals(Position2, 5))
 2042         ;   not(equals(Position1, 7))
 2043         ),
 2044         (   not(equals(Position2, 5))
 2045         ;   not(equals(Position1, 8))
 2046         ),
 2047         (   not(equals(Position2, 6))
 2048         ;   not(equals(Position1, 7))
 2049         ),
 2050         (   not(equals(Position2, 6))
 2051         ;   not(equals(Position1, 8))
 2052         ),
 2053         (   not(equals(Position2, 7))
 2054         ;   not(equals(Position1, 8))
 2055         ),
 2056         (   not(equals(Position1, 4))
 2057         ;   not(equals(Position2, 7))
 2058         ),
 2059         (   not(equals(Position2, 4))
 2060         ;   not(equals(Position1, 7))
 2061         )
 2062       ),
 2063       (   not(equals(Position1, 5))
 2064       ;   not(equals(Position2, 7))
 2065       ),
 2066       (   not(equals(Position1, 5))
 2067       ;   not(equals(Position2, 6))
 2068       ),
 2069       (   not(equals(Position1, 3))
 2070       ;   not(equals(Position2, 4))
 2071       ),
 2072       (   not(equals(Position1, 2))
 2073       ;   not(equals(Position2, 4))
 2074       ),
 2075       (   not(equals(Position1, 2))
 2076       ;   not(equals(Position2, 3))
 2077       ),
 2078       (   not(equals(Position1, 1))
 2079       ;   not(equals(Position2, 4))
 2080       ),
 2081       (   not(equals(Position1, 1))
 2082       ;   not(equals(Position2, 3))
 2083       ),
 2084       (   not(equals(Position1, 1))
 2085       ;   not(equals(Position2, 2))
 2086       ),
 2087       neighbor(Position1, Position2).
 2088 */
 2089axiom(equals(Position1, 5),
 2090   
 2091    [  (not(equals(Position1, 6));not(equals(Position2, 7))),
 2092       (not(equals(Position1, 6));not(equals(Position2, 8))),
 2093       (not(equals(Position1, 7));not(equals(Position2, 8))),
 2094       (not(equals(Position2, 1));not(equals(Position1, 2))),
 2095       (not(equals(Position2, 1));not(equals(Position1, 3))),
 2096       (not(equals(Position2, 1));not(equals(Position1, 4))),
 2097       (not(equals(Position2, 2));not(equals(Position1, 3))),
 2098       (not(equals(Position2, 2));not(equals(Position1, 4))),
 2099       (not(equals(Position2, 3));not(equals(Position1, 4))),
 2100       (not(equals(Position2, 5));not(equals(Position1, 6))),
 2101       (not(equals(Position2, 5));not(equals(Position1, 7))),
 2102       (not(equals(Position2, 5));not(equals(Position1, 8))),
 2103       (not(equals(Position2, 6));not(equals(Position1, 7))),
 2104       (not(equals(Position2, 6));not(equals(Position1, 8))),
 2105       (not(equals(Position2, 7));not(equals(Position1, 8))),
 2106       (not(equals(Position1, 4));not(equals(Position2, 7))),
 2107       (not(equals(Position2, 4));not(equals(Position1, 7))),
 2108       (not(equals(Position1, 5));not(equals(Position2, 7))),
 2109       (not(equals(Position1, 5));not(equals(Position2, 6))),
 2110       (not(equals(Position1, 3));not(equals(Position2, 4))),
 2111       (not(equals(Position1, 2));not(equals(Position2, 4))),
 2112       (not(equals(Position1, 2));not(equals(Position2, 3))),
 2113       (not(equals(Position1, 1));not(equals(Position2, 4))),
 2114       (not(equals(Position1, 1));not(equals(Position2, 3))),
 2115       (not(equals(Position1, 1));not(equals(Position2, 2))),
 2116      neighbor(Position1, Position2)
 2117    ]).
 2118
 2119 /*  equals(Position2, 8) :-
 2120       ( (   not(equals(Position1, 6))
 2121         ;   not(equals(Position2, 7))
 2122         ),
 2123         (   not(equals(Position1, 6))
 2124         ;   not(equals(Position2, 8))
 2125         ),
 2126         (   not(equals(Position1, 7))
 2127         ;   not(equals(Position2, 8))
 2128         ),
 2129         (   not(equals(Position2, 1))
 2130         ;   not(equals(Position1, 2))
 2131         ),
 2132         (   not(equals(Position2, 1))
 2133         ;   not(equals(Position1, 3))
 2134         ),
 2135         (   not(equals(Position2, 1))
 2136         ;   not(equals(Position1, 4))
 2137         ),
 2138         (   not(equals(Position2, 2))
 2139         ;   not(equals(Position1, 3))
 2140         ),
 2141         (   not(equals(Position2, 2))
 2142         ;   not(equals(Position1, 4))
 2143         ),
 2144         (   not(equals(Position2, 3))
 2145         ;   not(equals(Position1, 4))
 2146         ),
 2147         (   not(equals(Position2, 5))
 2148         ;   not(equals(Position1, 6))
 2149         ),
 2150         (   not(equals(Position2, 5))
 2151         ;   not(equals(Position1, 7))
 2152         ),
 2153         (   not(equals(Position2, 5))
 2154         ;   not(equals(Position1, 8))
 2155         ),
 2156         (   not(equals(Position2, 6))
 2157         ;   not(equals(Position1, 7))
 2158         ),
 2159         (   not(equals(Position2, 6))
 2160         ;   not(equals(Position1, 8))
 2161         ),
 2162         (   not(equals(Position2, 7))
 2163         ;   not(equals(Position1, 8))
 2164         ),
 2165         (   not(equals(Position1, 4))
 2166         ;   not(equals(Position2, 7))
 2167         ),
 2168         (   not(equals(Position2, 4))
 2169         ;   not(equals(Position1, 7))
 2170         )
 2171       ),
 2172       (   not(equals(Position1, 5))
 2173       ;   not(equals(Position2, 7))
 2174       ),
 2175       (   not(equals(Position1, 5))
 2176       ;   not(equals(Position2, 6))
 2177       ),
 2178       (   not(equals(Position1, 3))
 2179       ;   not(equals(Position2, 4))
 2180       ),
 2181       (   not(equals(Position1, 2))
 2182       ;   not(equals(Position2, 4))
 2183       ),
 2184       (   not(equals(Position1, 2))
 2185       ;   not(equals(Position2, 3))
 2186       ),
 2187       (   not(equals(Position1, 1))
 2188       ;   not(equals(Position2, 4))
 2189       ),
 2190       (   not(equals(Position1, 1))
 2191       ;   not(equals(Position2, 3))
 2192       ),
 2193       (   not(equals(Position1, 1))
 2194       ;   not(equals(Position2, 2))
 2195       ),
 2196       neighbor(Position1, Position2).
 2197 */
 2198axiom(equals(Position2, 8),
 2199   
 2200    [  (not(equals(Position1, 6));not(equals(Position2, 7))),
 2201       (not(equals(Position1, 6));not(equals(Position2, 8))),
 2202       (not(equals(Position1, 7));not(equals(Position2, 8))),
 2203       (not(equals(Position2, 1));not(equals(Position1, 2))),
 2204       (not(equals(Position2, 1));not(equals(Position1, 3))),
 2205       (not(equals(Position2, 1));not(equals(Position1, 4))),
 2206       (not(equals(Position2, 2));not(equals(Position1, 3))),
 2207       (not(equals(Position2, 2));not(equals(Position1, 4))),
 2208       (not(equals(Position2, 3));not(equals(Position1, 4))),
 2209       (not(equals(Position2, 5));not(equals(Position1, 6))),
 2210       (not(equals(Position2, 5));not(equals(Position1, 7))),
 2211       (not(equals(Position2, 5));not(equals(Position1, 8))),
 2212       (not(equals(Position2, 6));not(equals(Position1, 7))),
 2213       (not(equals(Position2, 6));not(equals(Position1, 8))),
 2214       (not(equals(Position2, 7));not(equals(Position1, 8))),
 2215       (not(equals(Position1, 4));not(equals(Position2, 7))),
 2216       (not(equals(Position2, 4));not(equals(Position1, 7))),
 2217       (not(equals(Position1, 5));not(equals(Position2, 7))),
 2218       (not(equals(Position1, 5));not(equals(Position2, 6))),
 2219       (not(equals(Position1, 3));not(equals(Position2, 4))),
 2220       (not(equals(Position1, 2));not(equals(Position2, 4))),
 2221       (not(equals(Position1, 2));not(equals(Position2, 3))),
 2222       (not(equals(Position1, 1));not(equals(Position2, 4))),
 2223       (not(equals(Position1, 1));not(equals(Position2, 3))),
 2224       (not(equals(Position1, 1));not(equals(Position2, 2))),
 2225      neighbor(Position1, Position2)
 2226    ]).
 2227
 2228 /*  equals(Position1, 6) :-
 2229       ( (   not(equals(Position1, 6))
 2230         ;   not(equals(Position2, 8))
 2231         ),
 2232         (   not(equals(Position1, 7))
 2233         ;   not(equals(Position2, 8))
 2234         ),
 2235         (   not(equals(Position2, 1))
 2236         ;   not(equals(Position1, 2))
 2237         ),
 2238         (   not(equals(Position2, 1))
 2239         ;   not(equals(Position1, 3))
 2240         ),
 2241         (   not(equals(Position2, 1))
 2242         ;   not(equals(Position1, 4))
 2243         ),
 2244         (   not(equals(Position2, 2))
 2245         ;   not(equals(Position1, 3))
 2246         ),
 2247         (   not(equals(Position2, 2))
 2248         ;   not(equals(Position1, 4))
 2249         ),
 2250         (   not(equals(Position2, 3))
 2251         ;   not(equals(Position1, 4))
 2252         ),
 2253         (   not(equals(Position2, 5))
 2254         ;   not(equals(Position1, 6))
 2255         ),
 2256         (   not(equals(Position2, 5))
 2257         ;   not(equals(Position1, 7))
 2258         ),
 2259         (   not(equals(Position2, 5))
 2260         ;   not(equals(Position1, 8))
 2261         ),
 2262         (   not(equals(Position2, 6))
 2263         ;   not(equals(Position1, 7))
 2264         ),
 2265         (   not(equals(Position2, 6))
 2266         ;   not(equals(Position1, 8))
 2267         ),
 2268         (   not(equals(Position2, 7))
 2269         ;   not(equals(Position1, 8))
 2270         ),
 2271         (   not(equals(Position1, 4))
 2272         ;   not(equals(Position2, 7))
 2273         ),
 2274         (   not(equals(Position2, 4))
 2275         ;   not(equals(Position1, 7))
 2276         )
 2277       ),
 2278       (   not(equals(Position1, 5))
 2279       ;   not(equals(Position2, 8))
 2280       ),
 2281       (   not(equals(Position1, 5))
 2282       ;   not(equals(Position2, 7))
 2283       ),
 2284       (   not(equals(Position1, 5))
 2285       ;   not(equals(Position2, 6))
 2286       ),
 2287       (   not(equals(Position1, 3))
 2288       ;   not(equals(Position2, 4))
 2289       ),
 2290       (   not(equals(Position1, 2))
 2291       ;   not(equals(Position2, 4))
 2292       ),
 2293       (   not(equals(Position1, 2))
 2294       ;   not(equals(Position2, 3))
 2295       ),
 2296       (   not(equals(Position1, 1))
 2297       ;   not(equals(Position2, 4))
 2298       ),
 2299       (   not(equals(Position1, 1))
 2300       ;   not(equals(Position2, 3))
 2301       ),
 2302       (   not(equals(Position1, 1))
 2303       ;   not(equals(Position2, 2))
 2304       ),
 2305       neighbor(Position1, Position2).
 2306 */
 2307axiom(equals(Position1, 6),
 2308   
 2309    [  (not(equals(Position1, 6));not(equals(Position2, 8))),
 2310       (not(equals(Position1, 7));not(equals(Position2, 8))),
 2311       (not(equals(Position2, 1));not(equals(Position1, 2))),
 2312       (not(equals(Position2, 1));not(equals(Position1, 3))),
 2313       (not(equals(Position2, 1));not(equals(Position1, 4))),
 2314       (not(equals(Position2, 2));not(equals(Position1, 3))),
 2315       (not(equals(Position2, 2));not(equals(Position1, 4))),
 2316       (not(equals(Position2, 3));not(equals(Position1, 4))),
 2317       (not(equals(Position2, 5));not(equals(Position1, 6))),
 2318       (not(equals(Position2, 5));not(equals(Position1, 7))),
 2319       (not(equals(Position2, 5));not(equals(Position1, 8))),
 2320       (not(equals(Position2, 6));not(equals(Position1, 7))),
 2321       (not(equals(Position2, 6));not(equals(Position1, 8))),
 2322       (not(equals(Position2, 7));not(equals(Position1, 8))),
 2323       (not(equals(Position1, 4));not(equals(Position2, 7))),
 2324       (not(equals(Position2, 4));not(equals(Position1, 7))),
 2325       (not(equals(Position1, 5));not(equals(Position2, 8))),
 2326       (not(equals(Position1, 5));not(equals(Position2, 7))),
 2327       (not(equals(Position1, 5));not(equals(Position2, 6))),
 2328       (not(equals(Position1, 3));not(equals(Position2, 4))),
 2329       (not(equals(Position1, 2));not(equals(Position2, 4))),
 2330       (not(equals(Position1, 2));not(equals(Position2, 3))),
 2331       (not(equals(Position1, 1));not(equals(Position2, 4))),
 2332       (not(equals(Position1, 1));not(equals(Position2, 3))),
 2333       (not(equals(Position1, 1));not(equals(Position2, 2))),
 2334      neighbor(Position1, Position2)
 2335    ]).
 2336
 2337 /*  equals(Position2, 7) :-
 2338       ( (   not(equals(Position1, 6))
 2339         ;   not(equals(Position2, 8))
 2340         ),
 2341         (   not(equals(Position1, 7))
 2342         ;   not(equals(Position2, 8))
 2343         ),
 2344         (   not(equals(Position2, 1))
 2345         ;   not(equals(Position1, 2))
 2346         ),
 2347         (   not(equals(Position2, 1))
 2348         ;   not(equals(Position1, 3))
 2349         ),
 2350         (   not(equals(Position2, 1))
 2351         ;   not(equals(Position1, 4))
 2352         ),
 2353         (   not(equals(Position2, 2))
 2354         ;   not(equals(Position1, 3))
 2355         ),
 2356         (   not(equals(Position2, 2))
 2357         ;   not(equals(Position1, 4))
 2358         ),
 2359         (   not(equals(Position2, 3))
 2360         ;   not(equals(Position1, 4))
 2361         ),
 2362         (   not(equals(Position2, 5))
 2363         ;   not(equals(Position1, 6))
 2364         ),
 2365         (   not(equals(Position2, 5))
 2366         ;   not(equals(Position1, 7))
 2367         ),
 2368         (   not(equals(Position2, 5))
 2369         ;   not(equals(Position1, 8))
 2370         ),
 2371         (   not(equals(Position2, 6))
 2372         ;   not(equals(Position1, 7))
 2373         ),
 2374         (   not(equals(Position2, 6))
 2375         ;   not(equals(Position1, 8))
 2376         ),
 2377         (   not(equals(Position2, 7))
 2378         ;   not(equals(Position1, 8))
 2379         ),
 2380         (   not(equals(Position1, 4))
 2381         ;   not(equals(Position2, 7))
 2382         ),
 2383         (   not(equals(Position2, 4))
 2384         ;   not(equals(Position1, 7))
 2385         )
 2386       ),
 2387       (   not(equals(Position1, 5))
 2388       ;   not(equals(Position2, 8))
 2389       ),
 2390       (   not(equals(Position1, 5))
 2391       ;   not(equals(Position2, 7))
 2392       ),
 2393       (   not(equals(Position1, 5))
 2394       ;   not(equals(Position2, 6))
 2395       ),
 2396       (   not(equals(Position1, 3))
 2397       ;   not(equals(Position2, 4))
 2398       ),
 2399       (   not(equals(Position1, 2))
 2400       ;   not(equals(Position2, 4))
 2401       ),
 2402       (   not(equals(Position1, 2))
 2403       ;   not(equals(Position2, 3))
 2404       ),
 2405       (   not(equals(Position1, 1))
 2406       ;   not(equals(Position2, 4))
 2407       ),
 2408       (   not(equals(Position1, 1))
 2409       ;   not(equals(Position2, 3))
 2410       ),
 2411       (   not(equals(Position1, 1))
 2412       ;   not(equals(Position2, 2))
 2413       ),
 2414       neighbor(Position1, Position2).
 2415 */
 2416axiom(equals(Position2, 7),
 2417   
 2418    [  (not(equals(Position1, 6));not(equals(Position2, 8))),
 2419       (not(equals(Position1, 7));not(equals(Position2, 8))),
 2420       (not(equals(Position2, 1));not(equals(Position1, 2))),
 2421       (not(equals(Position2, 1));not(equals(Position1, 3))),
 2422       (not(equals(Position2, 1));not(equals(Position1, 4))),
 2423       (not(equals(Position2, 2));not(equals(Position1, 3))),
 2424       (not(equals(Position2, 2));not(equals(Position1, 4))),
 2425       (not(equals(Position2, 3));not(equals(Position1, 4))),
 2426       (not(equals(Position2, 5));not(equals(Position1, 6))),
 2427       (not(equals(Position2, 5));not(equals(Position1, 7))),
 2428       (not(equals(Position2, 5));not(equals(Position1, 8))),
 2429       (not(equals(Position2, 6));not(equals(Position1, 7))),
 2430       (not(equals(Position2, 6));not(equals(Position1, 8))),
 2431       (not(equals(Position2, 7));not(equals(Position1, 8))),
 2432       (not(equals(Position1, 4));not(equals(Position2, 7))),
 2433       (not(equals(Position2, 4));not(equals(Position1, 7))),
 2434       (not(equals(Position1, 5));not(equals(Position2, 8))),
 2435       (not(equals(Position1, 5));not(equals(Position2, 7))),
 2436       (not(equals(Position1, 5));not(equals(Position2, 6))),
 2437       (not(equals(Position1, 3));not(equals(Position2, 4))),
 2438       (not(equals(Position1, 2));not(equals(Position2, 4))),
 2439       (not(equals(Position1, 2));not(equals(Position2, 3))),
 2440       (not(equals(Position1, 1));not(equals(Position2, 4))),
 2441       (not(equals(Position1, 1));not(equals(Position2, 3))),
 2442       (not(equals(Position1, 1));not(equals(Position2, 2))),
 2443      neighbor(Position1, Position2)
 2444    ]).
 2445
 2446 /*  equals(Position1, 6) :-
 2447       ( (   not(equals(Position1, 7))
 2448         ;   not(equals(Position2, 8))
 2449         ),
 2450         (   not(equals(Position2, 1))
 2451         ;   not(equals(Position1, 2))
 2452         ),
 2453         (   not(equals(Position2, 1))
 2454         ;   not(equals(Position1, 3))
 2455         ),
 2456         (   not(equals(Position2, 1))
 2457         ;   not(equals(Position1, 4))
 2458         ),
 2459         (   not(equals(Position2, 2))
 2460         ;   not(equals(Position1, 3))
 2461         ),
 2462         (   not(equals(Position2, 2))
 2463         ;   not(equals(Position1, 4))
 2464         ),
 2465         (   not(equals(Position2, 3))
 2466         ;   not(equals(Position1, 4))
 2467         ),
 2468         (   not(equals(Position2, 5))
 2469         ;   not(equals(Position1, 6))
 2470         ),
 2471         (   not(equals(Position2, 5))
 2472         ;   not(equals(Position1, 7))
 2473         ),
 2474         (   not(equals(Position2, 5))
 2475         ;   not(equals(Position1, 8))
 2476         ),
 2477         (   not(equals(Position2, 6))
 2478         ;   not(equals(Position1, 7))
 2479         ),
 2480         (   not(equals(Position2, 6))
 2481         ;   not(equals(Position1, 8))
 2482         ),
 2483         (   not(equals(Position2, 7))
 2484         ;   not(equals(Position1, 8))
 2485         ),
 2486         (   not(equals(Position1, 4))
 2487         ;   not(equals(Position2, 7))
 2488         ),
 2489         (   not(equals(Position2, 4))
 2490         ;   not(equals(Position1, 7))
 2491         )
 2492       ),
 2493       (   not(equals(Position1, 6))
 2494       ;   not(equals(Position2, 7))
 2495       ),
 2496       (   not(equals(Position1, 5))
 2497       ;   not(equals(Position2, 8))
 2498       ),
 2499       (   not(equals(Position1, 5))
 2500       ;   not(equals(Position2, 7))
 2501       ),
 2502       (   not(equals(Position1, 5))
 2503       ;   not(equals(Position2, 6))
 2504       ),
 2505       (   not(equals(Position1, 3))
 2506       ;   not(equals(Position2, 4))
 2507       ),
 2508       (   not(equals(Position1, 2))
 2509       ;   not(equals(Position2, 4))
 2510       ),
 2511       (   not(equals(Position1, 2))
 2512       ;   not(equals(Position2, 3))
 2513       ),
 2514       (   not(equals(Position1, 1))
 2515       ;   not(equals(Position2, 4))
 2516       ),
 2517       (   not(equals(Position1, 1))
 2518       ;   not(equals(Position2, 3))
 2519       ),
 2520       (   not(equals(Position1, 1))
 2521       ;   not(equals(Position2, 2))
 2522       ),
 2523       neighbor(Position1, Position2).
 2524 */
 2525axiom(equals(Position1, 6),
 2526   
 2527    [  (not(equals(Position1, 7));not(equals(Position2, 8))),
 2528       (not(equals(Position2, 1));not(equals(Position1, 2))),
 2529       (not(equals(Position2, 1));not(equals(Position1, 3))),
 2530       (not(equals(Position2, 1));not(equals(Position1, 4))),
 2531       (not(equals(Position2, 2));not(equals(Position1, 3))),
 2532       (not(equals(Position2, 2));not(equals(Position1, 4))),
 2533       (not(equals(Position2, 3));not(equals(Position1, 4))),
 2534       (not(equals(Position2, 5));not(equals(Position1, 6))),
 2535       (not(equals(Position2, 5));not(equals(Position1, 7))),
 2536       (not(equals(Position2, 5));not(equals(Position1, 8))),
 2537       (not(equals(Position2, 6));not(equals(Position1, 7))),
 2538       (not(equals(Position2, 6));not(equals(Position1, 8))),
 2539       (not(equals(Position2, 7));not(equals(Position1, 8))),
 2540       (not(equals(Position1, 4));not(equals(Position2, 7))),
 2541       (not(equals(Position2, 4));not(equals(Position1, 7))),
 2542       (not(equals(Position1, 6));not(equals(Position2, 7))),
 2543       (not(equals(Position1, 5));not(equals(Position2, 8))),
 2544       (not(equals(Position1, 5));not(equals(Position2, 7))),
 2545       (not(equals(Position1, 5));not(equals(Position2, 6))),
 2546       (not(equals(Position1, 3));not(equals(Position2, 4))),
 2547       (not(equals(Position1, 2));not(equals(Position2, 4))),
 2548       (not(equals(Position1, 2));not(equals(Position2, 3))),
 2549       (not(equals(Position1, 1));not(equals(Position2, 4))),
 2550       (not(equals(Position1, 1));not(equals(Position2, 3))),
 2551       (not(equals(Position1, 1));not(equals(Position2, 2))),
 2552      neighbor(Position1, Position2)
 2553    ]).
 2554
 2555 /*  equals(Position2, 8) :-
 2556       ( (   not(equals(Position1, 7))
 2557         ;   not(equals(Position2, 8))
 2558         ),
 2559         (   not(equals(Position2, 1))
 2560         ;   not(equals(Position1, 2))
 2561         ),
 2562         (   not(equals(Position2, 1))
 2563         ;   not(equals(Position1, 3))
 2564         ),
 2565         (   not(equals(Position2, 1))
 2566         ;   not(equals(Position1, 4))
 2567         ),
 2568         (   not(equals(Position2, 2))
 2569         ;   not(equals(Position1, 3))
 2570         ),
 2571         (   not(equals(Position2, 2))
 2572         ;   not(equals(Position1, 4))
 2573         ),
 2574         (   not(equals(Position2, 3))
 2575         ;   not(equals(Position1, 4))
 2576         ),
 2577         (   not(equals(Position2, 5))
 2578         ;   not(equals(Position1, 6))
 2579         ),
 2580         (   not(equals(Position2, 5))
 2581         ;   not(equals(Position1, 7))
 2582         ),
 2583         (   not(equals(Position2, 5))
 2584         ;   not(equals(Position1, 8))
 2585         ),
 2586         (   not(equals(Position2, 6))
 2587         ;   not(equals(Position1, 7))
 2588         ),
 2589         (   not(equals(Position2, 6))
 2590         ;   not(equals(Position1, 8))
 2591         ),
 2592         (   not(equals(Position2, 7))
 2593         ;   not(equals(Position1, 8))
 2594         ),
 2595         (   not(equals(Position1, 4))
 2596         ;   not(equals(Position2, 7))
 2597         ),
 2598         (   not(equals(Position2, 4))
 2599         ;   not(equals(Position1, 7))
 2600         )
 2601       ),
 2602       (   not(equals(Position1, 6))
 2603       ;   not(equals(Position2, 7))
 2604       ),
 2605       (   not(equals(Position1, 5))
 2606       ;   not(equals(Position2, 8))
 2607       ),
 2608       (   not(equals(Position1, 5))
 2609       ;   not(equals(Position2, 7))
 2610       ),
 2611       (   not(equals(Position1, 5))
 2612       ;   not(equals(Position2, 6))
 2613       ),
 2614       (   not(equals(Position1, 3))
 2615       ;   not(equals(Position2, 4))
 2616       ),
 2617       (   not(equals(Position1, 2))
 2618       ;   not(equals(Position2, 4))
 2619       ),
 2620       (   not(equals(Position1, 2))
 2621       ;   not(equals(Position2, 3))
 2622       ),
 2623       (   not(equals(Position1, 1))
 2624       ;   not(equals(Position2, 4))
 2625       ),
 2626       (   not(equals(Position1, 1))
 2627       ;   not(equals(Position2, 3))
 2628       ),
 2629       (   not(equals(Position1, 1))
 2630       ;   not(equals(Position2, 2))
 2631       ),
 2632       neighbor(Position1, Position2).
 2633 */
 2634axiom(equals(Position2, 8),
 2635   
 2636    [  (not(equals(Position1, 7));not(equals(Position2, 8))),
 2637       (not(equals(Position2, 1));not(equals(Position1, 2))),
 2638       (not(equals(Position2, 1));not(equals(Position1, 3))),
 2639       (not(equals(Position2, 1));not(equals(Position1, 4))),
 2640       (not(equals(Position2, 2));not(equals(Position1, 3))),
 2641       (not(equals(Position2, 2));not(equals(Position1, 4))),
 2642       (not(equals(Position2, 3));not(equals(Position1, 4))),
 2643       (not(equals(Position2, 5));not(equals(Position1, 6))),
 2644       (not(equals(Position2, 5));not(equals(Position1, 7))),
 2645       (not(equals(Position2, 5));not(equals(Position1, 8))),
 2646       (not(equals(Position2, 6));not(equals(Position1, 7))),
 2647       (not(equals(Position2, 6));not(equals(Position1, 8))),
 2648       (not(equals(Position2, 7));not(equals(Position1, 8))),
 2649       (not(equals(Position1, 4));not(equals(Position2, 7))),
 2650       (not(equals(Position2, 4));not(equals(Position1, 7))),
 2651       (not(equals(Position1, 6));not(equals(Position2, 7))),
 2652       (not(equals(Position1, 5));not(equals(Position2, 8))),
 2653       (not(equals(Position1, 5));not(equals(Position2, 7))),
 2654       (not(equals(Position1, 5));not(equals(Position2, 6))),
 2655       (not(equals(Position1, 3));not(equals(Position2, 4))),
 2656       (not(equals(Position1, 2));not(equals(Position2, 4))),
 2657       (not(equals(Position1, 2));not(equals(Position2, 3))),
 2658       (not(equals(Position1, 1));not(equals(Position2, 4))),
 2659       (not(equals(Position1, 1));not(equals(Position2, 3))),
 2660       (not(equals(Position1, 1));not(equals(Position2, 2))),
 2661      neighbor(Position1, Position2)
 2662    ]).
 2663
 2664 /*  equals(Position1, 7) :-
 2665       ( (   not(equals(Position2, 1))
 2666         ;   not(equals(Position1, 2))
 2667         ),
 2668         (   not(equals(Position2, 1))
 2669         ;   not(equals(Position1, 3))
 2670         ),
 2671         (   not(equals(Position2, 1))
 2672         ;   not(equals(Position1, 4))
 2673         ),
 2674         (   not(equals(Position2, 2))
 2675         ;   not(equals(Position1, 3))
 2676         ),
 2677         (   not(equals(Position2, 2))
 2678         ;   not(equals(Position1, 4))
 2679         ),
 2680         (   not(equals(Position2, 3))
 2681         ;   not(equals(Position1, 4))
 2682         ),
 2683         (   not(equals(Position2, 5))
 2684         ;   not(equals(Position1, 6))
 2685         ),
 2686         (   not(equals(Position2, 5))
 2687         ;   not(equals(Position1, 7))
 2688         ),
 2689         (   not(equals(Position2, 5))
 2690         ;   not(equals(Position1, 8))
 2691         ),
 2692         (   not(equals(Position2, 6))
 2693         ;   not(equals(Position1, 7))
 2694         ),
 2695         (   not(equals(Position2, 6))
 2696         ;   not(equals(Position1, 8))
 2697         ),
 2698         (   not(equals(Position2, 7))
 2699         ;   not(equals(Position1, 8))
 2700         ),
 2701         (   not(equals(Position1, 4))
 2702         ;   not(equals(Position2, 7))
 2703         ),
 2704         (   not(equals(Position2, 4))
 2705         ;   not(equals(Position1, 7))
 2706         )
 2707       ),
 2708       (   not(equals(Position1, 6))
 2709       ;   not(equals(Position2, 8))
 2710       ),
 2711       (   not(equals(Position1, 6))
 2712       ;   not(equals(Position2, 7))
 2713       ),
 2714       (   not(equals(Position1, 5))
 2715       ;   not(equals(Position2, 8))
 2716       ),
 2717       (   not(equals(Position1, 5))
 2718       ;   not(equals(Position2, 7))
 2719       ),
 2720       (   not(equals(Position1, 5))
 2721       ;   not(equals(Position2, 6))
 2722       ),
 2723       (   not(equals(Position1, 3))
 2724       ;   not(equals(Position2, 4))
 2725       ),
 2726       (   not(equals(Position1, 2))
 2727       ;   not(equals(Position2, 4))
 2728       ),
 2729       (   not(equals(Position1, 2))
 2730       ;   not(equals(Position2, 3))
 2731       ),
 2732       (   not(equals(Position1, 1))
 2733       ;   not(equals(Position2, 4))
 2734       ),
 2735       (   not(equals(Position1, 1))
 2736       ;   not(equals(Position2, 3))
 2737       ),
 2738       (   not(equals(Position1, 1))
 2739       ;   not(equals(Position2, 2))
 2740       ),
 2741       neighbor(Position1, Position2).
 2742 */
 2743axiom(equals(Position1, 7),
 2744   
 2745    [  (not(equals(Position2, 1));not(equals(Position1, 2))),
 2746       (not(equals(Position2, 1));not(equals(Position1, 3))),
 2747       (not(equals(Position2, 1));not(equals(Position1, 4))),
 2748       (not(equals(Position2, 2));not(equals(Position1, 3))),
 2749       (not(equals(Position2, 2));not(equals(Position1, 4))),
 2750       (not(equals(Position2, 3));not(equals(Position1, 4))),
 2751       (not(equals(Position2, 5));not(equals(Position1, 6))),
 2752       (not(equals(Position2, 5));not(equals(Position1, 7))),
 2753       (not(equals(Position2, 5));not(equals(Position1, 8))),
 2754       (not(equals(Position2, 6));not(equals(Position1, 7))),
 2755       (not(equals(Position2, 6));not(equals(Position1, 8))),
 2756       (not(equals(Position2, 7));not(equals(Position1, 8))),
 2757       (not(equals(Position1, 4));not(equals(Position2, 7))),
 2758       (not(equals(Position2, 4));not(equals(Position1, 7))),
 2759       (not(equals(Position1, 6));not(equals(Position2, 8))),
 2760       (not(equals(Position1, 6));not(equals(Position2, 7))),
 2761       (not(equals(Position1, 5));not(equals(Position2, 8))),
 2762       (not(equals(Position1, 5));not(equals(Position2, 7))),
 2763       (not(equals(Position1, 5));not(equals(Position2, 6))),
 2764       (not(equals(Position1, 3));not(equals(Position2, 4))),
 2765       (not(equals(Position1, 2));not(equals(Position2, 4))),
 2766       (not(equals(Position1, 2));not(equals(Position2, 3))),
 2767       (not(equals(Position1, 1));not(equals(Position2, 4))),
 2768       (not(equals(Position1, 1));not(equals(Position2, 3))),
 2769       (not(equals(Position1, 1));not(equals(Position2, 2))),
 2770      neighbor(Position1, Position2)
 2771    ]).
 2772
 2773 /*  equals(Position2, 8) :-
 2774       ( (   not(equals(Position2, 1))
 2775         ;   not(equals(Position1, 2))
 2776         ),
 2777         (   not(equals(Position2, 1))
 2778         ;   not(equals(Position1, 3))
 2779         ),
 2780         (   not(equals(Position2, 1))
 2781         ;   not(equals(Position1, 4))
 2782         ),
 2783         (   not(equals(Position2, 2))
 2784         ;   not(equals(Position1, 3))
 2785         ),
 2786         (   not(equals(Position2, 2))
 2787         ;   not(equals(Position1, 4))
 2788         ),
 2789         (   not(equals(Position2, 3))
 2790         ;   not(equals(Position1, 4))
 2791         ),
 2792         (   not(equals(Position2, 5))
 2793         ;   not(equals(Position1, 6))
 2794         ),
 2795         (   not(equals(Position2, 5))
 2796         ;   not(equals(Position1, 7))
 2797         ),
 2798         (   not(equals(Position2, 5))
 2799         ;   not(equals(Position1, 8))
 2800         ),
 2801         (   not(equals(Position2, 6))
 2802         ;   not(equals(Position1, 7))
 2803         ),
 2804         (   not(equals(Position2, 6))
 2805         ;   not(equals(Position1, 8))
 2806         ),
 2807         (   not(equals(Position2, 7))
 2808         ;   not(equals(Position1, 8))
 2809         ),
 2810         (   not(equals(Position1, 4))
 2811         ;   not(equals(Position2, 7))
 2812         ),
 2813         (   not(equals(Position2, 4))
 2814         ;   not(equals(Position1, 7))
 2815         )
 2816       ),
 2817       (   not(equals(Position1, 6))
 2818       ;   not(equals(Position2, 8))
 2819       ),
 2820       (   not(equals(Position1, 6))
 2821       ;   not(equals(Position2, 7))
 2822       ),
 2823       (   not(equals(Position1, 5))
 2824       ;   not(equals(Position2, 8))
 2825       ),
 2826       (   not(equals(Position1, 5))
 2827       ;   not(equals(Position2, 7))
 2828       ),
 2829       (   not(equals(Position1, 5))
 2830       ;   not(equals(Position2, 6))
 2831       ),
 2832       (   not(equals(Position1, 3))
 2833       ;   not(equals(Position2, 4))
 2834       ),
 2835       (   not(equals(Position1, 2))
 2836       ;   not(equals(Position2, 4))
 2837       ),
 2838       (   not(equals(Position1, 2))
 2839       ;   not(equals(Position2, 3))
 2840       ),
 2841       (   not(equals(Position1, 1))
 2842       ;   not(equals(Position2, 4))
 2843       ),
 2844       (   not(equals(Position1, 1))
 2845       ;   not(equals(Position2, 3))
 2846       ),
 2847       (   not(equals(Position1, 1))
 2848       ;   not(equals(Position2, 2))
 2849       ),
 2850       neighbor(Position1, Position2).
 2851 */
 2852axiom(equals(Position2, 8),
 2853   
 2854    [  (not(equals(Position2, 1));not(equals(Position1, 2))),
 2855       (not(equals(Position2, 1));not(equals(Position1, 3))),
 2856       (not(equals(Position2, 1));not(equals(Position1, 4))),
 2857       (not(equals(Position2, 2));not(equals(Position1, 3))),
 2858       (not(equals(Position2, 2));not(equals(Position1, 4))),
 2859       (not(equals(Position2, 3));not(equals(Position1, 4))),
 2860       (not(equals(Position2, 5));not(equals(Position1, 6))),
 2861       (not(equals(Position2, 5));not(equals(Position1, 7))),
 2862       (not(equals(Position2, 5));not(equals(Position1, 8))),
 2863       (not(equals(Position2, 6));not(equals(Position1, 7))),
 2864       (not(equals(Position2, 6));not(equals(Position1, 8))),
 2865       (not(equals(Position2, 7));not(equals(Position1, 8))),
 2866       (not(equals(Position1, 4));not(equals(Position2, 7))),
 2867       (not(equals(Position2, 4));not(equals(Position1, 7))),
 2868       (not(equals(Position1, 6));not(equals(Position2, 8))),
 2869       (not(equals(Position1, 6));not(equals(Position2, 7))),
 2870       (not(equals(Position1, 5));not(equals(Position2, 8))),
 2871       (not(equals(Position1, 5));not(equals(Position2, 7))),
 2872       (not(equals(Position1, 5));not(equals(Position2, 6))),
 2873       (not(equals(Position1, 3));not(equals(Position2, 4))),
 2874       (not(equals(Position1, 2));not(equals(Position2, 4))),
 2875       (not(equals(Position1, 2));not(equals(Position2, 3))),
 2876       (not(equals(Position1, 1));not(equals(Position2, 4))),
 2877       (not(equals(Position1, 1));not(equals(Position2, 3))),
 2878       (not(equals(Position1, 1));not(equals(Position2, 2))),
 2879      neighbor(Position1, Position2)
 2880    ]).
 2881
 2882 /*  equals(Position2, 1) :-
 2883       ( (   not(equals(Position2, 1))
 2884         ;   not(equals(Position1, 3))
 2885         ),
 2886         (   not(equals(Position2, 1))
 2887         ;   not(equals(Position1, 4))
 2888         ),
 2889         (   not(equals(Position2, 2))
 2890         ;   not(equals(Position1, 3))
 2891         ),
 2892         (   not(equals(Position2, 2))
 2893         ;   not(equals(Position1, 4))
 2894         ),
 2895         (   not(equals(Position2, 3))
 2896         ;   not(equals(Position1, 4))
 2897         ),
 2898         (   not(equals(Position2, 5))
 2899         ;   not(equals(Position1, 6))
 2900         ),
 2901         (   not(equals(Position2, 5))
 2902         ;   not(equals(Position1, 7))
 2903         ),
 2904         (   not(equals(Position2, 5))
 2905         ;   not(equals(Position1, 8))
 2906         ),
 2907         (   not(equals(Position2, 6))
 2908         ;   not(equals(Position1, 7))
 2909         ),
 2910         (   not(equals(Position2, 6))
 2911         ;   not(equals(Position1, 8))
 2912         ),
 2913         (   not(equals(Position2, 7))
 2914         ;   not(equals(Position1, 8))
 2915         ),
 2916         (   not(equals(Position1, 4))
 2917         ;   not(equals(Position2, 7))
 2918         ),
 2919         (   not(equals(Position2, 4))
 2920         ;   not(equals(Position1, 7))
 2921         )
 2922       ),
 2923       (   not(equals(Position1, 7))
 2924       ;   not(equals(Position2, 8))
 2925       ),
 2926       (   not(equals(Position1, 6))
 2927       ;   not(equals(Position2, 8))
 2928       ),
 2929       (   not(equals(Position1, 6))
 2930       ;   not(equals(Position2, 7))
 2931       ),
 2932       (   not(equals(Position1, 5))
 2933       ;   not(equals(Position2, 8))
 2934       ),
 2935       (   not(equals(Position1, 5))
 2936       ;   not(equals(Position2, 7))
 2937       ),
 2938       (   not(equals(Position1, 5))
 2939       ;   not(equals(Position2, 6))
 2940       ),
 2941       (   not(equals(Position1, 3))
 2942       ;   not(equals(Position2, 4))
 2943       ),
 2944       (   not(equals(Position1, 2))
 2945       ;   not(equals(Position2, 4))
 2946       ),
 2947       (   not(equals(Position1, 2))
 2948       ;   not(equals(Position2, 3))
 2949       ),
 2950       (   not(equals(Position1, 1))
 2951       ;   not(equals(Position2, 4))
 2952       ),
 2953       (   not(equals(Position1, 1))
 2954       ;   not(equals(Position2, 3))
 2955       ),
 2956       (   not(equals(Position1, 1))
 2957       ;   not(equals(Position2, 2))
 2958       ),
 2959       neighbor(Position1, Position2).
 2960 */
 2961axiom(equals(Position2, 1),
 2962   
 2963    [  (not(equals(Position2, 1));not(equals(Position1, 3))),
 2964       (not(equals(Position2, 1));not(equals(Position1, 4))),
 2965       (not(equals(Position2, 2));not(equals(Position1, 3))),
 2966       (not(equals(Position2, 2));not(equals(Position1, 4))),
 2967       (not(equals(Position2, 3));not(equals(Position1, 4))),
 2968       (not(equals(Position2, 5));not(equals(Position1, 6))),
 2969       (not(equals(Position2, 5));not(equals(Position1, 7))),
 2970       (not(equals(Position2, 5));not(equals(Position1, 8))),
 2971       (not(equals(Position2, 6));not(equals(Position1, 7))),
 2972       (not(equals(Position2, 6));not(equals(Position1, 8))),
 2973       (not(equals(Position2, 7));not(equals(Position1, 8))),
 2974       (not(equals(Position1, 4));not(equals(Position2, 7))),
 2975       (not(equals(Position2, 4));not(equals(Position1, 7))),
 2976       (not(equals(Position1, 7));not(equals(Position2, 8))),
 2977       (not(equals(Position1, 6));not(equals(Position2, 8))),
 2978       (not(equals(Position1, 6));not(equals(Position2, 7))),
 2979       (not(equals(Position1, 5));not(equals(Position2, 8))),
 2980       (not(equals(Position1, 5));not(equals(Position2, 7))),
 2981       (not(equals(Position1, 5));not(equals(Position2, 6))),
 2982       (not(equals(Position1, 3));not(equals(Position2, 4))),
 2983       (not(equals(Position1, 2));not(equals(Position2, 4))),
 2984       (not(equals(Position1, 2));not(equals(Position2, 3))),
 2985       (not(equals(Position1, 1));not(equals(Position2, 4))),
 2986       (not(equals(Position1, 1));not(equals(Position2, 3))),
 2987       (not(equals(Position1, 1));not(equals(Position2, 2))),
 2988      neighbor(Position1, Position2)
 2989    ]).
 2990
 2991 /*  equals(Position1, 2) :-
 2992       ( (   not(equals(Position2, 1))
 2993         ;   not(equals(Position1, 3))
 2994         ),
 2995         (   not(equals(Position2, 1))
 2996         ;   not(equals(Position1, 4))
 2997         ),
 2998         (   not(equals(Position2, 2))
 2999         ;   not(equals(Position1, 3))
 3000         ),
 3001         (   not(equals(Position2, 2))
 3002         ;   not(equals(Position1, 4))
 3003         ),
 3004         (   not(equals(Position2, 3))
 3005         ;   not(equals(Position1, 4))
 3006         ),
 3007         (   not(equals(Position2, 5))
 3008         ;   not(equals(Position1, 6))
 3009         ),
 3010         (   not(equals(Position2, 5))
 3011         ;   not(equals(Position1, 7))
 3012         ),
 3013         (   not(equals(Position2, 5))
 3014         ;   not(equals(Position1, 8))
 3015         ),
 3016         (   not(equals(Position2, 6))
 3017         ;   not(equals(Position1, 7))
 3018         ),
 3019         (   not(equals(Position2, 6))
 3020         ;   not(equals(Position1, 8))
 3021         ),
 3022         (   not(equals(Position2, 7))
 3023         ;   not(equals(Position1, 8))
 3024         ),
 3025         (   not(equals(Position1, 4))
 3026         ;   not(equals(Position2, 7))
 3027         ),
 3028         (   not(equals(Position2, 4))
 3029         ;   not(equals(Position1, 7))
 3030         )
 3031       ),
 3032       (   not(equals(Position1, 7))
 3033       ;   not(equals(Position2, 8))
 3034       ),
 3035       (   not(equals(Position1, 6))
 3036       ;   not(equals(Position2, 8))
 3037       ),
 3038       (   not(equals(Position1, 6))
 3039       ;   not(equals(Position2, 7))
 3040       ),
 3041       (   not(equals(Position1, 5))
 3042       ;   not(equals(Position2, 8))
 3043       ),
 3044       (   not(equals(Position1, 5))
 3045       ;   not(equals(Position2, 7))
 3046       ),
 3047       (   not(equals(Position1, 5))
 3048       ;   not(equals(Position2, 6))
 3049       ),
 3050       (   not(equals(Position1, 3))
 3051       ;   not(equals(Position2, 4))
 3052       ),
 3053       (   not(equals(Position1, 2))
 3054       ;   not(equals(Position2, 4))
 3055       ),
 3056       (   not(equals(Position1, 2))
 3057       ;   not(equals(Position2, 3))
 3058       ),
 3059       (   not(equals(Position1, 1))
 3060       ;   not(equals(Position2, 4))
 3061       ),
 3062       (   not(equals(Position1, 1))
 3063       ;   not(equals(Position2, 3))
 3064       ),
 3065       (   not(equals(Position1, 1))
 3066       ;   not(equals(Position2, 2))
 3067       ),
 3068       neighbor(Position1, Position2).
 3069 */
 3070axiom(equals(Position1, 2),
 3071   
 3072    [  (not(equals(Position2, 1));not(equals(Position1, 3))),
 3073       (not(equals(Position2, 1));not(equals(Position1, 4))),
 3074       (not(equals(Position2, 2));not(equals(Position1, 3))),
 3075       (not(equals(Position2, 2));not(equals(Position1, 4))),
 3076       (not(equals(Position2, 3));not(equals(Position1, 4))),
 3077       (not(equals(Position2, 5));not(equals(Position1, 6))),
 3078       (not(equals(Position2, 5));not(equals(Position1, 7))),
 3079       (not(equals(Position2, 5));not(equals(Position1, 8))),
 3080       (not(equals(Position2, 6));not(equals(Position1, 7))),
 3081       (not(equals(Position2, 6));not(equals(Position1, 8))),
 3082       (not(equals(Position2, 7));not(equals(Position1, 8))),
 3083       (not(equals(Position1, 4));not(equals(Position2, 7))),
 3084       (not(equals(Position2, 4));not(equals(Position1, 7))),
 3085       (not(equals(Position1, 7));not(equals(Position2, 8))),
 3086       (not(equals(Position1, 6));not(equals(Position2, 8))),
 3087       (not(equals(Position1, 6));not(equals(Position2, 7))),
 3088       (not(equals(Position1, 5));not(equals(Position2, 8))),
 3089       (not(equals(Position1, 5));not(equals(Position2, 7))),
 3090       (not(equals(Position1, 5));not(equals(Position2, 6))),
 3091       (not(equals(Position1, 3));not(equals(Position2, 4))),
 3092       (not(equals(Position1, 2));not(equals(Position2, 4))),
 3093       (not(equals(Position1, 2));not(equals(Position2, 3))),
 3094       (not(equals(Position1, 1));not(equals(Position2, 4))),
 3095       (not(equals(Position1, 1));not(equals(Position2, 3))),
 3096       (not(equals(Position1, 1));not(equals(Position2, 2))),
 3097      neighbor(Position1, Position2)
 3098    ]).
 3099
 3100 /*  equals(Position2, 1) :-
 3101       ( (   not(equals(Position2, 1))
 3102         ;   not(equals(Position1, 4))
 3103         ),
 3104         (   not(equals(Position2, 2))
 3105         ;   not(equals(Position1, 3))
 3106         ),
 3107         (   not(equals(Position2, 2))
 3108         ;   not(equals(Position1, 4))
 3109         ),
 3110         (   not(equals(Position2, 3))
 3111         ;   not(equals(Position1, 4))
 3112         ),
 3113         (   not(equals(Position2, 5))
 3114         ;   not(equals(Position1, 6))
 3115         ),
 3116         (   not(equals(Position2, 5))
 3117         ;   not(equals(Position1, 7))
 3118         ),
 3119         (   not(equals(Position2, 5))
 3120         ;   not(equals(Position1, 8))
 3121         ),
 3122         (   not(equals(Position2, 6))
 3123         ;   not(equals(Position1, 7))
 3124         ),
 3125         (   not(equals(Position2, 6))
 3126         ;   not(equals(Position1, 8))
 3127         ),
 3128         (   not(equals(Position2, 7))
 3129         ;   not(equals(Position1, 8))
 3130         ),
 3131         (   not(equals(Position1, 4))
 3132         ;   not(equals(Position2, 7))
 3133         ),
 3134         (   not(equals(Position2, 4))
 3135         ;   not(equals(Position1, 7))
 3136         )
 3137       ),
 3138       (   not(equals(Position2, 1))
 3139       ;   not(equals(Position1, 2))
 3140       ),
 3141       (   not(equals(Position1, 7))
 3142       ;   not(equals(Position2, 8))
 3143       ),
 3144       (   not(equals(Position1, 6))
 3145       ;   not(equals(Position2, 8))
 3146       ),
 3147       (   not(equals(Position1, 6))
 3148       ;   not(equals(Position2, 7))
 3149       ),
 3150       (   not(equals(Position1, 5))
 3151       ;   not(equals(Position2, 8))
 3152       ),
 3153       (   not(equals(Position1, 5))
 3154       ;   not(equals(Position2, 7))
 3155       ),
 3156       (   not(equals(Position1, 5))
 3157       ;   not(equals(Position2, 6))
 3158       ),
 3159       (   not(equals(Position1, 3))
 3160       ;   not(equals(Position2, 4))
 3161       ),
 3162       (   not(equals(Position1, 2))
 3163       ;   not(equals(Position2, 4))
 3164       ),
 3165       (   not(equals(Position1, 2))
 3166       ;   not(equals(Position2, 3))
 3167       ),
 3168       (   not(equals(Position1, 1))
 3169       ;   not(equals(Position2, 4))
 3170       ),
 3171       (   not(equals(Position1, 1))
 3172       ;   not(equals(Position2, 3))
 3173       ),
 3174       (   not(equals(Position1, 1))
 3175       ;   not(equals(Position2, 2))
 3176       ),
 3177       neighbor(Position1, Position2).
 3178 */
 3179axiom(equals(Position2, 1),
 3180   
 3181    [  (not(equals(Position2, 1));not(equals(Position1, 4))),
 3182       (not(equals(Position2, 2));not(equals(Position1, 3))),
 3183       (not(equals(Position2, 2));not(equals(Position1, 4))),
 3184       (not(equals(Position2, 3));not(equals(Position1, 4))),
 3185       (not(equals(Position2, 5));not(equals(Position1, 6))),
 3186       (not(equals(Position2, 5));not(equals(Position1, 7))),
 3187       (not(equals(Position2, 5));not(equals(Position1, 8))),
 3188       (not(equals(Position2, 6));not(equals(Position1, 7))),
 3189       (not(equals(Position2, 6));not(equals(Position1, 8))),
 3190       (not(equals(Position2, 7));not(equals(Position1, 8))),
 3191       (not(equals(Position1, 4));not(equals(Position2, 7))),
 3192       (not(equals(Position2, 4));not(equals(Position1, 7))),
 3193       (not(equals(Position2, 1));not(equals(Position1, 2))),
 3194       (not(equals(Position1, 7));not(equals(Position2, 8))),
 3195       (not(equals(Position1, 6));not(equals(Position2, 8))),
 3196       (not(equals(Position1, 6));not(equals(Position2, 7))),
 3197       (not(equals(Position1, 5));not(equals(Position2, 8))),
 3198       (not(equals(Position1, 5));not(equals(Position2, 7))),
 3199       (not(equals(Position1, 5));not(equals(Position2, 6))),
 3200       (not(equals(Position1, 3));not(equals(Position2, 4))),
 3201       (not(equals(Position1, 2));not(equals(Position2, 4))),
 3202       (not(equals(Position1, 2));not(equals(Position2, 3))),
 3203       (not(equals(Position1, 1));not(equals(Position2, 4))),
 3204       (not(equals(Position1, 1));not(equals(Position2, 3))),
 3205       (not(equals(Position1, 1));not(equals(Position2, 2))),
 3206      neighbor(Position1, Position2)
 3207    ]).
 3208
 3209 /*  equals(Position1, 3) :-
 3210       ( (   not(equals(Position2, 1))
 3211         ;   not(equals(Position1, 4))
 3212         ),
 3213         (   not(equals(Position2, 2))
 3214         ;   not(equals(Position1, 3))
 3215         ),
 3216         (   not(equals(Position2, 2))
 3217         ;   not(equals(Position1, 4))
 3218         ),
 3219         (   not(equals(Position2, 3))
 3220         ;   not(equals(Position1, 4))
 3221         ),
 3222         (   not(equals(Position2, 5))
 3223         ;   not(equals(Position1, 6))
 3224         ),
 3225         (   not(equals(Position2, 5))
 3226         ;   not(equals(Position1, 7))
 3227         ),
 3228         (   not(equals(Position2, 5))
 3229         ;   not(equals(Position1, 8))
 3230         ),
 3231         (   not(equals(Position2, 6))
 3232         ;   not(equals(Position1, 7))
 3233         ),
 3234         (   not(equals(Position2, 6))
 3235         ;   not(equals(Position1, 8))
 3236         ),
 3237         (   not(equals(Position2, 7))
 3238         ;   not(equals(Position1, 8))
 3239         ),
 3240         (   not(equals(Position1, 4))
 3241         ;   not(equals(Position2, 7))
 3242         ),
 3243         (   not(equals(Position2, 4))
 3244         ;   not(equals(Position1, 7))
 3245         )
 3246       ),
 3247       (   not(equals(Position2, 1))
 3248       ;   not(equals(Position1, 2))
 3249       ),
 3250       (   not(equals(Position1, 7))
 3251       ;   not(equals(Position2, 8))
 3252       ),
 3253       (   not(equals(Position1, 6))
 3254       ;   not(equals(Position2, 8))
 3255       ),
 3256       (   not(equals(Position1, 6))
 3257       ;   not(equals(Position2, 7))
 3258       ),
 3259       (   not(equals(Position1, 5))
 3260       ;   not(equals(Position2, 8))
 3261       ),
 3262       (   not(equals(Position1, 5))
 3263       ;   not(equals(Position2, 7))
 3264       ),
 3265       (   not(equals(Position1, 5))
 3266       ;   not(equals(Position2, 6))
 3267       ),
 3268       (   not(equals(Position1, 3))
 3269       ;   not(equals(Position2, 4))
 3270       ),
 3271       (   not(equals(Position1, 2))
 3272       ;   not(equals(Position2, 4))
 3273       ),
 3274       (   not(equals(Position1, 2))
 3275       ;   not(equals(Position2, 3))
 3276       ),
 3277       (   not(equals(Position1, 1))
 3278       ;   not(equals(Position2, 4))
 3279       ),
 3280       (   not(equals(Position1, 1))
 3281       ;   not(equals(Position2, 3))
 3282       ),
 3283       (   not(equals(Position1, 1))
 3284       ;   not(equals(Position2, 2))
 3285       ),
 3286       neighbor(Position1, Position2).
 3287 */
 3288axiom(equals(Position1, 3),
 3289   
 3290    [  (not(equals(Position2, 1));not(equals(Position1, 4))),
 3291       (not(equals(Position2, 2));not(equals(Position1, 3))),
 3292       (not(equals(Position2, 2));not(equals(Position1, 4))),
 3293       (not(equals(Position2, 3));not(equals(Position1, 4))),
 3294       (not(equals(Position2, 5));not(equals(Position1, 6))),
 3295       (not(equals(Position2, 5));not(equals(Position1, 7))),
 3296       (not(equals(Position2, 5));not(equals(Position1, 8))),
 3297       (not(equals(Position2, 6));not(equals(Position1, 7))),
 3298       (not(equals(Position2, 6));not(equals(Position1, 8))),
 3299       (not(equals(Position2, 7));not(equals(Position1, 8))),
 3300       (not(equals(Position1, 4));not(equals(Position2, 7))),
 3301       (not(equals(Position2, 4));not(equals(Position1, 7))),
 3302       (not(equals(Position2, 1));not(equals(Position1, 2))),
 3303       (not(equals(Position1, 7));not(equals(Position2, 8))),
 3304       (not(equals(Position1, 6));not(equals(Position2, 8))),
 3305       (not(equals(Position1, 6));not(equals(Position2, 7))),
 3306       (not(equals(Position1, 5));not(equals(Position2, 8))),
 3307       (not(equals(Position1, 5));not(equals(Position2, 7))),
 3308       (not(equals(Position1, 5));not(equals(Position2, 6))),
 3309       (not(equals(Position1, 3));not(equals(Position2, 4))),
 3310       (not(equals(Position1, 2));not(equals(Position2, 4))),
 3311       (not(equals(Position1, 2));not(equals(Position2, 3))),
 3312       (not(equals(Position1, 1));not(equals(Position2, 4))),
 3313       (not(equals(Position1, 1));not(equals(Position2, 3))),
 3314       (not(equals(Position1, 1));not(equals(Position2, 2))),
 3315      neighbor(Position1, Position2)
 3316    ]).
 3317
 3318 /*  equals(Position2, 1) :-
 3319       ( (   not(equals(Position2, 2))
 3320         ;   not(equals(Position1, 3))
 3321         ),
 3322         (   not(equals(Position2, 2))
 3323         ;   not(equals(Position1, 4))
 3324         ),
 3325         (   not(equals(Position2, 3))
 3326         ;   not(equals(Position1, 4))
 3327         ),
 3328         (   not(equals(Position2, 5))
 3329         ;   not(equals(Position1, 6))
 3330         ),
 3331         (   not(equals(Position2, 5))
 3332         ;   not(equals(Position1, 7))
 3333         ),
 3334         (   not(equals(Position2, 5))
 3335         ;   not(equals(Position1, 8))
 3336         ),
 3337         (   not(equals(Position2, 6))
 3338         ;   not(equals(Position1, 7))
 3339         ),
 3340         (   not(equals(Position2, 6))
 3341         ;   not(equals(Position1, 8))
 3342         ),
 3343         (   not(equals(Position2, 7))
 3344         ;   not(equals(Position1, 8))
 3345         ),
 3346         (   not(equals(Position1, 4))
 3347         ;   not(equals(Position2, 7))
 3348         ),
 3349         (   not(equals(Position2, 4))
 3350         ;   not(equals(Position1, 7))
 3351         )
 3352       ),
 3353       (   not(equals(Position2, 1))
 3354       ;   not(equals(Position1, 3))
 3355       ),
 3356       (   not(equals(Position2, 1))
 3357       ;   not(equals(Position1, 2))
 3358       ),
 3359       (   not(equals(Position1, 7))
 3360       ;   not(equals(Position2, 8))
 3361       ),
 3362       (   not(equals(Position1, 6))
 3363       ;   not(equals(Position2, 8))
 3364       ),
 3365       (   not(equals(Position1, 6))
 3366       ;   not(equals(Position2, 7))
 3367       ),
 3368       (   not(equals(Position1, 5))
 3369       ;   not(equals(Position2, 8))
 3370       ),
 3371       (   not(equals(Position1, 5))
 3372       ;   not(equals(Position2, 7))
 3373       ),
 3374       (   not(equals(Position1, 5))
 3375       ;   not(equals(Position2, 6))
 3376       ),
 3377       (   not(equals(Position1, 3))
 3378       ;   not(equals(Position2, 4))
 3379       ),
 3380       (   not(equals(Position1, 2))
 3381       ;   not(equals(Position2, 4))
 3382       ),
 3383       (   not(equals(Position1, 2))
 3384       ;   not(equals(Position2, 3))
 3385       ),
 3386       (   not(equals(Position1, 1))
 3387       ;   not(equals(Position2, 4))
 3388       ),
 3389       (   not(equals(Position1, 1))
 3390       ;   not(equals(Position2, 3))
 3391       ),
 3392       (   not(equals(Position1, 1))
 3393       ;   not(equals(Position2, 2))
 3394       ),
 3395       neighbor(Position1, Position2).
 3396 */
 3397axiom(equals(Position2, 1),
 3398   
 3399    [  (not(equals(Position2, 2));not(equals(Position1, 3))),
 3400       (not(equals(Position2, 2));not(equals(Position1, 4))),
 3401       (not(equals(Position2, 3));not(equals(Position1, 4))),
 3402       (not(equals(Position2, 5));not(equals(Position1, 6))),
 3403       (not(equals(Position2, 5));not(equals(Position1, 7))),
 3404       (not(equals(Position2, 5));not(equals(Position1, 8))),
 3405       (not(equals(Position2, 6));not(equals(Position1, 7))),
 3406       (not(equals(Position2, 6));not(equals(Position1, 8))),
 3407       (not(equals(Position2, 7));not(equals(Position1, 8))),
 3408       (not(equals(Position1, 4));not(equals(Position2, 7))),
 3409       (not(equals(Position2, 4));not(equals(Position1, 7))),
 3410       (not(equals(Position2, 1));not(equals(Position1, 3))),
 3411       (not(equals(Position2, 1));not(equals(Position1, 2))),
 3412       (not(equals(Position1, 7));not(equals(Position2, 8))),
 3413       (not(equals(Position1, 6));not(equals(Position2, 8))),
 3414       (not(equals(Position1, 6));not(equals(Position2, 7))),
 3415       (not(equals(Position1, 5));not(equals(Position2, 8))),
 3416       (not(equals(Position1, 5));not(equals(Position2, 7))),
 3417       (not(equals(Position1, 5));not(equals(Position2, 6))),
 3418       (not(equals(Position1, 3));not(equals(Position2, 4))),
 3419       (not(equals(Position1, 2));not(equals(Position2, 4))),
 3420       (not(equals(Position1, 2));not(equals(Position2, 3))),
 3421       (not(equals(Position1, 1));not(equals(Position2, 4))),
 3422       (not(equals(Position1, 1));not(equals(Position2, 3))),
 3423       (not(equals(Position1, 1));not(equals(Position2, 2))),
 3424      neighbor(Position1, Position2)
 3425    ]).
 3426
 3427 /*  equals(Position1, 4) :-
 3428       ( (   not(equals(Position2, 2))
 3429         ;   not(equals(Position1, 3))
 3430         ),
 3431         (   not(equals(Position2, 2))
 3432         ;   not(equals(Position1, 4))
 3433         ),
 3434         (   not(equals(Position2, 3))
 3435         ;   not(equals(Position1, 4))
 3436         ),
 3437         (   not(equals(Position2, 5))
 3438         ;   not(equals(Position1, 6))
 3439         ),
 3440         (   not(equals(Position2, 5))
 3441         ;   not(equals(Position1, 7))
 3442         ),
 3443         (   not(equals(Position2, 5))
 3444         ;   not(equals(Position1, 8))
 3445         ),
 3446         (   not(equals(Position2, 6))
 3447         ;   not(equals(Position1, 7))
 3448         ),
 3449         (   not(equals(Position2, 6))
 3450         ;   not(equals(Position1, 8))
 3451         ),
 3452         (   not(equals(Position2, 7))
 3453         ;   not(equals(Position1, 8))
 3454         ),
 3455         (   not(equals(Position1, 4))
 3456         ;   not(equals(Position2, 7))
 3457         ),
 3458         (   not(equals(Position2, 4))
 3459         ;   not(equals(Position1, 7))
 3460         )
 3461       ),
 3462       (   not(equals(Position2, 1))
 3463       ;   not(equals(Position1, 3))
 3464       ),
 3465       (   not(equals(Position2, 1))
 3466       ;   not(equals(Position1, 2))
 3467       ),
 3468       (   not(equals(Position1, 7))
 3469       ;   not(equals(Position2, 8))
 3470       ),
 3471       (   not(equals(Position1, 6))
 3472       ;   not(equals(Position2, 8))
 3473       ),
 3474       (   not(equals(Position1, 6))
 3475       ;   not(equals(Position2, 7))
 3476       ),
 3477       (   not(equals(Position1, 5))
 3478       ;   not(equals(Position2, 8))
 3479       ),
 3480       (   not(equals(Position1, 5))
 3481       ;   not(equals(Position2, 7))
 3482       ),
 3483       (   not(equals(Position1, 5))
 3484       ;   not(equals(Position2, 6))
 3485       ),
 3486       (   not(equals(Position1, 3))
 3487       ;   not(equals(Position2, 4))
 3488       ),
 3489       (   not(equals(Position1, 2))
 3490       ;   not(equals(Position2, 4))
 3491       ),
 3492       (   not(equals(Position1, 2))
 3493       ;   not(equals(Position2, 3))
 3494       ),
 3495       (   not(equals(Position1, 1))
 3496       ;   not(equals(Position2, 4))
 3497       ),
 3498       (   not(equals(Position1, 1))
 3499       ;   not(equals(Position2, 3))
 3500       ),
 3501       (   not(equals(Position1, 1))
 3502       ;   not(equals(Position2, 2))
 3503       ),
 3504       neighbor(Position1, Position2).
 3505 */
 3506axiom(equals(Position1, 4),
 3507   
 3508    [  (not(equals(Position2, 2));not(equals(Position1, 3))),
 3509       (not(equals(Position2, 2));not(equals(Position1, 4))),
 3510       (not(equals(Position2, 3));not(equals(Position1, 4))),
 3511       (not(equals(Position2, 5));not(equals(Position1, 6))),
 3512       (not(equals(Position2, 5));not(equals(Position1, 7))),
 3513       (not(equals(Position2, 5));not(equals(Position1, 8))),
 3514       (not(equals(Position2, 6));not(equals(Position1, 7))),
 3515       (not(equals(Position2, 6));not(equals(Position1, 8))),
 3516       (not(equals(Position2, 7));not(equals(Position1, 8))),
 3517       (not(equals(Position1, 4));not(equals(Position2, 7))),
 3518       (not(equals(Position2, 4));not(equals(Position1, 7))),
 3519       (not(equals(Position2, 1));not(equals(Position1, 3))),
 3520       (not(equals(Position2, 1));not(equals(Position1, 2))),
 3521       (not(equals(Position1, 7));not(equals(Position2, 8))),
 3522       (not(equals(Position1, 6));not(equals(Position2, 8))),
 3523       (not(equals(Position1, 6));not(equals(Position2, 7))),
 3524       (not(equals(Position1, 5));not(equals(Position2, 8))),
 3525       (not(equals(Position1, 5));not(equals(Position2, 7))),
 3526       (not(equals(Position1, 5));not(equals(Position2, 6))),
 3527       (not(equals(Position1, 3));not(equals(Position2, 4))),
 3528       (not(equals(Position1, 2));not(equals(Position2, 4))),
 3529       (not(equals(Position1, 2));not(equals(Position2, 3))),
 3530       (not(equals(Position1, 1));not(equals(Position2, 4))),
 3531       (not(equals(Position1, 1));not(equals(Position2, 3))),
 3532       (not(equals(Position1, 1));not(equals(Position2, 2))),
 3533      neighbor(Position1, Position2)
 3534    ]).
 3535
 3536 /*  equals(Position2, 2) :-
 3537       ( (   not(equals(Position2, 2))
 3538         ;   not(equals(Position1, 4))
 3539         ),
 3540         (   not(equals(Position2, 3))
 3541         ;   not(equals(Position1, 4))
 3542         ),
 3543         (   not(equals(Position2, 5))
 3544         ;   not(equals(Position1, 6))
 3545         ),
 3546         (   not(equals(Position2, 5))
 3547         ;   not(equals(Position1, 7))
 3548         ),
 3549         (   not(equals(Position2, 5))
 3550         ;   not(equals(Position1, 8))
 3551         ),
 3552         (   not(equals(Position2, 6))
 3553         ;   not(equals(Position1, 7))
 3554         ),
 3555         (   not(equals(Position2, 6))
 3556         ;   not(equals(Position1, 8))
 3557         ),
 3558         (   not(equals(Position2, 7))
 3559         ;   not(equals(Position1, 8))
 3560         ),
 3561         (   not(equals(Position1, 4))
 3562         ;   not(equals(Position2, 7))
 3563         ),
 3564         (   not(equals(Position2, 4))
 3565         ;   not(equals(Position1, 7))
 3566         )
 3567       ),
 3568       (   not(equals(Position2, 1))
 3569       ;   not(equals(Position1, 4))
 3570       ),
 3571       (   not(equals(Position2, 1))
 3572       ;   not(equals(Position1, 3))
 3573       ),
 3574       (   not(equals(Position2, 1))
 3575       ;   not(equals(Position1, 2))
 3576       ),
 3577       (   not(equals(Position1, 7))
 3578       ;   not(equals(Position2, 8))
 3579       ),
 3580       (   not(equals(Position1, 6))
 3581       ;   not(equals(Position2, 8))
 3582       ),
 3583       (   not(equals(Position1, 6))
 3584       ;   not(equals(Position2, 7))
 3585       ),
 3586       (   not(equals(Position1, 5))
 3587       ;   not(equals(Position2, 8))
 3588       ),
 3589       (   not(equals(Position1, 5))
 3590       ;   not(equals(Position2, 7))
 3591       ),
 3592       (   not(equals(Position1, 5))
 3593       ;   not(equals(Position2, 6))
 3594       ),
 3595       (   not(equals(Position1, 3))
 3596       ;   not(equals(Position2, 4))
 3597       ),
 3598       (   not(equals(Position1, 2))
 3599       ;   not(equals(Position2, 4))
 3600       ),
 3601       (   not(equals(Position1, 2))
 3602       ;   not(equals(Position2, 3))
 3603       ),
 3604       (   not(equals(Position1, 1))
 3605       ;   not(equals(Position2, 4))
 3606       ),
 3607       (   not(equals(Position1, 1))
 3608       ;   not(equals(Position2, 3))
 3609       ),
 3610       (   not(equals(Position1, 1))
 3611       ;   not(equals(Position2, 2))
 3612       ),
 3613       neighbor(Position1, Position2).
 3614 */
 3615axiom(equals(Position2, 2),
 3616   
 3617    [  (not(equals(Position2, 2));not(equals(Position1, 4))),
 3618       (not(equals(Position2, 3));not(equals(Position1, 4))),
 3619       (not(equals(Position2, 5));not(equals(Position1, 6))),
 3620       (not(equals(Position2, 5));not(equals(Position1, 7))),
 3621       (not(equals(Position2, 5));not(equals(Position1, 8))),
 3622       (not(equals(Position2, 6));not(equals(Position1, 7))),
 3623       (not(equals(Position2, 6));not(equals(Position1, 8))),
 3624       (not(equals(Position2, 7));not(equals(Position1, 8))),
 3625       (not(equals(Position1, 4));not(equals(Position2, 7))),
 3626       (not(equals(Position2, 4));not(equals(Position1, 7))),
 3627       (not(equals(Position2, 1));not(equals(Position1, 4))),
 3628       (not(equals(Position2, 1));not(equals(Position1, 3))),
 3629       (not(equals(Position2, 1));not(equals(Position1, 2))),
 3630       (not(equals(Position1, 7));not(equals(Position2, 8))),
 3631       (not(equals(Position1, 6));not(equals(Position2, 8))),
 3632       (not(equals(Position1, 6));not(equals(Position2, 7))),
 3633       (not(equals(Position1, 5));not(equals(Position2, 8))),
 3634       (not(equals(Position1, 5));not(equals(Position2, 7))),
 3635       (not(equals(Position1, 5));not(equals(Position2, 6))),
 3636       (not(equals(Position1, 3));not(equals(Position2, 4))),
 3637       (not(equals(Position1, 2));not(equals(Position2, 4))),
 3638       (not(equals(Position1, 2));not(equals(Position2, 3))),
 3639       (not(equals(Position1, 1));not(equals(Position2, 4))),
 3640       (not(equals(Position1, 1));not(equals(Position2, 3))),
 3641       (not(equals(Position1, 1));not(equals(Position2, 2))),
 3642      neighbor(Position1, Position2)
 3643    ]).
 3644
 3645 /*  equals(Position1, 3) :-
 3646       ( (   not(equals(Position2, 2))
 3647         ;   not(equals(Position1, 4))
 3648         ),
 3649         (   not(equals(Position2, 3))
 3650         ;   not(equals(Position1, 4))
 3651         ),
 3652         (   not(equals(Position2, 5))
 3653         ;   not(equals(Position1, 6))
 3654         ),
 3655         (   not(equals(Position2, 5))
 3656         ;   not(equals(Position1, 7))
 3657         ),
 3658         (   not(equals(Position2, 5))
 3659         ;   not(equals(Position1, 8))
 3660         ),
 3661         (   not(equals(Position2, 6))
 3662         ;   not(equals(Position1, 7))
 3663         ),
 3664         (   not(equals(Position2, 6))
 3665         ;   not(equals(Position1, 8))
 3666         ),
 3667         (   not(equals(Position2, 7))
 3668         ;   not(equals(Position1, 8))
 3669         ),
 3670         (   not(equals(Position1, 4))
 3671         ;   not(equals(Position2, 7))
 3672         ),
 3673         (   not(equals(Position2, 4))
 3674         ;   not(equals(Position1, 7))
 3675         )
 3676       ),
 3677       (   not(equals(Position2, 1))
 3678       ;   not(equals(Position1, 4))
 3679       ),
 3680       (   not(equals(Position2, 1))
 3681       ;   not(equals(Position1, 3))
 3682       ),
 3683       (   not(equals(Position2, 1))
 3684       ;   not(equals(Position1, 2))
 3685       ),
 3686       (   not(equals(Position1, 7))
 3687       ;   not(equals(Position2, 8))
 3688       ),
 3689       (   not(equals(Position1, 6))
 3690       ;   not(equals(Position2, 8))
 3691       ),
 3692       (   not(equals(Position1, 6))
 3693       ;   not(equals(Position2, 7))
 3694       ),
 3695       (   not(equals(Position1, 5))
 3696       ;   not(equals(Position2, 8))
 3697       ),
 3698       (   not(equals(Position1, 5))
 3699       ;   not(equals(Position2, 7))
 3700       ),
 3701       (   not(equals(Position1, 5))
 3702       ;   not(equals(Position2, 6))
 3703       ),
 3704       (   not(equals(Position1, 3))
 3705       ;   not(equals(Position2, 4))
 3706       ),
 3707       (   not(equals(Position1, 2))
 3708       ;   not(equals(Position2, 4))
 3709       ),
 3710       (   not(equals(Position1, 2))
 3711       ;   not(equals(Position2, 3))
 3712       ),
 3713       (   not(equals(Position1, 1))
 3714       ;   not(equals(Position2, 4))
 3715       ),
 3716       (   not(equals(Position1, 1))
 3717       ;   not(equals(Position2, 3))
 3718       ),
 3719       (   not(equals(Position1, 1))
 3720       ;   not(equals(Position2, 2))
 3721       ),
 3722       neighbor(Position1, Position2).
 3723 */
 3724axiom(equals(Position1, 3),
 3725   
 3726    [  (not(equals(Position2, 2));not(equals(Position1, 4))),
 3727       (not(equals(Position2, 3));not(equals(Position1, 4))),
 3728       (not(equals(Position2, 5));not(equals(Position1, 6))),
 3729       (not(equals(Position2, 5));not(equals(Position1, 7))),
 3730       (not(equals(Position2, 5));not(equals(Position1, 8))),
 3731       (not(equals(Position2, 6));not(equals(Position1, 7))),
 3732       (not(equals(Position2, 6));not(equals(Position1, 8))),
 3733       (not(equals(Position2, 7));not(equals(Position1, 8))),
 3734       (not(equals(Position1, 4));not(equals(Position2, 7))),
 3735       (not(equals(Position2, 4));not(equals(Position1, 7))),
 3736       (not(equals(Position2, 1));not(equals(Position1, 4))),
 3737       (not(equals(Position2, 1));not(equals(Position1, 3))),
 3738       (not(equals(Position2, 1));not(equals(Position1, 2))),
 3739       (not(equals(Position1, 7));not(equals(Position2, 8))),
 3740       (not(equals(Position1, 6));not(equals(Position2, 8))),
 3741       (not(equals(Position1, 6));not(equals(Position2, 7))),
 3742       (not(equals(Position1, 5));not(equals(Position2, 8))),
 3743       (not(equals(Position1, 5));not(equals(Position2, 7))),
 3744       (not(equals(Position1, 5));not(equals(Position2, 6))),
 3745       (not(equals(Position1, 3));not(equals(Position2, 4))),
 3746       (not(equals(Position1, 2));not(equals(Position2, 4))),
 3747       (not(equals(Position1, 2));not(equals(Position2, 3))),
 3748       (not(equals(Position1, 1));not(equals(Position2, 4))),
 3749       (not(equals(Position1, 1));not(equals(Position2, 3))),
 3750       (not(equals(Position1, 1));not(equals(Position2, 2))),
 3751      neighbor(Position1, Position2)
 3752    ]).
 3753
 3754 /*  equals(Position2, 2) :-
 3755       ( (   not(equals(Position2, 3))
 3756         ;   not(equals(Position1, 4))
 3757         ),
 3758         (   not(equals(Position2, 5))
 3759         ;   not(equals(Position1, 6))
 3760         ),
 3761         (   not(equals(Position2, 5))
 3762         ;   not(equals(Position1, 7))
 3763         ),
 3764         (   not(equals(Position2, 5))
 3765         ;   not(equals(Position1, 8))
 3766         ),
 3767         (   not(equals(Position2, 6))
 3768         ;   not(equals(Position1, 7))
 3769         ),
 3770         (   not(equals(Position2, 6))
 3771         ;   not(equals(Position1, 8))
 3772         ),
 3773         (   not(equals(Position2, 7))
 3774         ;   not(equals(Position1, 8))
 3775         ),
 3776         (   not(equals(Position1, 4))
 3777         ;   not(equals(Position2, 7))
 3778         ),
 3779         (   not(equals(Position2, 4))
 3780         ;   not(equals(Position1, 7))
 3781         )
 3782       ),
 3783       (   not(equals(Position2, 2))
 3784       ;   not(equals(Position1, 3))
 3785       ),
 3786       (   not(equals(Position2, 1))
 3787       ;   not(equals(Position1, 4))
 3788       ),
 3789       (   not(equals(Position2, 1))
 3790       ;   not(equals(Position1, 3))
 3791       ),
 3792       (   not(equals(Position2, 1))
 3793       ;   not(equals(Position1, 2))
 3794       ),
 3795       (   not(equals(Position1, 7))
 3796       ;   not(equals(Position2, 8))
 3797       ),
 3798       (   not(equals(Position1, 6))
 3799       ;   not(equals(Position2, 8))
 3800       ),
 3801       (   not(equals(Position1, 6))
 3802       ;   not(equals(Position2, 7))
 3803       ),
 3804       (   not(equals(Position1, 5))
 3805       ;   not(equals(Position2, 8))
 3806       ),
 3807       (   not(equals(Position1, 5))
 3808       ;   not(equals(Position2, 7))
 3809       ),
 3810       (   not(equals(Position1, 5))
 3811       ;   not(equals(Position2, 6))
 3812       ),
 3813       (   not(equals(Position1, 3))
 3814       ;   not(equals(Position2, 4))
 3815       ),
 3816       (   not(equals(Position1, 2))
 3817       ;   not(equals(Position2, 4))
 3818       ),
 3819       (   not(equals(Position1, 2))
 3820       ;   not(equals(Position2, 3))
 3821       ),
 3822       (   not(equals(Position1, 1))
 3823       ;   not(equals(Position2, 4))
 3824       ),
 3825       (   not(equals(Position1, 1))
 3826       ;   not(equals(Position2, 3))
 3827       ),
 3828       (   not(equals(Position1, 1))
 3829       ;   not(equals(Position2, 2))
 3830       ),
 3831       neighbor(Position1, Position2).
 3832 */
 3833axiom(equals(Position2, 2),
 3834   
 3835    [  (not(equals(Position2, 3));not(equals(Position1, 4))),
 3836       (not(equals(Position2, 5));not(equals(Position1, 6))),
 3837       (not(equals(Position2, 5));not(equals(Position1, 7))),
 3838       (not(equals(Position2, 5));not(equals(Position1, 8))),
 3839       (not(equals(Position2, 6));not(equals(Position1, 7))),
 3840       (not(equals(Position2, 6));not(equals(Position1, 8))),
 3841       (not(equals(Position2, 7));not(equals(Position1, 8))),
 3842       (not(equals(Position1, 4));not(equals(Position2, 7))),
 3843       (not(equals(Position2, 4));not(equals(Position1, 7))),
 3844       (not(equals(Position2, 2));not(equals(Position1, 3))),
 3845       (not(equals(Position2, 1));not(equals(Position1, 4))),
 3846       (not(equals(Position2, 1));not(equals(Position1, 3))),
 3847       (not(equals(Position2, 1));not(equals(Position1, 2))),
 3848       (not(equals(Position1, 7));not(equals(Position2, 8))),
 3849       (not(equals(Position1, 6));not(equals(Position2, 8))),
 3850       (not(equals(Position1, 6));not(equals(Position2, 7))),
 3851       (not(equals(Position1, 5));not(equals(Position2, 8))),
 3852       (not(equals(Position1, 5));not(equals(Position2, 7))),
 3853       (not(equals(Position1, 5));not(equals(Position2, 6))),
 3854       (not(equals(Position1, 3));not(equals(Position2, 4))),
 3855       (not(equals(Position1, 2));not(equals(Position2, 4))),
 3856       (not(equals(Position1, 2));not(equals(Position2, 3))),
 3857       (not(equals(Position1, 1));not(equals(Position2, 4))),
 3858       (not(equals(Position1, 1));not(equals(Position2, 3))),
 3859       (not(equals(Position1, 1));not(equals(Position2, 2))),
 3860      neighbor(Position1, Position2)
 3861    ]).
 3862
 3863 /*  equals(Position1, 4) :-
 3864       ( (   not(equals(Position2, 3))
 3865         ;   not(equals(Position1, 4))
 3866         ),
 3867         (   not(equals(Position2, 5))
 3868         ;   not(equals(Position1, 6))
 3869         ),
 3870         (   not(equals(Position2, 5))
 3871         ;   not(equals(Position1, 7))
 3872         ),
 3873         (   not(equals(Position2, 5))
 3874         ;   not(equals(Position1, 8))
 3875         ),
 3876         (   not(equals(Position2, 6))
 3877         ;   not(equals(Position1, 7))
 3878         ),
 3879         (   not(equals(Position2, 6))
 3880         ;   not(equals(Position1, 8))
 3881         ),
 3882         (   not(equals(Position2, 7))
 3883         ;   not(equals(Position1, 8))
 3884         ),
 3885         (   not(equals(Position1, 4))
 3886         ;   not(equals(Position2, 7))
 3887         ),
 3888         (   not(equals(Position2, 4))
 3889         ;   not(equals(Position1, 7))
 3890         )
 3891       ),
 3892       (   not(equals(Position2, 2))
 3893       ;   not(equals(Position1, 3))
 3894       ),
 3895       (   not(equals(Position2, 1))
 3896       ;   not(equals(Position1, 4))
 3897       ),
 3898       (   not(equals(Position2, 1))
 3899       ;   not(equals(Position1, 3))
 3900       ),
 3901       (   not(equals(Position2, 1))
 3902       ;   not(equals(Position1, 2))
 3903       ),
 3904       (   not(equals(Position1, 7))
 3905       ;   not(equals(Position2, 8))
 3906       ),
 3907       (   not(equals(Position1, 6))
 3908       ;   not(equals(Position2, 8))
 3909       ),
 3910       (   not(equals(Position1, 6))
 3911       ;   not(equals(Position2, 7))
 3912       ),
 3913       (   not(equals(Position1, 5))
 3914       ;   not(equals(Position2, 8))
 3915       ),
 3916       (   not(equals(Position1, 5))
 3917       ;   not(equals(Position2, 7))
 3918       ),
 3919       (   not(equals(Position1, 5))
 3920       ;   not(equals(Position2, 6))
 3921       ),
 3922       (   not(equals(Position1, 3))
 3923       ;   not(equals(Position2, 4))
 3924       ),
 3925       (   not(equals(Position1, 2))
 3926       ;   not(equals(Position2, 4))
 3927       ),
 3928       (   not(equals(Position1, 2))
 3929       ;   not(equals(Position2, 3))
 3930       ),
 3931       (   not(equals(Position1, 1))
 3932       ;   not(equals(Position2, 4))
 3933       ),
 3934       (   not(equals(Position1, 1))
 3935       ;   not(equals(Position2, 3))
 3936       ),
 3937       (   not(equals(Position1, 1))
 3938       ;   not(equals(Position2, 2))
 3939       ),
 3940       neighbor(Position1, Position2).
 3941 */
 3942axiom(equals(Position1, 4),
 3943   
 3944    [  (not(equals(Position2, 3));not(equals(Position1, 4))),
 3945       (not(equals(Position2, 5));not(equals(Position1, 6))),
 3946       (not(equals(Position2, 5));not(equals(Position1, 7))),
 3947       (not(equals(Position2, 5));not(equals(Position1, 8))),
 3948       (not(equals(Position2, 6));not(equals(Position1, 7))),
 3949       (not(equals(Position2, 6));not(equals(Position1, 8))),
 3950       (not(equals(Position2, 7));not(equals(Position1, 8))),
 3951       (not(equals(Position1, 4));not(equals(Position2, 7))),
 3952       (not(equals(Position2, 4));not(equals(Position1, 7))),
 3953       (not(equals(Position2, 2));not(equals(Position1, 3))),
 3954       (not(equals(Position2, 1));not(equals(Position1, 4))),
 3955       (not(equals(Position2, 1));not(equals(Position1, 3))),
 3956       (not(equals(Position2, 1));not(equals(Position1, 2))),
 3957       (not(equals(Position1, 7));not(equals(Position2, 8))),
 3958       (not(equals(Position1, 6));not(equals(Position2, 8))),
 3959       (not(equals(Position1, 6));not(equals(Position2, 7))),
 3960       (not(equals(Position1, 5));not(equals(Position2, 8))),
 3961       (not(equals(Position1, 5));not(equals(Position2, 7))),
 3962       (not(equals(Position1, 5));not(equals(Position2, 6))),
 3963       (not(equals(Position1, 3));not(equals(Position2, 4))),
 3964       (not(equals(Position1, 2));not(equals(Position2, 4))),
 3965       (not(equals(Position1, 2));not(equals(Position2, 3))),
 3966       (not(equals(Position1, 1));not(equals(Position2, 4))),
 3967       (not(equals(Position1, 1));not(equals(Position2, 3))),
 3968       (not(equals(Position1, 1));not(equals(Position2, 2))),
 3969      neighbor(Position1, Position2)
 3970    ]).
 3971
 3972 /*  equals(Position2, 3) :-
 3973       ( (   not(equals(Position2, 5))
 3974         ;   not(equals(Position1, 6))
 3975         ),
 3976         (   not(equals(Position2, 5))
 3977         ;   not(equals(Position1, 7))
 3978         ),
 3979         (   not(equals(Position2, 5))
 3980         ;   not(equals(Position1, 8))
 3981         ),
 3982         (   not(equals(Position2, 6))
 3983         ;   not(equals(Position1, 7))
 3984         ),
 3985         (   not(equals(Position2, 6))
 3986         ;   not(equals(Position1, 8))
 3987         ),
 3988         (   not(equals(Position2, 7))
 3989         ;   not(equals(Position1, 8))
 3990         ),
 3991         (   not(equals(Position1, 4))
 3992         ;   not(equals(Position2, 7))
 3993         ),
 3994         (   not(equals(Position2, 4))
 3995         ;   not(equals(Position1, 7))
 3996         )
 3997       ),
 3998       (   not(equals(Position2, 2))
 3999       ;   not(equals(Position1, 4))
 4000       ),
 4001       (   not(equals(Position2, 2))
 4002       ;   not(equals(Position1, 3))
 4003       ),
 4004       (   not(equals(Position2, 1))
 4005       ;   not(equals(Position1, 4))
 4006       ),
 4007       (   not(equals(Position2, 1))
 4008       ;   not(equals(Position1, 3))
 4009       ),
 4010       (   not(equals(Position2, 1))
 4011       ;   not(equals(Position1, 2))
 4012       ),
 4013       (   not(equals(Position1, 7))
 4014       ;   not(equals(Position2, 8))
 4015       ),
 4016       (   not(equals(Position1, 6))
 4017       ;   not(equals(Position2, 8))
 4018       ),
 4019       (   not(equals(Position1, 6))
 4020       ;   not(equals(Position2, 7))
 4021       ),
 4022       (   not(equals(Position1, 5))
 4023       ;   not(equals(Position2, 8))
 4024       ),
 4025       (   not(equals(Position1, 5))
 4026       ;   not(equals(Position2, 7))
 4027       ),
 4028       (   not(equals(Position1, 5))
 4029       ;   not(equals(Position2, 6))
 4030       ),
 4031       (   not(equals(Position1, 3))
 4032       ;   not(equals(Position2, 4))
 4033       ),
 4034       (   not(equals(Position1, 2))
 4035       ;   not(equals(Position2, 4))
 4036       ),
 4037       (   not(equals(Position1, 2))
 4038       ;   not(equals(Position2, 3))
 4039       ),
 4040       (   not(equals(Position1, 1))
 4041       ;   not(equals(Position2, 4))
 4042       ),
 4043       (   not(equals(Position1, 1))
 4044       ;   not(equals(Position2, 3))
 4045       ),
 4046       (   not(equals(Position1, 1))
 4047       ;   not(equals(Position2, 2))
 4048       ),
 4049       neighbor(Position1, Position2).
 4050 */
 4051axiom(equals(Position2, 3),
 4052   
 4053    [  (not(equals(Position2, 5));not(equals(Position1, 6))),
 4054       (not(equals(Position2, 5));not(equals(Position1, 7))),
 4055       (not(equals(Position2, 5));not(equals(Position1, 8))),
 4056       (not(equals(Position2, 6));not(equals(Position1, 7))),
 4057       (not(equals(Position2, 6));not(equals(Position1, 8))),
 4058       (not(equals(Position2, 7));not(equals(Position1, 8))),
 4059       (not(equals(Position1, 4));not(equals(Position2, 7))),
 4060       (not(equals(Position2, 4));not(equals(Position1, 7))),
 4061       (not(equals(Position2, 2));not(equals(Position1, 4))),
 4062       (not(equals(Position2, 2));not(equals(Position1, 3))),
 4063       (not(equals(Position2, 1));not(equals(Position1, 4))),
 4064       (not(equals(Position2, 1));not(equals(Position1, 3))),
 4065       (not(equals(Position2, 1));not(equals(Position1, 2))),
 4066       (not(equals(Position1, 7));not(equals(Position2, 8))),
 4067       (not(equals(Position1, 6));not(equals(Position2, 8))),
 4068       (not(equals(Position1, 6));not(equals(Position2, 7))),
 4069       (not(equals(Position1, 5));not(equals(Position2, 8))),
 4070       (not(equals(Position1, 5));not(equals(Position2, 7))),
 4071       (not(equals(Position1, 5));not(equals(Position2, 6))),
 4072       (not(equals(Position1, 3));not(equals(Position2, 4))),
 4073       (not(equals(Position1, 2));not(equals(Position2, 4))),
 4074       (not(equals(Position1, 2));not(equals(Position2, 3))),
 4075       (not(equals(Position1, 1));not(equals(Position2, 4))),
 4076       (not(equals(Position1, 1));not(equals(Position2, 3))),
 4077       (not(equals(Position1, 1));not(equals(Position2, 2))),
 4078      neighbor(Position1, Position2)
 4079    ]).
 4080
 4081 /*  equals(Position1, 4) :-
 4082       ( (   not(equals(Position2, 5))
 4083         ;   not(equals(Position1, 6))
 4084         ),
 4085         (   not(equals(Position2, 5))
 4086         ;   not(equals(Position1, 7))
 4087         ),
 4088         (   not(equals(Position2, 5))
 4089         ;   not(equals(Position1, 8))
 4090         ),
 4091         (   not(equals(Position2, 6))
 4092         ;   not(equals(Position1, 7))
 4093         ),
 4094         (   not(equals(Position2, 6))
 4095         ;   not(equals(Position1, 8))
 4096         ),
 4097         (   not(equals(Position2, 7))
 4098         ;   not(equals(Position1, 8))
 4099         ),
 4100         (   not(equals(Position1, 4))
 4101         ;   not(equals(Position2, 7))
 4102         ),
 4103         (   not(equals(Position2, 4))
 4104         ;   not(equals(Position1, 7))
 4105         )
 4106       ),
 4107       (   not(equals(Position2, 2))
 4108       ;   not(equals(Position1, 4))
 4109       ),
 4110       (   not(equals(Position2, 2))
 4111       ;   not(equals(Position1, 3))
 4112       ),
 4113       (   not(equals(Position2, 1))
 4114       ;   not(equals(Position1, 4))
 4115       ),
 4116       (   not(equals(Position2, 1))
 4117       ;   not(equals(Position1, 3))
 4118       ),
 4119       (   not(equals(Position2, 1))
 4120       ;   not(equals(Position1, 2))
 4121       ),
 4122       (   not(equals(Position1, 7))
 4123       ;   not(equals(Position2, 8))
 4124       ),
 4125       (   not(equals(Position1, 6))
 4126       ;   not(equals(Position2, 8))
 4127       ),
 4128       (   not(equals(Position1, 6))
 4129       ;   not(equals(Position2, 7))
 4130       ),
 4131       (   not(equals(Position1, 5))
 4132       ;   not(equals(Position2, 8))
 4133       ),
 4134       (   not(equals(Position1, 5))
 4135       ;   not(equals(Position2, 7))
 4136       ),
 4137       (   not(equals(Position1, 5))
 4138       ;   not(equals(Position2, 6))
 4139       ),
 4140       (   not(equals(Position1, 3))
 4141       ;   not(equals(Position2, 4))
 4142       ),
 4143       (   not(equals(Position1, 2))
 4144       ;   not(equals(Position2, 4))
 4145       ),
 4146       (   not(equals(Position1, 2))
 4147       ;   not(equals(Position2, 3))
 4148       ),
 4149       (   not(equals(Position1, 1))
 4150       ;   not(equals(Position2, 4))
 4151       ),
 4152       (   not(equals(Position1, 1))
 4153       ;   not(equals(Position2, 3))
 4154       ),
 4155       (   not(equals(Position1, 1))
 4156       ;   not(equals(Position2, 2))
 4157       ),
 4158       neighbor(Position1, Position2).
 4159 */
 4160axiom(equals(Position1, 4),
 4161   
 4162    [  (not(equals(Position2, 5));not(equals(Position1, 6))),
 4163       (not(equals(Position2, 5));not(equals(Position1, 7))),
 4164       (not(equals(Position2, 5));not(equals(Position1, 8))),
 4165       (not(equals(Position2, 6));not(equals(Position1, 7))),
 4166       (not(equals(Position2, 6));not(equals(Position1, 8))),
 4167       (not(equals(Position2, 7));not(equals(Position1, 8))),
 4168       (not(equals(Position1, 4));not(equals(Position2, 7))),
 4169       (not(equals(Position2, 4));not(equals(Position1, 7))),
 4170       (not(equals(Position2, 2));not(equals(Position1, 4))),
 4171       (not(equals(Position2, 2));not(equals(Position1, 3))),
 4172       (not(equals(Position2, 1));not(equals(Position1, 4))),
 4173       (not(equals(Position2, 1));not(equals(Position1, 3))),
 4174       (not(equals(Position2, 1));not(equals(Position1, 2))),
 4175       (not(equals(Position1, 7));not(equals(Position2, 8))),
 4176       (not(equals(Position1, 6));not(equals(Position2, 8))),
 4177       (not(equals(Position1, 6));not(equals(Position2, 7))),
 4178       (not(equals(Position1, 5));not(equals(Position2, 8))),
 4179       (not(equals(Position1, 5));not(equals(Position2, 7))),
 4180       (not(equals(Position1, 5));not(equals(Position2, 6))),
 4181       (not(equals(Position1, 3));not(equals(Position2, 4))),
 4182       (not(equals(Position1, 2));not(equals(Position2, 4))),
 4183       (not(equals(Position1, 2));not(equals(Position2, 3))),
 4184       (not(equals(Position1, 1));not(equals(Position2, 4))),
 4185       (not(equals(Position1, 1));not(equals(Position2, 3))),
 4186       (not(equals(Position1, 1));not(equals(Position2, 2))),
 4187      neighbor(Position1, Position2)
 4188    ]).
 4189
 4190 /*  equals(Position2, 5) :-
 4191       ( (   not(equals(Position2, 5))
 4192         ;   not(equals(Position1, 7))
 4193         ),
 4194         (   not(equals(Position2, 5))
 4195         ;   not(equals(Position1, 8))
 4196         ),
 4197         (   not(equals(Position2, 6))
 4198         ;   not(equals(Position1, 7))
 4199         ),
 4200         (   not(equals(Position2, 6))
 4201         ;   not(equals(Position1, 8))
 4202         ),
 4203         (   not(equals(Position2, 7))
 4204         ;   not(equals(Position1, 8))
 4205         ),
 4206         (   not(equals(Position1, 4))
 4207         ;   not(equals(Position2, 7))
 4208         ),
 4209         (   not(equals(Position2, 4))
 4210         ;   not(equals(Position1, 7))
 4211         )
 4212       ),
 4213       (   not(equals(Position2, 3))
 4214       ;   not(equals(Position1, 4))
 4215       ),
 4216       (   not(equals(Position2, 2))
 4217       ;   not(equals(Position1, 4))
 4218       ),
 4219       (   not(equals(Position2, 2))
 4220       ;   not(equals(Position1, 3))
 4221       ),
 4222       (   not(equals(Position2, 1))
 4223       ;   not(equals(Position1, 4))
 4224       ),
 4225       (   not(equals(Position2, 1))
 4226       ;   not(equals(Position1, 3))
 4227       ),
 4228       (   not(equals(Position2, 1))
 4229       ;   not(equals(Position1, 2))
 4230       ),
 4231       (   not(equals(Position1, 7))
 4232       ;   not(equals(Position2, 8))
 4233       ),
 4234       (   not(equals(Position1, 6))
 4235       ;   not(equals(Position2, 8))
 4236       ),
 4237       (   not(equals(Position1, 6))
 4238       ;   not(equals(Position2, 7))
 4239       ),
 4240       (   not(equals(Position1, 5))
 4241       ;   not(equals(Position2, 8))
 4242       ),
 4243       (   not(equals(Position1, 5))
 4244       ;   not(equals(Position2, 7))
 4245       ),
 4246       (   not(equals(Position1, 5))
 4247       ;   not(equals(Position2, 6))
 4248       ),
 4249       (   not(equals(Position1, 3))
 4250       ;   not(equals(Position2, 4))
 4251       ),
 4252       (   not(equals(Position1, 2))
 4253       ;   not(equals(Position2, 4))
 4254       ),
 4255       (   not(equals(Position1, 2))
 4256       ;   not(equals(Position2, 3))
 4257       ),
 4258       (   not(equals(Position1, 1))
 4259       ;   not(equals(Position2, 4))
 4260       ),
 4261       (   not(equals(Position1, 1))
 4262       ;   not(equals(Position2, 3))
 4263       ),
 4264       (   not(equals(Position1, 1))
 4265       ;   not(equals(Position2, 2))
 4266       ),
 4267       neighbor(Position1, Position2).
 4268 */
 4269axiom(equals(Position2, 5),
 4270   
 4271    [  (not(equals(Position2, 5));not(equals(Position1, 7))),
 4272       (not(equals(Position2, 5));not(equals(Position1, 8))),
 4273       (not(equals(Position2, 6));not(equals(Position1, 7))),
 4274       (not(equals(Position2, 6));not(equals(Position1, 8))),
 4275       (not(equals(Position2, 7));not(equals(Position1, 8))),
 4276       (not(equals(Position1, 4));not(equals(Position2, 7))),
 4277       (not(equals(Position2, 4));not(equals(Position1, 7))),
 4278       (not(equals(Position2, 3));not(equals(Position1, 4))),
 4279       (not(equals(Position2, 2));not(equals(Position1, 4))),
 4280       (not(equals(Position2, 2));not(equals(Position1, 3))),
 4281       (not(equals(Position2, 1));not(equals(Position1, 4))),
 4282       (not(equals(Position2, 1));not(equals(Position1, 3))),
 4283       (not(equals(Position2, 1));not(equals(Position1, 2))),
 4284       (not(equals(Position1, 7));not(equals(Position2, 8))),
 4285       (not(equals(Position1, 6));not(equals(Position2, 8))),
 4286       (not(equals(Position1, 6));not(equals(Position2, 7))),
 4287       (not(equals(Position1, 5));not(equals(Position2, 8))),
 4288       (not(equals(Position1, 5));not(equals(Position2, 7))),
 4289       (not(equals(Position1, 5));not(equals(Position2, 6))),
 4290       (not(equals(Position1, 3));not(equals(Position2, 4))),
 4291       (not(equals(Position1, 2));not(equals(Position2, 4))),
 4292       (not(equals(Position1, 2));not(equals(Position2, 3))),
 4293       (not(equals(Position1, 1));not(equals(Position2, 4))),
 4294       (not(equals(Position1, 1));not(equals(Position2, 3))),
 4295       (not(equals(Position1, 1));not(equals(Position2, 2))),
 4296      neighbor(Position1, Position2)
 4297    ]).
 4298
 4299 /*  equals(Position1, 6) :-
 4300       ( (   not(equals(Position2, 5))
 4301         ;   not(equals(Position1, 7))
 4302         ),
 4303         (   not(equals(Position2, 5))
 4304         ;   not(equals(Position1, 8))
 4305         ),
 4306         (   not(equals(Position2, 6))
 4307         ;   not(equals(Position1, 7))
 4308         ),
 4309         (   not(equals(Position2, 6))
 4310         ;   not(equals(Position1, 8))
 4311         ),
 4312         (   not(equals(Position2, 7))
 4313         ;   not(equals(Position1, 8))
 4314         ),
 4315         (   not(equals(Position1, 4))
 4316         ;   not(equals(Position2, 7))
 4317         ),
 4318         (   not(equals(Position2, 4))
 4319         ;   not(equals(Position1, 7))
 4320         )
 4321       ),
 4322       (   not(equals(Position2, 3))
 4323       ;   not(equals(Position1, 4))
 4324       ),
 4325       (   not(equals(Position2, 2))
 4326       ;   not(equals(Position1, 4))
 4327       ),
 4328       (   not(equals(Position2, 2))
 4329       ;   not(equals(Position1, 3))
 4330       ),
 4331       (   not(equals(Position2, 1))
 4332       ;   not(equals(Position1, 4))
 4333       ),
 4334       (   not(equals(Position2, 1))
 4335       ;   not(equals(Position1, 3))
 4336       ),
 4337       (   not(equals(Position2, 1))
 4338       ;   not(equals(Position1, 2))
 4339       ),
 4340       (   not(equals(Position1, 7))
 4341       ;   not(equals(Position2, 8))
 4342       ),
 4343       (   not(equals(Position1, 6))
 4344       ;   not(equals(Position2, 8))
 4345       ),
 4346       (   not(equals(Position1, 6))
 4347       ;   not(equals(Position2, 7))
 4348       ),
 4349       (   not(equals(Position1, 5))
 4350       ;   not(equals(Position2, 8))
 4351       ),
 4352       (   not(equals(Position1, 5))
 4353       ;   not(equals(Position2, 7))
 4354       ),
 4355       (   not(equals(Position1, 5))
 4356       ;   not(equals(Position2, 6))
 4357       ),
 4358       (   not(equals(Position1, 3))
 4359       ;   not(equals(Position2, 4))
 4360       ),
 4361       (   not(equals(Position1, 2))
 4362       ;   not(equals(Position2, 4))
 4363       ),
 4364       (   not(equals(Position1, 2))
 4365       ;   not(equals(Position2, 3))
 4366       ),
 4367       (   not(equals(Position1, 1))
 4368       ;   not(equals(Position2, 4))
 4369       ),
 4370       (   not(equals(Position1, 1))
 4371       ;   not(equals(Position2, 3))
 4372       ),
 4373       (   not(equals(Position1, 1))
 4374       ;   not(equals(Position2, 2))
 4375       ),
 4376       neighbor(Position1, Position2).
 4377 */
 4378axiom(equals(Position1, 6),
 4379   
 4380    [  (not(equals(Position2, 5));not(equals(Position1, 7))),
 4381       (not(equals(Position2, 5));not(equals(Position1, 8))),
 4382       (not(equals(Position2, 6));not(equals(Position1, 7))),
 4383       (not(equals(Position2, 6));not(equals(Position1, 8))),
 4384       (not(equals(Position2, 7));not(equals(Position1, 8))),
 4385       (not(equals(Position1, 4));not(equals(Position2, 7))),
 4386       (not(equals(Position2, 4));not(equals(Position1, 7))),
 4387       (not(equals(Position2, 3));not(equals(Position1, 4))),
 4388       (not(equals(Position2, 2));not(equals(Position1, 4))),
 4389       (not(equals(Position2, 2));not(equals(Position1, 3))),
 4390       (not(equals(Position2, 1));not(equals(Position1, 4))),
 4391       (not(equals(Position2, 1));not(equals(Position1, 3))),
 4392       (not(equals(Position2, 1));not(equals(Position1, 2))),
 4393       (not(equals(Position1, 7));not(equals(Position2, 8))),
 4394       (not(equals(Position1, 6));not(equals(Position2, 8))),
 4395       (not(equals(Position1, 6));not(equals(Position2, 7))),
 4396       (not(equals(Position1, 5));not(equals(Position2, 8))),
 4397       (not(equals(Position1, 5));not(equals(Position2, 7))),
 4398       (not(equals(Position1, 5));not(equals(Position2, 6))),
 4399       (not(equals(Position1, 3));not(equals(Position2, 4))),
 4400       (not(equals(Position1, 2));not(equals(Position2, 4))),
 4401       (not(equals(Position1, 2));not(equals(Position2, 3))),
 4402       (not(equals(Position1, 1));not(equals(Position2, 4))),
 4403       (not(equals(Position1, 1));not(equals(Position2, 3))),
 4404       (not(equals(Position1, 1));not(equals(Position2, 2))),
 4405      neighbor(Position1, Position2)
 4406    ]).
 4407
 4408 /*  equals(Position2, 5) :-
 4409       ( (   not(equals(Position2, 5))
 4410         ;   not(equals(Position1, 8))
 4411         ),
 4412         (   not(equals(Position2, 6))
 4413         ;   not(equals(Position1, 7))
 4414         ),
 4415         (   not(equals(Position2, 6))
 4416         ;   not(equals(Position1, 8))
 4417         ),
 4418         (   not(equals(Position2, 7))
 4419         ;   not(equals(Position1, 8))
 4420         ),
 4421         (   not(equals(Position1, 4))
 4422         ;   not(equals(Position2, 7))
 4423         ),
 4424         (   not(equals(Position2, 4))
 4425         ;   not(equals(Position1, 7))
 4426         )
 4427       ),
 4428       (   not(equals(Position2, 5))
 4429       ;   not(equals(Position1, 6))
 4430       ),
 4431       (   not(equals(Position2, 3))
 4432       ;   not(equals(Position1, 4))
 4433       ),
 4434       (   not(equals(Position2, 2))
 4435       ;   not(equals(Position1, 4))
 4436       ),
 4437       (   not(equals(Position2, 2))
 4438       ;   not(equals(Position1, 3))
 4439       ),
 4440       (   not(equals(Position2, 1))
 4441       ;   not(equals(Position1, 4))
 4442       ),
 4443       (   not(equals(Position2, 1))
 4444       ;   not(equals(Position1, 3))
 4445       ),
 4446       (   not(equals(Position2, 1))
 4447       ;   not(equals(Position1, 2))
 4448       ),
 4449       (   not(equals(Position1, 7))
 4450       ;   not(equals(Position2, 8))
 4451       ),
 4452       (   not(equals(Position1, 6))
 4453       ;   not(equals(Position2, 8))
 4454       ),
 4455       (   not(equals(Position1, 6))
 4456       ;   not(equals(Position2, 7))
 4457       ),
 4458       (   not(equals(Position1, 5))
 4459       ;   not(equals(Position2, 8))
 4460       ),
 4461       (   not(equals(Position1, 5))
 4462       ;   not(equals(Position2, 7))
 4463       ),
 4464       (   not(equals(Position1, 5))
 4465       ;   not(equals(Position2, 6))
 4466       ),
 4467       (   not(equals(Position1, 3))
 4468       ;   not(equals(Position2, 4))
 4469       ),
 4470       (   not(equals(Position1, 2))
 4471       ;   not(equals(Position2, 4))
 4472       ),
 4473       (   not(equals(Position1, 2))
 4474       ;   not(equals(Position2, 3))
 4475       ),
 4476       (   not(equals(Position1, 1))
 4477       ;   not(equals(Position2, 4))
 4478       ),
 4479       (   not(equals(Position1, 1))
 4480       ;   not(equals(Position2, 3))
 4481       ),
 4482       (   not(equals(Position1, 1))
 4483       ;   not(equals(Position2, 2))
 4484       ),
 4485       neighbor(Position1, Position2).
 4486 */
 4487axiom(equals(Position2, 5),
 4488   
 4489    [  (not(equals(Position2, 5));not(equals(Position1, 8))),
 4490       (not(equals(Position2, 6));not(equals(Position1, 7))),
 4491       (not(equals(Position2, 6));not(equals(Position1, 8))),
 4492       (not(equals(Position2, 7));not(equals(Position1, 8))),
 4493       (not(equals(Position1, 4));not(equals(Position2, 7))),
 4494       (not(equals(Position2, 4));not(equals(Position1, 7))),
 4495       (not(equals(Position2, 5));not(equals(Position1, 6))),
 4496       (not(equals(Position2, 3));not(equals(Position1, 4))),
 4497       (not(equals(Position2, 2));not(equals(Position1, 4))),
 4498       (not(equals(Position2, 2));not(equals(Position1, 3))),
 4499       (not(equals(Position2, 1));not(equals(Position1, 4))),
 4500       (not(equals(Position2, 1));not(equals(Position1, 3))),
 4501       (not(equals(Position2, 1));not(equals(Position1, 2))),
 4502       (not(equals(Position1, 7));not(equals(Position2, 8))),
 4503       (not(equals(Position1, 6));not(equals(Position2, 8))),
 4504       (not(equals(Position1, 6));not(equals(Position2, 7))),
 4505       (not(equals(Position1, 5));not(equals(Position2, 8))),
 4506       (not(equals(Position1, 5));not(equals(Position2, 7))),
 4507       (not(equals(Position1, 5));not(equals(Position2, 6))),
 4508       (not(equals(Position1, 3));not(equals(Position2, 4))),
 4509       (not(equals(Position1, 2));not(equals(Position2, 4))),
 4510       (not(equals(Position1, 2));not(equals(Position2, 3))),
 4511       (not(equals(Position1, 1));not(equals(Position2, 4))),
 4512       (not(equals(Position1, 1));not(equals(Position2, 3))),
 4513       (not(equals(Position1, 1));not(equals(Position2, 2))),
 4514      neighbor(Position1, Position2)
 4515    ]).
 4516
 4517 /*  equals(Position1, 7) :-
 4518       ( (   not(equals(Position2, 5))
 4519         ;   not(equals(Position1, 8))
 4520         ),
 4521         (   not(equals(Position2, 6))
 4522         ;   not(equals(Position1, 7))
 4523         ),
 4524         (   not(equals(Position2, 6))
 4525         ;   not(equals(Position1, 8))
 4526         ),
 4527         (   not(equals(Position2, 7))
 4528         ;   not(equals(Position1, 8))
 4529         ),
 4530         (   not(equals(Position1, 4))
 4531         ;   not(equals(Position2, 7))
 4532         ),
 4533         (   not(equals(Position2, 4))
 4534         ;   not(equals(Position1, 7))
 4535         )
 4536       ),
 4537       (   not(equals(Position2, 5))
 4538       ;   not(equals(Position1, 6))
 4539       ),
 4540       (   not(equals(Position2, 3))
 4541       ;   not(equals(Position1, 4))
 4542       ),
 4543       (   not(equals(Position2, 2))
 4544       ;   not(equals(Position1, 4))
 4545       ),
 4546       (   not(equals(Position2, 2))
 4547       ;   not(equals(Position1, 3))
 4548       ),
 4549       (   not(equals(Position2, 1))
 4550       ;   not(equals(Position1, 4))
 4551       ),
 4552       (   not(equals(Position2, 1))
 4553       ;   not(equals(Position1, 3))
 4554       ),
 4555       (   not(equals(Position2, 1))
 4556       ;   not(equals(Position1, 2))
 4557       ),
 4558       (   not(equals(Position1, 7))
 4559       ;   not(equals(Position2, 8))
 4560       ),
 4561       (   not(equals(Position1, 6))
 4562       ;   not(equals(Position2, 8))
 4563       ),
 4564       (   not(equals(Position1, 6))
 4565       ;   not(equals(Position2, 7))
 4566       ),
 4567       (   not(equals(Position1, 5))
 4568       ;   not(equals(Position2, 8))
 4569       ),
 4570       (   not(equals(Position1, 5))
 4571       ;   not(equals(Position2, 7))
 4572       ),
 4573       (   not(equals(Position1, 5))
 4574       ;   not(equals(Position2, 6))
 4575       ),
 4576       (   not(equals(Position1, 3))
 4577       ;   not(equals(Position2, 4))
 4578       ),
 4579       (   not(equals(Position1, 2))
 4580       ;   not(equals(Position2, 4))
 4581       ),
 4582       (   not(equals(Position1, 2))
 4583       ;   not(equals(Position2, 3))
 4584       ),
 4585       (   not(equals(Position1, 1))
 4586       ;   not(equals(Position2, 4))
 4587       ),
 4588       (   not(equals(Position1, 1))
 4589       ;   not(equals(Position2, 3))
 4590       ),
 4591       (   not(equals(Position1, 1))
 4592       ;   not(equals(Position2, 2))
 4593       ),
 4594       neighbor(Position1, Position2).
 4595 */
 4596axiom(equals(Position1, 7),
 4597   
 4598    [  (not(equals(Position2, 5));not(equals(Position1, 8))),
 4599       (not(equals(Position2, 6));not(equals(Position1, 7))),
 4600       (not(equals(Position2, 6));not(equals(Position1, 8))),
 4601       (not(equals(Position2, 7));not(equals(Position1, 8))),
 4602       (not(equals(Position1, 4));not(equals(Position2, 7))),
 4603       (not(equals(Position2, 4));not(equals(Position1, 7))),
 4604       (not(equals(Position2, 5));not(equals(Position1, 6))),
 4605       (not(equals(Position2, 3));not(equals(Position1, 4))),
 4606       (not(equals(Position2, 2));not(equals(Position1, 4))),
 4607       (not(equals(Position2, 2));not(equals(Position1, 3))),
 4608       (not(equals(Position2, 1));not(equals(Position1, 4))),
 4609       (not(equals(Position2, 1));not(equals(Position1, 3))),
 4610       (not(equals(Position2, 1));not(equals(Position1, 2))),
 4611       (not(equals(Position1, 7));not(equals(Position2, 8))),
 4612       (not(equals(Position1, 6));not(equals(Position2, 8))),
 4613       (not(equals(Position1, 6));not(equals(Position2, 7))),
 4614       (not(equals(Position1, 5));not(equals(Position2, 8))),
 4615       (not(equals(Position1, 5));not(equals(Position2, 7))),
 4616       (not(equals(Position1, 5));not(equals(Position2, 6))),
 4617       (not(equals(Position1, 3));not(equals(Position2, 4))),
 4618       (not(equals(Position1, 2));not(equals(Position2, 4))),
 4619       (not(equals(Position1, 2));not(equals(Position2, 3))),
 4620       (not(equals(Position1, 1));not(equals(Position2, 4))),
 4621       (not(equals(Position1, 1));not(equals(Position2, 3))),
 4622       (not(equals(Position1, 1));not(equals(Position2, 2))),
 4623      neighbor(Position1, Position2)
 4624    ]).
 4625
 4626 /*  equals(Position2, 5) :-
 4627       ( (   not(equals(Position2, 6))
 4628         ;   not(equals(Position1, 7))
 4629         ),
 4630         (   not(equals(Position2, 6))
 4631         ;   not(equals(Position1, 8))
 4632         ),
 4633         (   not(equals(Position2, 7))
 4634         ;   not(equals(Position1, 8))
 4635         ),
 4636         (   not(equals(Position1, 4))
 4637         ;   not(equals(Position2, 7))
 4638         ),
 4639         (   not(equals(Position2, 4))
 4640         ;   not(equals(Position1, 7))
 4641         )
 4642       ),
 4643       (   not(equals(Position2, 5))
 4644       ;   not(equals(Position1, 7))
 4645       ),
 4646       (   not(equals(Position2, 5))
 4647       ;   not(equals(Position1, 6))
 4648       ),
 4649       (   not(equals(Position2, 3))
 4650       ;   not(equals(Position1, 4))
 4651       ),
 4652       (   not(equals(Position2, 2))
 4653       ;   not(equals(Position1, 4))
 4654       ),
 4655       (   not(equals(Position2, 2))
 4656       ;   not(equals(Position1, 3))
 4657       ),
 4658       (   not(equals(Position2, 1))
 4659       ;   not(equals(Position1, 4))
 4660       ),
 4661       (   not(equals(Position2, 1))
 4662       ;   not(equals(Position1, 3))
 4663       ),
 4664       (   not(equals(Position2, 1))
 4665       ;   not(equals(Position1, 2))
 4666       ),
 4667       (   not(equals(Position1, 7))
 4668       ;   not(equals(Position2, 8))
 4669       ),
 4670       (   not(equals(Position1, 6))
 4671       ;   not(equals(Position2, 8))
 4672       ),
 4673       (   not(equals(Position1, 6))
 4674       ;   not(equals(Position2, 7))
 4675       ),
 4676       (   not(equals(Position1, 5))
 4677       ;   not(equals(Position2, 8))
 4678       ),
 4679       (   not(equals(Position1, 5))
 4680       ;   not(equals(Position2, 7))
 4681       ),
 4682       (   not(equals(Position1, 5))
 4683       ;   not(equals(Position2, 6))
 4684       ),
 4685       (   not(equals(Position1, 3))
 4686       ;   not(equals(Position2, 4))
 4687       ),
 4688       (   not(equals(Position1, 2))
 4689       ;   not(equals(Position2, 4))
 4690       ),
 4691       (   not(equals(Position1, 2))
 4692       ;   not(equals(Position2, 3))
 4693       ),
 4694       (   not(equals(Position1, 1))
 4695       ;   not(equals(Position2, 4))
 4696       ),
 4697       (   not(equals(Position1, 1))
 4698       ;   not(equals(Position2, 3))
 4699       ),
 4700       (   not(equals(Position1, 1))
 4701       ;   not(equals(Position2, 2))
 4702       ),
 4703       neighbor(Position1, Position2).
 4704 */
 4705axiom(equals(Position2, 5),
 4706   
 4707    [  (not(equals(Position2, 6));not(equals(Position1, 7))),
 4708       (not(equals(Position2, 6));not(equals(Position1, 8))),
 4709       (not(equals(Position2, 7));not(equals(Position1, 8))),
 4710       (not(equals(Position1, 4));not(equals(Position2, 7))),
 4711       (not(equals(Position2, 4));not(equals(Position1, 7))),
 4712       (not(equals(Position2, 5));not(equals(Position1, 7))),
 4713       (not(equals(Position2, 5));not(equals(Position1, 6))),
 4714       (not(equals(Position2, 3));not(equals(Position1, 4))),
 4715       (not(equals(Position2, 2));not(equals(Position1, 4))),
 4716       (not(equals(Position2, 2));not(equals(Position1, 3))),
 4717       (not(equals(Position2, 1));not(equals(Position1, 4))),
 4718       (not(equals(Position2, 1));not(equals(Position1, 3))),
 4719       (not(equals(Position2, 1));not(equals(Position1, 2))),
 4720       (not(equals(Position1, 7));not(equals(Position2, 8))),
 4721       (not(equals(Position1, 6));not(equals(Position2, 8))),
 4722       (not(equals(Position1, 6));not(equals(Position2, 7))),
 4723       (not(equals(Position1, 5));not(equals(Position2, 8))),
 4724       (not(equals(Position1, 5));not(equals(Position2, 7))),
 4725       (not(equals(Position1, 5));not(equals(Position2, 6))),
 4726       (not(equals(Position1, 3));not(equals(Position2, 4))),
 4727       (not(equals(Position1, 2));not(equals(Position2, 4))),
 4728       (not(equals(Position1, 2));not(equals(Position2, 3))),
 4729       (not(equals(Position1, 1));not(equals(Position2, 4))),
 4730       (not(equals(Position1, 1));not(equals(Position2, 3))),
 4731       (not(equals(Position1, 1));not(equals(Position2, 2))),
 4732      neighbor(Position1, Position2)
 4733    ]).
 4734
 4735 /*  equals(Position1, 8) :-
 4736       ( (   not(equals(Position2, 6))
 4737         ;   not(equals(Position1, 7))
 4738         ),
 4739         (   not(equals(Position2, 6))
 4740         ;   not(equals(Position1, 8))
 4741         ),
 4742         (   not(equals(Position2, 7))
 4743         ;   not(equals(Position1, 8))
 4744         ),
 4745         (   not(equals(Position1, 4))
 4746         ;   not(equals(Position2, 7))
 4747         ),
 4748         (   not(equals(Position2, 4))
 4749         ;   not(equals(Position1, 7))
 4750         )
 4751       ),
 4752       (   not(equals(Position2, 5))
 4753       ;   not(equals(Position1, 7))
 4754       ),
 4755       (   not(equals(Position2, 5))
 4756       ;   not(equals(Position1, 6))
 4757       ),
 4758       (   not(equals(Position2, 3))
 4759       ;   not(equals(Position1, 4))
 4760       ),
 4761       (   not(equals(Position2, 2))
 4762       ;   not(equals(Position1, 4))
 4763       ),
 4764       (   not(equals(Position2, 2))
 4765       ;   not(equals(Position1, 3))
 4766       ),
 4767       (   not(equals(Position2, 1))
 4768       ;   not(equals(Position1, 4))
 4769       ),
 4770       (   not(equals(Position2, 1))
 4771       ;   not(equals(Position1, 3))
 4772       ),
 4773       (   not(equals(Position2, 1))
 4774       ;   not(equals(Position1, 2))
 4775       ),
 4776       (   not(equals(Position1, 7))
 4777       ;   not(equals(Position2, 8))
 4778       ),
 4779       (   not(equals(Position1, 6))
 4780       ;   not(equals(Position2, 8))
 4781       ),
 4782       (   not(equals(Position1, 6))
 4783       ;   not(equals(Position2, 7))
 4784       ),
 4785       (   not(equals(Position1, 5))
 4786       ;   not(equals(Position2, 8))
 4787       ),
 4788       (   not(equals(Position1, 5))
 4789       ;   not(equals(Position2, 7))
 4790       ),
 4791       (   not(equals(Position1, 5))
 4792       ;   not(equals(Position2, 6))
 4793       ),
 4794       (   not(equals(Position1, 3))
 4795       ;   not(equals(Position2, 4))
 4796       ),
 4797       (   not(equals(Position1, 2))
 4798       ;   not(equals(Position2, 4))
 4799       ),
 4800       (   not(equals(Position1, 2))
 4801       ;   not(equals(Position2, 3))
 4802       ),
 4803       (   not(equals(Position1, 1))
 4804       ;   not(equals(Position2, 4))
 4805       ),
 4806       (   not(equals(Position1, 1))
 4807       ;   not(equals(Position2, 3))
 4808       ),
 4809       (   not(equals(Position1, 1))
 4810       ;   not(equals(Position2, 2))
 4811       ),
 4812       neighbor(Position1, Position2).
 4813 */
 4814axiom(equals(Position1, 8),
 4815   
 4816    [  (not(equals(Position2, 6));not(equals(Position1, 7))),
 4817       (not(equals(Position2, 6));not(equals(Position1, 8))),
 4818       (not(equals(Position2, 7));not(equals(Position1, 8))),
 4819       (not(equals(Position1, 4));not(equals(Position2, 7))),
 4820       (not(equals(Position2, 4));not(equals(Position1, 7))),
 4821       (not(equals(Position2, 5));not(equals(Position1, 7))),
 4822       (not(equals(Position2, 5));not(equals(Position1, 6))),
 4823       (not(equals(Position2, 3));not(equals(Position1, 4))),
 4824       (not(equals(Position2, 2));not(equals(Position1, 4))),
 4825       (not(equals(Position2, 2));not(equals(Position1, 3))),
 4826       (not(equals(Position2, 1));not(equals(Position1, 4))),
 4827       (not(equals(Position2, 1));not(equals(Position1, 3))),
 4828       (not(equals(Position2, 1));not(equals(Position1, 2))),
 4829       (not(equals(Position1, 7));not(equals(Position2, 8))),
 4830       (not(equals(Position1, 6));not(equals(Position2, 8))),
 4831       (not(equals(Position1, 6));not(equals(Position2, 7))),
 4832       (not(equals(Position1, 5));not(equals(Position2, 8))),
 4833       (not(equals(Position1, 5));not(equals(Position2, 7))),
 4834       (not(equals(Position1, 5));not(equals(Position2, 6))),
 4835       (not(equals(Position1, 3));not(equals(Position2, 4))),
 4836       (not(equals(Position1, 2));not(equals(Position2, 4))),
 4837       (not(equals(Position1, 2));not(equals(Position2, 3))),
 4838       (not(equals(Position1, 1));not(equals(Position2, 4))),
 4839       (not(equals(Position1, 1));not(equals(Position2, 3))),
 4840       (not(equals(Position1, 1));not(equals(Position2, 2))),
 4841      neighbor(Position1, Position2)
 4842    ]).
 4843
 4844 /*  equals(Position2, 6) :-
 4845       ( (   not(equals(Position2, 6))
 4846         ;   not(equals(Position1, 8))
 4847         ),
 4848         (   not(equals(Position2, 7))
 4849         ;   not(equals(Position1, 8))
 4850         ),
 4851         (   not(equals(Position1, 4))
 4852         ;   not(equals(Position2, 7))
 4853         ),
 4854         (   not(equals(Position2, 4))
 4855         ;   not(equals(Position1, 7))
 4856         )
 4857       ),
 4858       (   not(equals(Position2, 5))
 4859       ;   not(equals(Position1, 8))
 4860       ),
 4861       (   not(equals(Position2, 5))
 4862       ;   not(equals(Position1, 7))
 4863       ),
 4864       (   not(equals(Position2, 5))
 4865       ;   not(equals(Position1, 6))
 4866       ),
 4867       (   not(equals(Position2, 3))
 4868       ;   not(equals(Position1, 4))
 4869       ),
 4870       (   not(equals(Position2, 2))
 4871       ;   not(equals(Position1, 4))
 4872       ),
 4873       (   not(equals(Position2, 2))
 4874       ;   not(equals(Position1, 3))
 4875       ),
 4876       (   not(equals(Position2, 1))
 4877       ;   not(equals(Position1, 4))
 4878       ),
 4879       (   not(equals(Position2, 1))
 4880       ;   not(equals(Position1, 3))
 4881       ),
 4882       (   not(equals(Position2, 1))
 4883       ;   not(equals(Position1, 2))
 4884       ),
 4885       (   not(equals(Position1, 7))
 4886       ;   not(equals(Position2, 8))
 4887       ),
 4888       (   not(equals(Position1, 6))
 4889       ;   not(equals(Position2, 8))
 4890       ),
 4891       (   not(equals(Position1, 6))
 4892       ;   not(equals(Position2, 7))
 4893       ),
 4894       (   not(equals(Position1, 5))
 4895       ;   not(equals(Position2, 8))
 4896       ),
 4897       (   not(equals(Position1, 5))
 4898       ;   not(equals(Position2, 7))
 4899       ),
 4900       (   not(equals(Position1, 5))
 4901       ;   not(equals(Position2, 6))
 4902       ),
 4903       (   not(equals(Position1, 3))
 4904       ;   not(equals(Position2, 4))
 4905       ),
 4906       (   not(equals(Position1, 2))
 4907       ;   not(equals(Position2, 4))
 4908       ),
 4909       (   not(equals(Position1, 2))
 4910       ;   not(equals(Position2, 3))
 4911       ),
 4912       (   not(equals(Position1, 1))
 4913       ;   not(equals(Position2, 4))
 4914       ),
 4915       (   not(equals(Position1, 1))
 4916       ;   not(equals(Position2, 3))
 4917       ),
 4918       (   not(equals(Position1, 1))
 4919       ;   not(equals(Position2, 2))
 4920       ),
 4921       neighbor(Position1, Position2).
 4922 */
 4923axiom(equals(Position2, 6),
 4924   
 4925    [  (not(equals(Position2, 6));not(equals(Position1, 8))),
 4926       (not(equals(Position2, 7));not(equals(Position1, 8))),
 4927       (not(equals(Position1, 4));not(equals(Position2, 7))),
 4928       (not(equals(Position2, 4));not(equals(Position1, 7))),
 4929       (not(equals(Position2, 5));not(equals(Position1, 8))),
 4930       (not(equals(Position2, 5));not(equals(Position1, 7))),
 4931       (not(equals(Position2, 5));not(equals(Position1, 6))),
 4932       (not(equals(Position2, 3));not(equals(Position1, 4))),
 4933       (not(equals(Position2, 2));not(equals(Position1, 4))),
 4934       (not(equals(Position2, 2));not(equals(Position1, 3))),
 4935       (not(equals(Position2, 1));not(equals(Position1, 4))),
 4936       (not(equals(Position2, 1));not(equals(Position1, 3))),
 4937       (not(equals(Position2, 1));not(equals(Position1, 2))),
 4938       (not(equals(Position1, 7));not(equals(Position2, 8))),
 4939       (not(equals(Position1, 6));not(equals(Position2, 8))),
 4940       (not(equals(Position1, 6));not(equals(Position2, 7))),
 4941       (not(equals(Position1, 5));not(equals(Position2, 8))),
 4942       (not(equals(Position1, 5));not(equals(Position2, 7))),
 4943       (not(equals(Position1, 5));not(equals(Position2, 6))),
 4944       (not(equals(Position1, 3));not(equals(Position2, 4))),
 4945       (not(equals(Position1, 2));not(equals(Position2, 4))),
 4946       (not(equals(Position1, 2));not(equals(Position2, 3))),
 4947       (not(equals(Position1, 1));not(equals(Position2, 4))),
 4948       (not(equals(Position1, 1));not(equals(Position2, 3))),
 4949       (not(equals(Position1, 1));not(equals(Position2, 2))),
 4950      neighbor(Position1, Position2)
 4951    ]).
 4952
 4953 /*  equals(Position1, 7) :-
 4954       ( (   not(equals(Position2, 6))
 4955         ;   not(equals(Position1, 8))
 4956         ),
 4957         (   not(equals(Position2, 7))
 4958         ;   not(equals(Position1, 8))
 4959         ),
 4960         (   not(equals(Position1, 4))
 4961         ;   not(equals(Position2, 7))
 4962         ),
 4963         (   not(equals(Position2, 4))
 4964         ;   not(equals(Position1, 7))
 4965         )
 4966       ),
 4967       (   not(equals(Position2, 5))
 4968       ;   not(equals(Position1, 8))
 4969       ),
 4970       (   not(equals(Position2, 5))
 4971       ;   not(equals(Position1, 7))
 4972       ),
 4973       (   not(equals(Position2, 5))
 4974       ;   not(equals(Position1, 6))
 4975       ),
 4976       (   not(equals(Position2, 3))
 4977       ;   not(equals(Position1, 4))
 4978       ),
 4979       (   not(equals(Position2, 2))
 4980       ;   not(equals(Position1, 4))
 4981       ),
 4982       (   not(equals(Position2, 2))
 4983       ;   not(equals(Position1, 3))
 4984       ),
 4985       (   not(equals(Position2, 1))
 4986       ;   not(equals(Position1, 4))
 4987       ),
 4988       (   not(equals(Position2, 1))
 4989       ;   not(equals(Position1, 3))
 4990       ),
 4991       (   not(equals(Position2, 1))
 4992       ;   not(equals(Position1, 2))
 4993       ),
 4994       (   not(equals(Position1, 7))
 4995       ;   not(equals(Position2, 8))
 4996       ),
 4997       (   not(equals(Position1, 6))
 4998       ;   not(equals(Position2, 8))
 4999       ),
 5000       (   not(equals(Position1, 6))
 5001       ;   not(equals(Position2, 7))
 5002       ),
 5003       (   not(equals(Position1, 5))
 5004       ;   not(equals(Position2, 8))
 5005       ),
 5006       (   not(equals(Position1, 5))
 5007       ;   not(equals(Position2, 7))
 5008       ),
 5009       (   not(equals(Position1, 5))
 5010       ;   not(equals(Position2, 6))
 5011       ),
 5012       (   not(equals(Position1, 3))
 5013       ;   not(equals(Position2, 4))
 5014       ),
 5015       (   not(equals(Position1, 2))
 5016       ;   not(equals(Position2, 4))
 5017       ),
 5018       (   not(equals(Position1, 2))
 5019       ;   not(equals(Position2, 3))
 5020       ),
 5021       (   not(equals(Position1, 1))
 5022       ;   not(equals(Position2, 4))
 5023       ),
 5024       (   not(equals(Position1, 1))
 5025       ;   not(equals(Position2, 3))
 5026       ),
 5027       (   not(equals(Position1, 1))
 5028       ;   not(equals(Position2, 2))
 5029       ),
 5030       neighbor(Position1, Position2).
 5031 */
 5032axiom(equals(Position1, 7),
 5033   
 5034    [  (not(equals(Position2, 6));not(equals(Position1, 8))),
 5035       (not(equals(Position2, 7));not(equals(Position1, 8))),
 5036       (not(equals(Position1, 4));not(equals(Position2, 7))),
 5037       (not(equals(Position2, 4));not(equals(Position1, 7))),
 5038       (not(equals(Position2, 5));not(equals(Position1, 8))),
 5039       (not(equals(Position2, 5));not(equals(Position1, 7))),
 5040       (not(equals(Position2, 5));not(equals(Position1, 6))),
 5041       (not(equals(Position2, 3));not(equals(Position1, 4))),
 5042       (not(equals(Position2, 2));not(equals(Position1, 4))),
 5043       (not(equals(Position2, 2));not(equals(Position1, 3))),
 5044       (not(equals(Position2, 1));not(equals(Position1, 4))),
 5045       (not(equals(Position2, 1));not(equals(Position1, 3))),
 5046       (not(equals(Position2, 1));not(equals(Position1, 2))),
 5047       (not(equals(Position1, 7));not(equals(Position2, 8))),
 5048       (not(equals(Position1, 6));not(equals(Position2, 8))),
 5049       (not(equals(Position1, 6));not(equals(Position2, 7))),
 5050       (not(equals(Position1, 5));not(equals(Position2, 8))),
 5051       (not(equals(Position1, 5));not(equals(Position2, 7))),
 5052       (not(equals(Position1, 5));not(equals(Position2, 6))),
 5053       (not(equals(Position1, 3));not(equals(Position2, 4))),
 5054       (not(equals(Position1, 2));not(equals(Position2, 4))),
 5055       (not(equals(Position1, 2));not(equals(Position2, 3))),
 5056       (not(equals(Position1, 1));not(equals(Position2, 4))),
 5057       (not(equals(Position1, 1));not(equals(Position2, 3))),
 5058       (not(equals(Position1, 1));not(equals(Position2, 2))),
 5059      neighbor(Position1, Position2)
 5060    ]).
 5061
 5062 /*  equals(Position2, 6) :-
 5063       ( (   not(equals(Position2, 7))
 5064         ;   not(equals(Position1, 8))
 5065         ),
 5066         (   not(equals(Position1, 4))
 5067         ;   not(equals(Position2, 7))
 5068         ),
 5069         (   not(equals(Position2, 4))
 5070         ;   not(equals(Position1, 7))
 5071         )
 5072       ),
 5073       (   not(equals(Position2, 6))
 5074       ;   not(equals(Position1, 7))
 5075       ),
 5076       (   not(equals(Position2, 5))
 5077       ;   not(equals(Position1, 8))
 5078       ),
 5079       (   not(equals(Position2, 5))
 5080       ;   not(equals(Position1, 7))
 5081       ),
 5082       (   not(equals(Position2, 5))
 5083       ;   not(equals(Position1, 6))
 5084       ),
 5085       (   not(equals(Position2, 3))
 5086       ;   not(equals(Position1, 4))
 5087       ),
 5088       (   not(equals(Position2, 2))
 5089       ;   not(equals(Position1, 4))
 5090       ),
 5091       (   not(equals(Position2, 2))
 5092       ;   not(equals(Position1, 3))
 5093       ),
 5094       (   not(equals(Position2, 1))
 5095       ;   not(equals(Position1, 4))
 5096       ),
 5097       (   not(equals(Position2, 1))
 5098       ;   not(equals(Position1, 3))
 5099       ),
 5100       (   not(equals(Position2, 1))
 5101       ;   not(equals(Position1, 2))
 5102       ),
 5103       (   not(equals(Position1, 7))
 5104       ;   not(equals(Position2, 8))
 5105       ),
 5106       (   not(equals(Position1, 6))
 5107       ;   not(equals(Position2, 8))
 5108       ),
 5109       (   not(equals(Position1, 6))
 5110       ;   not(equals(Position2, 7))
 5111       ),
 5112       (   not(equals(Position1, 5))
 5113       ;   not(equals(Position2, 8))
 5114       ),
 5115       (   not(equals(Position1, 5))
 5116       ;   not(equals(Position2, 7))
 5117       ),
 5118       (   not(equals(Position1, 5))
 5119       ;   not(equals(Position2, 6))
 5120       ),
 5121       (   not(equals(Position1, 3))
 5122       ;   not(equals(Position2, 4))
 5123       ),
 5124       (   not(equals(Position1, 2))
 5125       ;   not(equals(Position2, 4))
 5126       ),
 5127       (   not(equals(Position1, 2))
 5128       ;   not(equals(Position2, 3))
 5129       ),
 5130       (   not(equals(Position1, 1))
 5131       ;   not(equals(Position2, 4))
 5132       ),
 5133       (   not(equals(Position1, 1))
 5134       ;   not(equals(Position2, 3))
 5135       ),
 5136       (   not(equals(Position1, 1))
 5137       ;   not(equals(Position2, 2))
 5138       ),
 5139       neighbor(Position1, Position2).
 5140 */
 5141axiom(equals(Position2, 6),
 5142   
 5143    [  (not(equals(Position2, 7));not(equals(Position1, 8))),
 5144       (not(equals(Position1, 4));not(equals(Position2, 7))),
 5145       (not(equals(Position2, 4));not(equals(Position1, 7))),
 5146       (not(equals(Position2, 6));not(equals(Position1, 7))),
 5147       (not(equals(Position2, 5));not(equals(Position1, 8))),
 5148       (not(equals(Position2, 5));not(equals(Position1, 7))),
 5149       (not(equals(Position2, 5));not(equals(Position1, 6))),
 5150       (not(equals(Position2, 3));not(equals(Position1, 4))),
 5151       (not(equals(Position2, 2));not(equals(Position1, 4))),
 5152       (not(equals(Position2, 2));not(equals(Position1, 3))),
 5153       (not(equals(Position2, 1));not(equals(Position1, 4))),
 5154       (not(equals(Position2, 1));not(equals(Position1, 3))),
 5155       (not(equals(Position2, 1));not(equals(Position1, 2))),
 5156       (not(equals(Position1, 7));not(equals(Position2, 8))),
 5157       (not(equals(Position1, 6));not(equals(Position2, 8))),
 5158       (not(equals(Position1, 6));not(equals(Position2, 7))),
 5159       (not(equals(Position1, 5));not(equals(Position2, 8))),
 5160       (not(equals(Position1, 5));not(equals(Position2, 7))),
 5161       (not(equals(Position1, 5));not(equals(Position2, 6))),
 5162       (not(equals(Position1, 3));not(equals(Position2, 4))),
 5163       (not(equals(Position1, 2));not(equals(Position2, 4))),
 5164       (not(equals(Position1, 2));not(equals(Position2, 3))),
 5165       (not(equals(Position1, 1));not(equals(Position2, 4))),
 5166       (not(equals(Position1, 1));not(equals(Position2, 3))),
 5167       (not(equals(Position1, 1));not(equals(Position2, 2))),
 5168      neighbor(Position1, Position2)
 5169    ]).
 5170
 5171 /*  equals(Position1, 8) :-
 5172       ( (   not(equals(Position2, 7))
 5173         ;   not(equals(Position1, 8))
 5174         ),
 5175         (   not(equals(Position1, 4))
 5176         ;   not(equals(Position2, 7))
 5177         ),
 5178         (   not(equals(Position2, 4))
 5179         ;   not(equals(Position1, 7))
 5180         )
 5181       ),
 5182       (   not(equals(Position2, 6))
 5183       ;   not(equals(Position1, 7))
 5184       ),
 5185       (   not(equals(Position2, 5))
 5186       ;   not(equals(Position1, 8))
 5187       ),
 5188       (   not(equals(Position2, 5))
 5189       ;   not(equals(Position1, 7))
 5190       ),
 5191       (   not(equals(Position2, 5))
 5192       ;   not(equals(Position1, 6))
 5193       ),
 5194       (   not(equals(Position2, 3))
 5195       ;   not(equals(Position1, 4))
 5196       ),
 5197       (   not(equals(Position2, 2))
 5198       ;   not(equals(Position1, 4))
 5199       ),
 5200       (   not(equals(Position2, 2))
 5201       ;   not(equals(Position1, 3))
 5202       ),
 5203       (   not(equals(Position2, 1))
 5204       ;   not(equals(Position1, 4))
 5205       ),
 5206       (   not(equals(Position2, 1))
 5207       ;   not(equals(Position1, 3))
 5208       ),
 5209       (   not(equals(Position2, 1))
 5210       ;   not(equals(Position1, 2))
 5211       ),
 5212       (   not(equals(Position1, 7))
 5213       ;   not(equals(Position2, 8))
 5214       ),
 5215       (   not(equals(Position1, 6))
 5216       ;   not(equals(Position2, 8))
 5217       ),
 5218       (   not(equals(Position1, 6))
 5219       ;   not(equals(Position2, 7))
 5220       ),
 5221       (   not(equals(Position1, 5))
 5222       ;   not(equals(Position2, 8))
 5223       ),
 5224       (   not(equals(Position1, 5))
 5225       ;   not(equals(Position2, 7))
 5226       ),
 5227       (   not(equals(Position1, 5))
 5228       ;   not(equals(Position2, 6))
 5229       ),
 5230       (   not(equals(Position1, 3))
 5231       ;   not(equals(Position2, 4))
 5232       ),
 5233       (   not(equals(Position1, 2))
 5234       ;   not(equals(Position2, 4))
 5235       ),
 5236       (   not(equals(Position1, 2))
 5237       ;   not(equals(Position2, 3))
 5238       ),
 5239       (   not(equals(Position1, 1))
 5240       ;   not(equals(Position2, 4))
 5241       ),
 5242       (   not(equals(Position1, 1))
 5243       ;   not(equals(Position2, 3))
 5244       ),
 5245       (   not(equals(Position1, 1))
 5246       ;   not(equals(Position2, 2))
 5247       ),
 5248       neighbor(Position1, Position2).
 5249 */
 5250axiom(equals(Position1, 8),
 5251   
 5252    [  (not(equals(Position2, 7));not(equals(Position1, 8))),
 5253       (not(equals(Position1, 4));not(equals(Position2, 7))),
 5254       (not(equals(Position2, 4));not(equals(Position1, 7))),
 5255       (not(equals(Position2, 6));not(equals(Position1, 7))),
 5256       (not(equals(Position2, 5));not(equals(Position1, 8))),
 5257       (not(equals(Position2, 5));not(equals(Position1, 7))),
 5258       (not(equals(Position2, 5));not(equals(Position1, 6))),
 5259       (not(equals(Position2, 3));not(equals(Position1, 4))),
 5260       (not(equals(Position2, 2));not(equals(Position1, 4))),
 5261       (not(equals(Position2, 2));not(equals(Position1, 3))),
 5262       (not(equals(Position2, 1));not(equals(Position1, 4))),
 5263       (not(equals(Position2, 1));not(equals(Position1, 3))),
 5264       (not(equals(Position2, 1));not(equals(Position1, 2))),
 5265       (not(equals(Position1, 7));not(equals(Position2, 8))),
 5266       (not(equals(Position1, 6));not(equals(Position2, 8))),
 5267       (not(equals(Position1, 6));not(equals(Position2, 7))),
 5268       (not(equals(Position1, 5));not(equals(Position2, 8))),
 5269       (not(equals(Position1, 5));not(equals(Position2, 7))),
 5270       (not(equals(Position1, 5));not(equals(Position2, 6))),
 5271       (not(equals(Position1, 3));not(equals(Position2, 4))),
 5272       (not(equals(Position1, 2));not(equals(Position2, 4))),
 5273       (not(equals(Position1, 2));not(equals(Position2, 3))),
 5274       (not(equals(Position1, 1));not(equals(Position2, 4))),
 5275       (not(equals(Position1, 1));not(equals(Position2, 3))),
 5276       (not(equals(Position1, 1));not(equals(Position2, 2))),
 5277      neighbor(Position1, Position2)
 5278    ]).
 5279
 5280 /*  equals(Position2, 7) :-
 5281       ( (   not(equals(Position1, 4))
 5282         ;   not(equals(Position2, 7))
 5283         ),
 5284         (   not(equals(Position2, 4))
 5285         ;   not(equals(Position1, 7))
 5286         )
 5287       ),
 5288       (   not(equals(Position2, 6))
 5289       ;   not(equals(Position1, 8))
 5290       ),
 5291       (   not(equals(Position2, 6))
 5292       ;   not(equals(Position1, 7))
 5293       ),
 5294       (   not(equals(Position2, 5))
 5295       ;   not(equals(Position1, 8))
 5296       ),
 5297       (   not(equals(Position2, 5))
 5298       ;   not(equals(Position1, 7))
 5299       ),
 5300       (   not(equals(Position2, 5))
 5301       ;   not(equals(Position1, 6))
 5302       ),
 5303       (   not(equals(Position2, 3))
 5304       ;   not(equals(Position1, 4))
 5305       ),
 5306       (   not(equals(Position2, 2))
 5307       ;   not(equals(Position1, 4))
 5308       ),
 5309       (   not(equals(Position2, 2))
 5310       ;   not(equals(Position1, 3))
 5311       ),
 5312       (   not(equals(Position2, 1))
 5313       ;   not(equals(Position1, 4))
 5314       ),
 5315       (   not(equals(Position2, 1))
 5316       ;   not(equals(Position1, 3))
 5317       ),
 5318       (   not(equals(Position2, 1))
 5319       ;   not(equals(Position1, 2))
 5320       ),
 5321       (   not(equals(Position1, 7))
 5322       ;   not(equals(Position2, 8))
 5323       ),
 5324       (   not(equals(Position1, 6))
 5325       ;   not(equals(Position2, 8))
 5326       ),
 5327       (   not(equals(Position1, 6))
 5328       ;   not(equals(Position2, 7))
 5329       ),
 5330       (   not(equals(Position1, 5))
 5331       ;   not(equals(Position2, 8))
 5332       ),
 5333       (   not(equals(Position1, 5))
 5334       ;   not(equals(Position2, 7))
 5335       ),
 5336       (   not(equals(Position1, 5))
 5337       ;   not(equals(Position2, 6))
 5338       ),
 5339       (   not(equals(Position1, 3))
 5340       ;   not(equals(Position2, 4))
 5341       ),
 5342       (   not(equals(Position1, 2))
 5343       ;   not(equals(Position2, 4))
 5344       ),
 5345       (   not(equals(Position1, 2))
 5346       ;   not(equals(Position2, 3))
 5347       ),
 5348       (   not(equals(Position1, 1))
 5349       ;   not(equals(Position2, 4))
 5350       ),
 5351       (   not(equals(Position1, 1))
 5352       ;   not(equals(Position2, 3))
 5353       ),
 5354       (   not(equals(Position1, 1))
 5355       ;   not(equals(Position2, 2))
 5356       ),
 5357       neighbor(Position1, Position2).
 5358 */
 5359axiom(equals(Position2, 7),
 5360   
 5361    [  (not(equals(Position1, 4));not(equals(Position2, 7))),
 5362       (not(equals(Position2, 4));not(equals(Position1, 7))),
 5363       (not(equals(Position2, 6));not(equals(Position1, 8))),
 5364       (not(equals(Position2, 6));not(equals(Position1, 7))),
 5365       (not(equals(Position2, 5));not(equals(Position1, 8))),
 5366       (not(equals(Position2, 5));not(equals(Position1, 7))),
 5367       (not(equals(Position2, 5));not(equals(Position1, 6))),
 5368       (not(equals(Position2, 3));not(equals(Position1, 4))),
 5369       (not(equals(Position2, 2));not(equals(Position1, 4))),
 5370       (not(equals(Position2, 2));not(equals(Position1, 3))),
 5371       (not(equals(Position2, 1));not(equals(Position1, 4))),
 5372       (not(equals(Position2, 1));not(equals(Position1, 3))),
 5373       (not(equals(Position2, 1));not(equals(Position1, 2))),
 5374       (not(equals(Position1, 7));not(equals(Position2, 8))),
 5375       (not(equals(Position1, 6));not(equals(Position2, 8))),
 5376       (not(equals(Position1, 6));not(equals(Position2, 7))),
 5377       (not(equals(Position1, 5));not(equals(Position2, 8))),
 5378       (not(equals(Position1, 5));not(equals(Position2, 7))),
 5379       (not(equals(Position1, 5));not(equals(Position2, 6))),
 5380       (not(equals(Position1, 3));not(equals(Position2, 4))),
 5381       (not(equals(Position1, 2));not(equals(Position2, 4))),
 5382       (not(equals(Position1, 2));not(equals(Position2, 3))),
 5383       (not(equals(Position1, 1));not(equals(Position2, 4))),
 5384       (not(equals(Position1, 1));not(equals(Position2, 3))),
 5385       (not(equals(Position1, 1));not(equals(Position2, 2))),
 5386      neighbor(Position1, Position2)
 5387    ]).
 5388
 5389 /*  equals(Position1, 8) :-
 5390       ( (   not(equals(Position1, 4))
 5391         ;   not(equals(Position2, 7))
 5392         ),
 5393         (   not(equals(Position2, 4))
 5394         ;   not(equals(Position1, 7))
 5395         )
 5396       ),
 5397       (   not(equals(Position2, 6))
 5398       ;   not(equals(Position1, 8))
 5399       ),
 5400       (   not(equals(Position2, 6))
 5401       ;   not(equals(Position1, 7))
 5402       ),
 5403       (   not(equals(Position2, 5))
 5404       ;   not(equals(Position1, 8))
 5405       ),
 5406       (   not(equals(Position2, 5))
 5407       ;   not(equals(Position1, 7))
 5408       ),
 5409       (   not(equals(Position2, 5))
 5410       ;   not(equals(Position1, 6))
 5411       ),
 5412       (   not(equals(Position2, 3))
 5413       ;   not(equals(Position1, 4))
 5414       ),
 5415       (   not(equals(Position2, 2))
 5416       ;   not(equals(Position1, 4))
 5417       ),
 5418       (   not(equals(Position2, 2))
 5419       ;   not(equals(Position1, 3))
 5420       ),
 5421       (   not(equals(Position2, 1))
 5422       ;   not(equals(Position1, 4))
 5423       ),
 5424       (   not(equals(Position2, 1))
 5425       ;   not(equals(Position1, 3))
 5426       ),
 5427       (   not(equals(Position2, 1))
 5428       ;   not(equals(Position1, 2))
 5429       ),
 5430       (   not(equals(Position1, 7))
 5431       ;   not(equals(Position2, 8))
 5432       ),
 5433       (   not(equals(Position1, 6))
 5434       ;   not(equals(Position2, 8))
 5435       ),
 5436       (   not(equals(Position1, 6))
 5437       ;   not(equals(Position2, 7))
 5438       ),
 5439       (   not(equals(Position1, 5))
 5440       ;   not(equals(Position2, 8))
 5441       ),
 5442       (   not(equals(Position1, 5))
 5443       ;   not(equals(Position2, 7))
 5444       ),
 5445       (   not(equals(Position1, 5))
 5446       ;   not(equals(Position2, 6))
 5447       ),
 5448       (   not(equals(Position1, 3))
 5449       ;   not(equals(Position2, 4))
 5450       ),
 5451       (   not(equals(Position1, 2))
 5452       ;   not(equals(Position2, 4))
 5453       ),
 5454       (   not(equals(Position1, 2))
 5455       ;   not(equals(Position2, 3))
 5456       ),
 5457       (   not(equals(Position1, 1))
 5458       ;   not(equals(Position2, 4))
 5459       ),
 5460       (   not(equals(Position1, 1))
 5461       ;   not(equals(Position2, 3))
 5462       ),
 5463       (   not(equals(Position1, 1))
 5464       ;   not(equals(Position2, 2))
 5465       ),
 5466       neighbor(Position1, Position2).
 5467 */
 5468axiom(equals(Position1, 8),
 5469   
 5470    [  (not(equals(Position1, 4));not(equals(Position2, 7))),
 5471       (not(equals(Position2, 4));not(equals(Position1, 7))),
 5472       (not(equals(Position2, 6));not(equals(Position1, 8))),
 5473       (not(equals(Position2, 6));not(equals(Position1, 7))),
 5474       (not(equals(Position2, 5));not(equals(Position1, 8))),
 5475       (not(equals(Position2, 5));not(equals(Position1, 7))),
 5476       (not(equals(Position2, 5));not(equals(Position1, 6))),
 5477       (not(equals(Position2, 3));not(equals(Position1, 4))),
 5478       (not(equals(Position2, 2));not(equals(Position1, 4))),
 5479       (not(equals(Position2, 2));not(equals(Position1, 3))),
 5480       (not(equals(Position2, 1));not(equals(Position1, 4))),
 5481       (not(equals(Position2, 1));not(equals(Position1, 3))),
 5482       (not(equals(Position2, 1));not(equals(Position1, 2))),
 5483       (not(equals(Position1, 7));not(equals(Position2, 8))),
 5484       (not(equals(Position1, 6));not(equals(Position2, 8))),
 5485       (not(equals(Position1, 6));not(equals(Position2, 7))),
 5486       (not(equals(Position1, 5));not(equals(Position2, 8))),
 5487       (not(equals(Position1, 5));not(equals(Position2, 7))),
 5488       (not(equals(Position1, 5));not(equals(Position2, 6))),
 5489       (not(equals(Position1, 3));not(equals(Position2, 4))),
 5490       (not(equals(Position1, 2));not(equals(Position2, 4))),
 5491       (not(equals(Position1, 2));not(equals(Position2, 3))),
 5492       (not(equals(Position1, 1));not(equals(Position2, 4))),
 5493       (not(equals(Position1, 1));not(equals(Position2, 3))),
 5494       (not(equals(Position1, 1));not(equals(Position2, 2))),
 5495      neighbor(Position1, Position2)
 5496    ]).
 5497
 5498 /*  equals(Position1, 4) :-
 5499       (   not(equals(Position2, 4))
 5500       ;   not(equals(Position1, 7))
 5501       ),
 5502       (   not(equals(Position2, 7))
 5503       ;   not(equals(Position1, 8))
 5504       ),
 5505       (   not(equals(Position2, 6))
 5506       ;   not(equals(Position1, 8))
 5507       ),
 5508       (   not(equals(Position2, 6))
 5509       ;   not(equals(Position1, 7))
 5510       ),
 5511       (   not(equals(Position2, 5))
 5512       ;   not(equals(Position1, 8))
 5513       ),
 5514       (   not(equals(Position2, 5))
 5515       ;   not(equals(Position1, 7))
 5516       ),
 5517       (   not(equals(Position2, 5))
 5518       ;   not(equals(Position1, 6))
 5519       ),
 5520       (   not(equals(Position2, 3))
 5521       ;   not(equals(Position1, 4))
 5522       ),
 5523       (   not(equals(Position2, 2))
 5524       ;   not(equals(Position1, 4))
 5525       ),
 5526       (   not(equals(Position2, 2))
 5527       ;   not(equals(Position1, 3))
 5528       ),
 5529       (   not(equals(Position2, 1))
 5530       ;   not(equals(Position1, 4))
 5531       ),
 5532       (   not(equals(Position2, 1))
 5533       ;   not(equals(Position1, 3))
 5534       ),
 5535       (   not(equals(Position2, 1))
 5536       ;   not(equals(Position1, 2))
 5537       ),
 5538       (   not(equals(Position1, 7))
 5539       ;   not(equals(Position2, 8))
 5540       ),
 5541       (   not(equals(Position1, 6))
 5542       ;   not(equals(Position2, 8))
 5543       ),
 5544       (   not(equals(Position1, 6))
 5545       ;   not(equals(Position2, 7))
 5546       ),
 5547       (   not(equals(Position1, 5))
 5548       ;   not(equals(Position2, 8))
 5549       ),
 5550       (   not(equals(Position1, 5))
 5551       ;   not(equals(Position2, 7))
 5552       ),
 5553       (   not(equals(Position1, 5))
 5554       ;   not(equals(Position2, 6))
 5555       ),
 5556       (   not(equals(Position1, 3))
 5557       ;   not(equals(Position2, 4))
 5558       ),
 5559       (   not(equals(Position1, 2))
 5560       ;   not(equals(Position2, 4))
 5561       ),
 5562       (   not(equals(Position1, 2))
 5563       ;   not(equals(Position2, 3))
 5564       ),
 5565       (   not(equals(Position1, 1))
 5566       ;   not(equals(Position2, 4))
 5567       ),
 5568       (   not(equals(Position1, 1))
 5569       ;   not(equals(Position2, 3))
 5570       ),
 5571       (   not(equals(Position1, 1))
 5572       ;   not(equals(Position2, 2))
 5573       ),
 5574       neighbor(Position1, Position2).
 5575 */
 5576axiom(equals(Position1, 4),
 5577   
 5578    [  (not(equals(Position2, 4));not(equals(Position1, 7))),
 5579       (not(equals(Position2, 7));not(equals(Position1, 8))),
 5580       (not(equals(Position2, 6));not(equals(Position1, 8))),
 5581       (not(equals(Position2, 6));not(equals(Position1, 7))),
 5582       (not(equals(Position2, 5));not(equals(Position1, 8))),
 5583       (not(equals(Position2, 5));not(equals(Position1, 7))),
 5584       (not(equals(Position2, 5));not(equals(Position1, 6))),
 5585       (not(equals(Position2, 3));not(equals(Position1, 4))),
 5586       (not(equals(Position2, 2));not(equals(Position1, 4))),
 5587       (not(equals(Position2, 2));not(equals(Position1, 3))),
 5588       (not(equals(Position2, 1));not(equals(Position1, 4))),
 5589       (not(equals(Position2, 1));not(equals(Position1, 3))),
 5590       (not(equals(Position2, 1));not(equals(Position1, 2))),
 5591       (not(equals(Position1, 7));not(equals(Position2, 8))),
 5592       (not(equals(Position1, 6));not(equals(Position2, 8))),
 5593       (not(equals(Position1, 6));not(equals(Position2, 7))),
 5594       (not(equals(Position1, 5));not(equals(Position2, 8))),
 5595       (not(equals(Position1, 5));not(equals(Position2, 7))),
 5596       (not(equals(Position1, 5));not(equals(Position2, 6))),
 5597       (not(equals(Position1, 3));not(equals(Position2, 4))),
 5598       (not(equals(Position1, 2));not(equals(Position2, 4))),
 5599       (not(equals(Position1, 2));not(equals(Position2, 3))),
 5600       (not(equals(Position1, 1));not(equals(Position2, 4))),
 5601       (not(equals(Position1, 1));not(equals(Position2, 3))),
 5602       (not(equals(Position1, 1));not(equals(Position2, 2))),
 5603      neighbor(Position1, Position2)
 5604    ]).
 5605
 5606 /*  equals(Position2, 7) :-
 5607       (   not(equals(Position2, 4))
 5608       ;   not(equals(Position1, 7))
 5609       ),
 5610       (   not(equals(Position2, 7))
 5611       ;   not(equals(Position1, 8))
 5612       ),
 5613       (   not(equals(Position2, 6))
 5614       ;   not(equals(Position1, 8))
 5615       ),
 5616       (   not(equals(Position2, 6))
 5617       ;   not(equals(Position1, 7))
 5618       ),
 5619       (   not(equals(Position2, 5))
 5620       ;   not(equals(Position1, 8))
 5621       ),
 5622       (   not(equals(Position2, 5))
 5623       ;   not(equals(Position1, 7))
 5624       ),
 5625       (   not(equals(Position2, 5))
 5626       ;   not(equals(Position1, 6))
 5627       ),
 5628       (   not(equals(Position2, 3))
 5629       ;   not(equals(Position1, 4))
 5630       ),
 5631       (   not(equals(Position2, 2))
 5632       ;   not(equals(Position1, 4))
 5633       ),
 5634       (   not(equals(Position2, 2))
 5635       ;   not(equals(Position1, 3))
 5636       ),
 5637       (   not(equals(Position2, 1))
 5638       ;   not(equals(Position1, 4))
 5639       ),
 5640       (   not(equals(Position2, 1))
 5641       ;   not(equals(Position1, 3))
 5642       ),
 5643       (   not(equals(Position2, 1))
 5644       ;   not(equals(Position1, 2))
 5645       ),
 5646       (   not(equals(Position1, 7))
 5647       ;   not(equals(Position2, 8))
 5648       ),
 5649       (   not(equals(Position1, 6))
 5650       ;   not(equals(Position2, 8))
 5651       ),
 5652       (   not(equals(Position1, 6))
 5653       ;   not(equals(Position2, 7))
 5654       ),
 5655       (   not(equals(Position1, 5))
 5656       ;   not(equals(Position2, 8))
 5657       ),
 5658       (   not(equals(Position1, 5))
 5659       ;   not(equals(Position2, 7))
 5660       ),
 5661       (   not(equals(Position1, 5))
 5662       ;   not(equals(Position2, 6))
 5663       ),
 5664       (   not(equals(Position1, 3))
 5665       ;   not(equals(Position2, 4))
 5666       ),
 5667       (   not(equals(Position1, 2))
 5668       ;   not(equals(Position2, 4))
 5669       ),
 5670       (   not(equals(Position1, 2))
 5671       ;   not(equals(Position2, 3))
 5672       ),
 5673       (   not(equals(Position1, 1))
 5674       ;   not(equals(Position2, 4))
 5675       ),
 5676       (   not(equals(Position1, 1))
 5677       ;   not(equals(Position2, 3))
 5678       ),
 5679       (   not(equals(Position1, 1))
 5680       ;   not(equals(Position2, 2))
 5681       ),
 5682       neighbor(Position1, Position2).
 5683 */
 5684axiom(equals(Position2, 7),
 5685   
 5686    [  (not(equals(Position2, 4));not(equals(Position1, 7))),
 5687       (not(equals(Position2, 7));not(equals(Position1, 8))),
 5688       (not(equals(Position2, 6));not(equals(Position1, 8))),
 5689       (not(equals(Position2, 6));not(equals(Position1, 7))),
 5690       (not(equals(Position2, 5));not(equals(Position1, 8))),
 5691       (not(equals(Position2, 5));not(equals(Position1, 7))),
 5692       (not(equals(Position2, 5));not(equals(Position1, 6))),
 5693       (not(equals(Position2, 3));not(equals(Position1, 4))),
 5694       (not(equals(Position2, 2));not(equals(Position1, 4))),
 5695       (not(equals(Position2, 2));not(equals(Position1, 3))),
 5696       (not(equals(Position2, 1));not(equals(Position1, 4))),
 5697       (not(equals(Position2, 1));not(equals(Position1, 3))),
 5698       (not(equals(Position2, 1));not(equals(Position1, 2))),
 5699       (not(equals(Position1, 7));not(equals(Position2, 8))),
 5700       (not(equals(Position1, 6));not(equals(Position2, 8))),
 5701       (not(equals(Position1, 6));not(equals(Position2, 7))),
 5702       (not(equals(Position1, 5));not(equals(Position2, 8))),
 5703       (not(equals(Position1, 5));not(equals(Position2, 7))),
 5704       (not(equals(Position1, 5));not(equals(Position2, 6))),
 5705       (not(equals(Position1, 3));not(equals(Position2, 4))),
 5706       (not(equals(Position1, 2));not(equals(Position2, 4))),
 5707       (not(equals(Position1, 2));not(equals(Position2, 3))),
 5708       (not(equals(Position1, 1));not(equals(Position2, 4))),
 5709       (not(equals(Position1, 1));not(equals(Position2, 3))),
 5710       (not(equals(Position1, 1));not(equals(Position2, 2))),
 5711      neighbor(Position1, Position2)
 5712    ]).
 5713
 5714 /*  equals(Position2, 4) :-
 5715       (   not(equals(Position1, 4))
 5716       ;   not(equals(Position2, 7))
 5717       ),
 5718       (   not(equals(Position2, 7))
 5719       ;   not(equals(Position1, 8))
 5720       ),
 5721       (   not(equals(Position2, 6))
 5722       ;   not(equals(Position1, 8))
 5723       ),
 5724       (   not(equals(Position2, 6))
 5725       ;   not(equals(Position1, 7))
 5726       ),
 5727       (   not(equals(Position2, 5))
 5728       ;   not(equals(Position1, 8))
 5729       ),
 5730       (   not(equals(Position2, 5))
 5731       ;   not(equals(Position1, 7))
 5732       ),
 5733       (   not(equals(Position2, 5))
 5734       ;   not(equals(Position1, 6))
 5735       ),
 5736       (   not(equals(Position2, 3))
 5737       ;   not(equals(Position1, 4))
 5738       ),
 5739       (   not(equals(Position2, 2))
 5740       ;   not(equals(Position1, 4))
 5741       ),
 5742       (   not(equals(Position2, 2))
 5743       ;   not(equals(Position1, 3))
 5744       ),
 5745       (   not(equals(Position2, 1))
 5746       ;   not(equals(Position1, 4))
 5747       ),
 5748       (   not(equals(Position2, 1))
 5749       ;   not(equals(Position1, 3))
 5750       ),
 5751       (   not(equals(Position2, 1))
 5752       ;   not(equals(Position1, 2))
 5753       ),
 5754       (   not(equals(Position1, 7))
 5755       ;   not(equals(Position2, 8))
 5756       ),
 5757       (   not(equals(Position1, 6))
 5758       ;   not(equals(Position2, 8))
 5759       ),
 5760       (   not(equals(Position1, 6))
 5761       ;   not(equals(Position2, 7))
 5762       ),
 5763       (   not(equals(Position1, 5))
 5764       ;   not(equals(Position2, 8))
 5765       ),
 5766       (   not(equals(Position1, 5))
 5767       ;   not(equals(Position2, 7))
 5768       ),
 5769       (   not(equals(Position1, 5))
 5770       ;   not(equals(Position2, 6))
 5771       ),
 5772       (   not(equals(Position1, 3))
 5773       ;   not(equals(Position2, 4))
 5774       ),
 5775       (   not(equals(Position1, 2))
 5776       ;   not(equals(Position2, 4))
 5777       ),
 5778       (   not(equals(Position1, 2))
 5779       ;   not(equals(Position2, 3))
 5780       ),
 5781       (   not(equals(Position1, 1))
 5782       ;   not(equals(Position2, 4))
 5783       ),
 5784       (   not(equals(Position1, 1))
 5785       ;   not(equals(Position2, 3))
 5786       ),
 5787       (   not(equals(Position1, 1))
 5788       ;   not(equals(Position2, 2))
 5789       ),
 5790       neighbor(Position1, Position2).
 5791 */
 5792axiom(equals(Position2, 4),
 5793   
 5794    [  (not(equals(Position1, 4));not(equals(Position2, 7))),
 5795       (not(equals(Position2, 7));not(equals(Position1, 8))),
 5796       (not(equals(Position2, 6));not(equals(Position1, 8))),
 5797       (not(equals(Position2, 6));not(equals(Position1, 7))),
 5798       (not(equals(Position2, 5));not(equals(Position1, 8))),
 5799       (not(equals(Position2, 5));not(equals(Position1, 7))),
 5800       (not(equals(Position2, 5));not(equals(Position1, 6))),
 5801       (not(equals(Position2, 3));not(equals(Position1, 4))),
 5802       (not(equals(Position2, 2));not(equals(Position1, 4))),
 5803       (not(equals(Position2, 2));not(equals(Position1, 3))),
 5804       (not(equals(Position2, 1));not(equals(Position1, 4))),
 5805       (not(equals(Position2, 1));not(equals(Position1, 3))),
 5806       (not(equals(Position2, 1));not(equals(Position1, 2))),
 5807       (not(equals(Position1, 7));not(equals(Position2, 8))),
 5808       (not(equals(Position1, 6));not(equals(Position2, 8))),
 5809       (not(equals(Position1, 6));not(equals(Position2, 7))),
 5810       (not(equals(Position1, 5));not(equals(Position2, 8))),
 5811       (not(equals(Position1, 5));not(equals(Position2, 7))),
 5812       (not(equals(Position1, 5));not(equals(Position2, 6))),
 5813       (not(equals(Position1, 3));not(equals(Position2, 4))),
 5814       (not(equals(Position1, 2));not(equals(Position2, 4))),
 5815       (not(equals(Position1, 2));not(equals(Position2, 3))),
 5816       (not(equals(Position1, 1));not(equals(Position2, 4))),
 5817       (not(equals(Position1, 1));not(equals(Position2, 3))),
 5818       (not(equals(Position1, 1));not(equals(Position2, 2))),
 5819      neighbor(Position1, Position2)
 5820    ]).
 5821
 5822 /*  equals(Position1, 7) :-
 5823       (   not(equals(Position1, 4))
 5824       ;   not(equals(Position2, 7))
 5825       ),
 5826       (   not(equals(Position2, 7))
 5827       ;   not(equals(Position1, 8))
 5828       ),
 5829       (   not(equals(Position2, 6))
 5830       ;   not(equals(Position1, 8))
 5831       ),
 5832       (   not(equals(Position2, 6))
 5833       ;   not(equals(Position1, 7))
 5834       ),
 5835       (   not(equals(Position2, 5))
 5836       ;   not(equals(Position1, 8))
 5837       ),
 5838       (   not(equals(Position2, 5))
 5839       ;   not(equals(Position1, 7))
 5840       ),
 5841       (   not(equals(Position2, 5))
 5842       ;   not(equals(Position1, 6))
 5843       ),
 5844       (   not(equals(Position2, 3))
 5845       ;   not(equals(Position1, 4))
 5846       ),
 5847       (   not(equals(Position2, 2))
 5848       ;   not(equals(Position1, 4))
 5849       ),
 5850       (   not(equals(Position2, 2))
 5851       ;   not(equals(Position1, 3))
 5852       ),
 5853       (   not(equals(Position2, 1))
 5854       ;   not(equals(Position1, 4))
 5855       ),
 5856       (   not(equals(Position2, 1))
 5857       ;   not(equals(Position1, 3))
 5858       ),
 5859       (   not(equals(Position2, 1))
 5860       ;   not(equals(Position1, 2))
 5861       ),
 5862       (   not(equals(Position1, 7))
 5863       ;   not(equals(Position2, 8))
 5864       ),
 5865       (   not(equals(Position1, 6))
 5866       ;   not(equals(Position2, 8))
 5867       ),
 5868       (   not(equals(Position1, 6))
 5869       ;   not(equals(Position2, 7))
 5870       ),
 5871       (   not(equals(Position1, 5))
 5872       ;   not(equals(Position2, 8))
 5873       ),
 5874       (   not(equals(Position1, 5))
 5875       ;   not(equals(Position2, 7))
 5876       ),
 5877       (   not(equals(Position1, 5))
 5878       ;   not(equals(Position2, 6))
 5879       ),
 5880       (   not(equals(Position1, 3))
 5881       ;   not(equals(Position2, 4))
 5882       ),
 5883       (   not(equals(Position1, 2))
 5884       ;   not(equals(Position2, 4))
 5885       ),
 5886       (   not(equals(Position1, 2))
 5887       ;   not(equals(Position2, 3))
 5888       ),
 5889       (   not(equals(Position1, 1))
 5890       ;   not(equals(Position2, 4))
 5891       ),
 5892       (   not(equals(Position1, 1))
 5893       ;   not(equals(Position2, 3))
 5894       ),
 5895       (   not(equals(Position1, 1))
 5896       ;   not(equals(Position2, 2))
 5897       ),
 5898       neighbor(Position1, Position2).
 5899 */
 5900axiom(equals(Position1, 7),
 5901   
 5902    [  (not(equals(Position1, 4));not(equals(Position2, 7))),
 5903       (not(equals(Position2, 7));not(equals(Position1, 8))),
 5904       (not(equals(Position2, 6));not(equals(Position1, 8))),
 5905       (not(equals(Position2, 6));not(equals(Position1, 7))),
 5906       (not(equals(Position2, 5));not(equals(Position1, 8))),
 5907       (not(equals(Position2, 5));not(equals(Position1, 7))),
 5908       (not(equals(Position2, 5));not(equals(Position1, 6))),
 5909       (not(equals(Position2, 3));not(equals(Position1, 4))),
 5910       (not(equals(Position2, 2));not(equals(Position1, 4))),
 5911       (not(equals(Position2, 2));not(equals(Position1, 3))),
 5912       (not(equals(Position2, 1));not(equals(Position1, 4))),
 5913       (not(equals(Position2, 1));not(equals(Position1, 3))),
 5914       (not(equals(Position2, 1));not(equals(Position1, 2))),
 5915       (not(equals(Position1, 7));not(equals(Position2, 8))),
 5916       (not(equals(Position1, 6));not(equals(Position2, 8))),
 5917       (not(equals(Position1, 6));not(equals(Position2, 7))),
 5918       (not(equals(Position1, 5));not(equals(Position2, 8))),
 5919       (not(equals(Position1, 5));not(equals(Position2, 7))),
 5920       (not(equals(Position1, 5));not(equals(Position2, 6))),
 5921       (not(equals(Position1, 3));not(equals(Position2, 4))),
 5922       (not(equals(Position1, 2));not(equals(Position2, 4))),
 5923       (not(equals(Position1, 2));not(equals(Position2, 3))),
 5924       (not(equals(Position1, 1));not(equals(Position2, 4))),
 5925       (not(equals(Position1, 1));not(equals(Position2, 3))),
 5926       (not(equals(Position1, 1));not(equals(Position2, 2))),
 5927      neighbor(Position1, Position2)
 5928    ]).
 5929axiom(neighbor(Position1, Position2),
 5930   
 5931    [  (equals(Position1, 1), equals(Position2, 2);equals(Position1, 1), equals(Position2, 3);equals(Position1, 1), equals(Position2, 4);equals(Position1, 2), equals(Position2, 3);equals(Position1, 2), equals(Position2, 4);equals(Position1, 3), equals(Position2, 4);equals(Position1, 5), equals(Position2, 6);equals(Position1, 5), equals(Position2, 7);equals(Position1, 5), equals(Position2, 8);equals(Position1, 6), equals(Position2, 7);equals(Position1, 6), equals(Position2, 8);equals(Position1, 7), equals(Position2, 8);equals(Position2, 1), equals(Position1, 2);equals(Position2, 1), equals(Position1, 3);equals(Position2, 1), equals(Position1, 4);equals(Position2, 2), equals(Position1, 3);equals(Position2, 2), equals(Position1, 4);equals(Position2, 3), equals(Position1, 4);equals(Position2, 5), equals(Position1, 6);equals(Position2, 5), equals(Position1, 7);equals(Position2, 5), equals(Position1, 8);equals(Position2, 6), equals(Position1, 7);equals(Position2, 6), equals(Position1, 8);equals(Position2, 7), equals(Position1, 8);equals(Position1, 4), equals(Position2, 7);equals(Position2, 4), equals(Position1, 7))
 5932    ]).
 5933
 5934
 5935% From /opt/logicmoo_workspace/packs_sys/small_adventure_games/prolog/ec_planner/ectest/sanity_equals_01.e:34
 5936%; Prolog code starts with ;:-
 5937:- include(sanity_equals_01_extra).