1:-use_module(library(slipcover)).    2
    3:- if(current_predicate(use_rendering/1)).    4:- use_rendering(c3).    5:- use_rendering(lpad).    6:- endif.    7
    8:-sc.    9
   10:- set_sc(megaex_bottom,2).   11:- set_sc(max_iter,3).   12:- set_sc(max_iter_structure,10).   13:- set_sc(maxdepth_var,4).   14:- set_sc(verbosity,3).   15:- set_sc(seed,rand(192,3412,1230)).   16
   17
   18:- begin_bg.   19car(car_11).  car(car_12).  car(car_13).  car(car_14).
   20car(car_21).  car(car_22).  car(car_23).
   21car(car_31).  car(car_32).  car(car_33).
   22car(car_41).  car(car_42).  car(car_43).  car(car_44).
   23car(car_51).  car(car_52).  car(car_53).
   24car(car_61).  car(car_62).
   25car(car_71).  car(car_72).  car(car_73).
   26car(car_81).  car(car_82).
   27car(car_91).  car(car_92).  car(car_93).  car(car_94).
   28car(car_101).  car(car_102).
   29
   30shape(elipse).  shape(hexagon).  shape(rectangle).  shape(u_shaped).
   31shape(triangle). shape(circle). shape(nil).
   32
   33train(east1).  train(east2).  train(east3).  train(east4).  train(east5).
   34train(west6).  train(west7).  train(west8).  train(west9).  train(west10).
   35
   36%eastbound train 1
   37short(car_12).		% 0
   38closed(car_12).		% 1
   39long(car_11).		% 2
   40long(car_13).
   41short(car_14).
   42open_car(car_11).		% 3
   43open_car(car_13).
   44open_car(car_14).
   45shape(car_11,rectangle). % 4,5
   46shape(car_12,rectangle).
   47shape(car_13,rectangle).
   48shape(car_14,rectangle).
   49load(car_11,rectangle,3). % 6,7,8
   50load(car_12,triangle,1).
   51load(car_13,hexagon,1).
   52load(car_14,circle,1).
   53wheels(car_11,2).	  % 9,10
   54wheels(car_12,2).
   55wheels(car_13,3).
   56wheels(car_14,2).
   57
   58%eastbound train 2
   59short(car_21).
   60short(car_22).
   61short(car_23).
   62shape(car_21,u_shaped).
   63shape(car_22,u_shaped).
   64shape(car_23,rectangle).
   65open_car(car_21).
   66open_car(car_22).
   67closed(car_23).
   68load(car_21,triangle,1).
   69load(car_22,rectangle,1).
   70load(car_23,circle,2).
   71wheels(car_21,2).
   72wheels(car_22,2).
   73wheels(car_23,2).
   74
   75%eastbound train 3
   76short(car_31).
   77short(car_32).
   78long(car_33).
   79shape(car_31,rectangle).
   80shape(car_32,hexagon).
   81shape(car_33,rectangle).
   82open_car(car_31).
   83closed(car_32).
   84closed(car_33).
   85load(car_31,circle,1).
   86load(car_32,triangle,1).
   87load(car_33,triangle,1).
   88wheels(car_31,2).
   89wheels(car_32,2).
   90wheels(car_33,3).
   91
   92%eastbound train 4
   93short(car_41).
   94short(car_42).
   95short(car_43).
   96short(car_44).
   97shape(car_41,u_shaped).
   98shape(car_42,rectangle).
   99shape(car_43,elipse).
  100shape(car_44,rectangle).
  101double(car_42).
  102open_car(car_41).
  103open_car(car_42).
  104closed(car_43).
  105open_car(car_44).
  106load(car_41,triangle,1).
  107load(car_42,triangle,1).
  108load(car_43,rectangle,1).
  109load(car_44,rectangle,1).
  110wheels(car_41,2).
  111wheels(car_42,2).
  112wheels(car_43,2).
  113wheels(car_44,2).
  114
  115%eastbound train 5
  116short(car_51).
  117short(car_52).
  118short(car_53).
  119shape(car_51,rectangle).
  120shape(car_52,rectangle).
  121shape(car_53,rectangle).
  122double(car_51).
  123open_car(car_51).
  124closed(car_52).
  125closed(car_53).
  126load(car_51,triangle,1).
  127load(car_52,rectangle,1).
  128load(car_53,circle,1).
  129wheels(car_51,2).
  130wheels(car_52,3).
  131wheels(car_53,2).
  132
  133%westbound train 6
  134long(car_61).
  135short(car_62).
  136shape(car_61,rectangle).
  137shape(car_62,rectangle).
  138closed(car_61).
  139open_car(car_62).
  140load(car_61,circle,3).
  141load(car_62,triangle,1).
  142wheels(car_61,2).
  143wheels(car_62,2).
  144
  145%westbound train 7
  146short(car_71).
  147short(car_72).
  148long(car_73).
  149shape(car_71,rectangle).
  150shape(car_72,u_shaped).
  151shape(car_73,rectangle).
  152double(car_71).
  153open_car(car_71).
  154open_car(car_72).
  155jagged(car_73).
  156load(car_71,circle,1).
  157load(car_72,triangle,1).
  158load(car_73,nil,0).
  159wheels(car_71,2).
  160wheels(car_72,2).
  161wheels(car_73,2).
  162
  163%westbound train 8
  164long(car_81).
  165short(car_82).
  166shape(car_81,rectangle).
  167shape(car_82,u_shaped).
  168closed(car_81).
  169open_car(car_82).
  170load(car_81,rectangle,1).
  171load(car_82,circle,1).
  172wheels(car_81,3).
  173wheels(car_82,2).
  174
  175%westbound train 9
  176short(car_91).
  177long(car_92).
  178short(car_93).
  179short(car_94).
  180shape(car_91,u_shaped).
  181shape(car_92,rectangle).
  182shape(car_93,rectangle).
  183shape(car_94,u_shaped).
  184open_car(car_91).
  185jagged(car_92).
  186open_car(car_93).
  187open_car(car_94).
  188load(car_91,circle,1).
  189load(car_92,rectangle,1).
  190load(car_93,rectangle,1).
  191load(car_93,circle,1).
  192wheels(car_91,2).
  193wheels(car_92,2).
  194wheels(car_93,2).
  195wheels(car_94,2).
  196
  197%westbound train 10
  198short(car_101).
  199long(car_102).
  200shape(car_101,u_shaped).
  201shape(car_102,rectangle).
  202open_car(car_101).
  203open_car(car_102).
  204load(car_101,rectangle,1).
  205load(car_102,rectangle,2).
  206wheels(car_101,2).
  207wheels(car_102,2).
  208:- end_bg.  209
  210in([]).
  211
  212fold(train,[east1, east2, east3, east4, east5, west6, west7, west8, west9, west10]).
  213
  214output(eastbound/0).    %ariety is 1 parameter less
  215
  216input_cw(short/1).
  217input_cw(long/1).
  218input_cw(closed/1).
  219input_cw(open_car/1).
  220input_cw(double/1).
  221input_cw(jagged/1).
  222input_cw(shape/2).
  223input_cw(load/3).
  224input_cw(wheels/2).
  225input_cw(has_car/1).    %ariety is 1 parameter less
  226
  227modeh(1,eastbound).
  228modeb(*,has_car(-car)).
  229modeb(1,short(+car)).
  230modeb(1,closed(+car)).
  231modeb(1,long(+car)).
  232modeb(1,open_car(+car)).
  233modeb(1,double(+car)).
  234modeb(1,jagged(+car)).
  235modeb(1,shape(+car,#shape)).
  236modeb(1,load(+car,#shape,#int)).
  237modeb(1,wheels(+car,#int)).
  238
  239determination(eastbound/0,short/1).
  240determination(eastbound/0,closed/1).
  241determination(eastbound/0,long/1).
  242determination(eastbound/0,open_car/1).
  243determination(eastbound/0,double/1).
  244determination(eastbound/0,jagged/1).
  245determination(eastbound/0,shape/2).
  246determination(eastbound/0,wheels/2).
  247determination(eastbound/0,has_car/1).
  248determination(eastbound/0,load/3).
  249
  250%%%%%%%%%%
  251%database%
  252%%%%%%%%%%
  253
  254% eastbound train 1
  255has_car(east1,car_11). % 11,12
  256has_car(east1,car_12).
  257has_car(east1,car_13).
  258has_car(east1,car_14).
  259
  260% eastbound train 2
  261has_car(east2,car_21).
  262has_car(east2,car_22).
  263has_car(east2,car_23).
  264
  265% eastbound train 3
  266has_car(east3,car_31).
  267has_car(east3,car_32).
  268has_car(east3,car_33).
  269
  270% eastbound train 4
  271has_car(east4,car_41).
  272has_car(east4,car_42).
  273has_car(east4,car_43).
  274has_car(east4,car_44).
  275
  276% eastbound train 5
  277has_car(east5,car_51).
  278has_car(east5,car_52).
  279has_car(east5,car_53).
  280
  281% westbound train 6
  282has_car(west6,car_61).
  283has_car(west6,car_62).
  284
  285% westbound train 7
  286has_car(west7,car_71).
  287has_car(west7,car_72).
  288has_car(west7,car_73).
  289
  290% westbound train 8
  291has_car(west8,car_81).
  292has_car(west8,car_82).
  293
  294% westbound train 9
  295has_car(west9,car_91).
  296has_car(west9,car_92).
  297has_car(west9,car_93).
  298has_car(west9,car_94).
  299
  300% westbound train 10
  301has_car(west10,car_101).
  302has_car(west10,car_102).
  303
  304eastbound(east1).
  305eastbound(east2).
  306eastbound(east3).
  307eastbound(east4).
  308eastbound(east5).
  309neg(eastbound(west6)).
  310neg(eastbound(west7)).
  311neg(eastbound(west8)).
  312neg(eastbound(west9)).
  313neg(eastbound(west10))