1/* Simple illustration of the use of Aleph for
    2       abductive learning
    3 To run do the following:
    4       a. induce
    5 You should see Aleph first trying to learn the best rule
    6 it can for grandparent. It will then generate an abductive
    7 explanation for the examples in the form of ground facts for
    8 parent/2. These are then generalised to find the rules for
    9 parent/2.
   10*/

?- induce(Program). */

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