2:-include(library('ec_planner/ec_test_incl')).    3% 
    4%;
    5%; Copyright (c) 2005 IBM Corporation and others.
    6%; All rights reserved. This program and the accompanying materials
    7%; are made available under the terms of the Common Public License v1.0
    8%; which accompanies this distribution, and is available at
    9%; http://www.eclipse.org/legal/cpl-v10.html
   10%;
   11%; Contributors:
   12%; IBM - Initial implementation
   13%;
   14%; @book{Mueller:2006,
   15%;   author = "Erik T. Mueller",
   16%;   year = "2006",
   17%;   title = "Commonsense Reasoning",
   18%;   address = "San Francisco",
   19%;   publisher = "Morgan Kaufmann/Elsevier",
   20%; }
   21%;
   22% examples/Mueller2006/Exercises/MixingPaints.e:19
   23% 
   24% load foundations/Root.e
   25% load foundations/EC.e
   26% 
   27% sort palette
   28 /*
   29.
   30*/
   31.
   32
   33% sort color
   34 /*
   35.
   36*/
   37.
   38
   39% examples/Mueller2006/Exercises/MixingPaints.e:25
   40% 
   41% palette Palette1
   42 /*
   43.
   44*/
   45.
   46.
   47
   48% color Red, Yellow, Blue, Green
   49 /*
   50.
   51*/
   52.
   53.
   54
   55 /*
   56.
   57*/
   58.
   59.
   60
   61 /*
   62.
   63*/
   64.
   65.
   66
   67 /*
   68.
   69*/
   70.
   71.
   72
   73% 
   74% event PlaceOnPalette(palette,color)
   75 /*
   76.
   77*/
   78.
   79
   80% fluent OnPalette(palette,color)
   81 /*
   82.
   83*/
   84.
   85
   86% examples/Mueller2006/Exercises/MixingPaints.e:31
   87% 
   88% examples/Mueller2006/Exercises/MixingPaints.e:32
   89% [palette,color,time]% 
   90% !Happens(PlaceOnPalette(palette,Yellow),time) |
   91% !Happens(PlaceOnPalette(palette,Blue),time) ->
   92% Initiates(PlaceOnPalette(palette,color),OnPalette(palette,color),time).
   93 /*
   94.
   95*/
   96.
   97
   98% 
   99% 
  100% examples/Mueller2006/Exercises/MixingPaints.e:37
  101% [palette,color1,color2,time]% 
  102% Happens(PlaceOnPalette(palette,Yellow),time) &
  103% color1 = Blue &
  104% color2 = Green ->
  105% Initiates(PlaceOnPalette(palette,color1),OnPalette(palette,color2),time).
  106 /*
  107happens(placeOnPalette(Palette, yellow), Time), Color1=blue, Color2=green ->
  108    initiates(placeOnPalette(Palette, Color1),
  109              onPalette(Palette, Color2),
  110              Time).
  111*/
  112.
  113
  114% 
  115% 
  116% examples/Mueller2006/Exercises/MixingPaints.e:43
  117% [palette,color1,color2,time]% 
  118% !(Happens(PlaceOnPalette(palette,Yellow),time) &
  119%   Happens(PlaceOnPalette(palette,Blue),time)) &
  120% HoldsAt(OnPalette(palette,color1),time) &
  121% color1 != color2 ->
  122% Terminates(PlaceOnPalette(palette,color2),OnPalette(palette,color1),time).
  123 /*
  124not((happens(placeOnPalette(Palette, yellow), Time), happens(placeOnPalette(Palette, blue), Time))), holds_at(onPalette(Palette, Color1), Time), Color1\=Color2 ->
  125    terminates(placeOnPalette(Palette, Color2),
  126               onPalette(Palette, Color1),
  127               Time).
  128*/
  129.
  130
  131% 
  132% examples/Mueller2006/Exercises/MixingPaints.e:49
  133% 
  134% examples/Mueller2006/Exercises/MixingPaints.e:50
  135% [palette,color1,color2,time]% 
  136% Happens(PlaceOnPalette(palette,Yellow),time) &
  137% HoldsAt(OnPalette(palette,color2),time) &
  138% color1 = Blue &
  139% color2 != Green ->
  140% Terminates(PlaceOnPalette(palette,color1),OnPalette(palette,color2),time).
  141 /*
  142happens(placeOnPalette(Palette, yellow), Time), holds_at(onPalette(Palette, Color2), Time), Color1=blue, Color2\=green ->
  143    terminates(placeOnPalette(Palette, Color1),
  144               onPalette(Palette, Color2),
  145               Time).
  146*/
  147.
  148
  149% 
  150% examples/Mueller2006/Exercises/MixingPaints.e:56
  151% 
  152%; state constraint
  153% 
  154% examples/Mueller2006/Exercises/MixingPaints.e:59
  155% [palette,color1,color2,time]% 
  156% HoldsAt(OnPalette(palette,color1),time) &
  157% HoldsAt(OnPalette(palette,color2),time) ->
  158% color1 = color2.
  159 /*
  160holds_at(onPalette(Palette, Color1), Time), holds_at(onPalette(Palette, Color2), Time) ->
  161    Color1=Color2.
  162*/
  163.
  164
  165% 
  166% 
  167%; (1) place green over red
  168% examples/Mueller2006/Exercises/MixingPaints.e:65
  169% HoldsAt(OnPalette(Palette1,Red),0).
  170 /*
  171.
  172*/
  173.
  174
  175% 
  176% Delta:
  177 /*
  178.
  179*/
  180.
  181
  182 % Happens(PlaceOnPalette(Palette1,Green),0).
  183 /*
  184.
  185*/
  186.
  187
  188% 
  189% 
  190%; (2) place yellow+blue over green
  191% Delta:
  192 /*
  193.
  194*/
  195.
  196
  197 % Happens(PlaceOnPalette(Palette1,Yellow),1).
  198 /*
  199.
  200*/
  201.
  202
  203% 
  204% Delta:
  205 /*
  206.
  207*/
  208.
  209
  210 % Happens(PlaceOnPalette(Palette1,Blue),1).
  211 /*
  212.
  213*/
  214.
  215
  216% 
  217% examples/Mueller2006/Exercises/MixingPaints.e:71
  218% 
  219%; (3) place yellow
  220% Delta:
  221 /*
  222.
  223*/
  224.
  225
  226 % Happens(PlaceOnPalette(Palette1,Yellow),2).
  227 /*
  228.
  229*/
  230.
  231
  232% 
  233% 
  234%; (4) place blue
  235% Delta:
  236 /*
  237.
  238*/
  239.
  240
  241 % Happens(PlaceOnPalette(Palette1,Blue),3).
  242 /*
  243.
  244*/
  245.
  246
  247% 
  248% examples/Mueller2006/Exercises/MixingPaints.e:77
  249% 
  250%; (5) place green
  251% Delta:
  252 /*
  253.
  254*/
  255.
  256
  257 % Happens(PlaceOnPalette(Palette1,Yellow),4).
  258 /*
  259.
  260*/
  261.
  262
  263% 
  264% Delta:
  265 /*
  266.
  267*/
  268.
  269
  270 % Happens(PlaceOnPalette(Palette1,Blue),4).
  271 /*
  272.
  273*/
  274.
  275
  276% 
  277% 
  278% completion Delta Happens
  279 /*
  280.
  281*/
  282.
  283
  284 /*
  285.
  286*/
  287.
  288
  289% examples/Mueller2006/Exercises/MixingPaints.e:83
  290% 
  291% range time 0 5
  292 /*
  293.
  294*/
  295.
  296
  297% range offset 1 1
  298 /*
  299.
  300*/
  301.
  302
  303% 
  304%; End of file.