:-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/Counter.e',91). % translate: unskipped File: /pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/MixingPaints.e.lps :-include(library('ec_planner/ec_test_incl')). :-expects_dialect(lps). % translate: begining File: /pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/MixingPaints.e.lps % Fri, 09 Oct 2020 15:14:39 GMT File: (0x5625a94d2d00)%; %; Copyright (c) 2005 IBM Corporation and others. %; All rights reserved. This program and the accompanying materials %; are made available under the terms of the Common Public License v1.0 %; which accompanies this distribution, and is available at %; http://www.eclipse.org/legal/cpl-v10.html %; %; Contributors: %; IBM - Initial implementation %; %; @book{Mueller:2006, %; author = "Erik T. Mueller", %; year = "2006", %; title = "Commonsense Reasoning", %; address = "San Francisco", %; publisher = "Morgan Kaufmann/Elsevier", %; } %; :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/MixingPaints.e',20). % load foundations/Root.e :- if(is_e_toplevel). :- load_e_cond('foundations/Root.e', changed). % load('/pack/logicmoo_ec/ext/ec_sources/foundations/Root.e',changed). :- endif. % load foundations/EC.e :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/MixingPaints.e',20). :- if(is_e_toplevel). :- load_e_cond('foundations/EC.e', changed). % load('/pack/logicmoo_ec/ext/ec_sources/foundations/EC.e',changed). :- endif. :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/MixingPaints.e',23). % sort palette % From E: % % sort(palette). sort(palette). % sort color :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/MixingPaints.e',23). % From E: % % sort(color). sort(color). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/MixingPaints.e',26). % palette Palette1 % From E: % % t(palette,palette1). palette(palette1). % color Red, Yellow, Blue, Green :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/MixingPaints.e',26). % From E: % % t(color,red). color(red). % From E: % % t(color,yellow). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/MixingPaints.e',26). color(yellow). % From E: % % t(color,blue). color(blue). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/MixingPaints.e',26). % From E: % % t(color,green). color(green). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/MixingPaints.e',29). % event PlaceOnPalette(palette,color) % From E: % % event( % placeOnPalette(palette,color)). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/MixingPaints.e',29). events([placeOnPalette/2]). % From E: % % mpred_prop( % placeOnPalette(palette,color), % event). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/MixingPaints.e',29). mpred_prop(placeOnPalette(palette,color),event). % fluent OnPalette(palette,color) % From E: % % fluent( % onPalette(palette,color)). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/MixingPaints.e',29). fluents([onPalette/2]). % From E: % % mpred_prop( % onPalette(palette,color), % fluent). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/MixingPaints.e',29). mpred_prop(onPalette(palette,color),fluent). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/MixingPaints.e',32). % [palette,color,time] % !Happens(PlaceOnPalette(palette,Yellow),time) | % !Happens(PlaceOnPalette(palette,Blue),time) -> % Initiates(PlaceOnPalette(palette,color),OnPalette(palette,color),time). % From E: % % '->'( % ';'( % not( % placeOnPalette(Palette,yellow)), % not( % placeOnPalette(Palette,blue))), % initiates( % placeOnPalette(Palette,Color), % onPalette(Palette,Color), % Time)). placeOnPalette(Palette, Color)initiates onPalette(Palette, Color)at Time if not placeOnPalette(Palette, yellow);not placeOnPalette(Palette, blue). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/MixingPaints.e',32). /* initiated(happens(placeOnPalette(Palette, Color), Time_From, Time_Until), at(onPalette(Palette, Color), Time), [ (not(placeOnPalette(Palette, yellow));not(placeOnPalette(Palette, blue))) ]). */ % "% =================================". % [palette,color1,color2,time] % Happens(PlaceOnPalette(palette,Yellow),time) & % color1 = Blue & % color2 = Green -> % Initiates(PlaceOnPalette(palette,color1),OnPalette(palette,color2),time). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/MixingPaints.e',38). % From E: % % '->'( % ','( % placeOnPalette(Palette,yellow), % ','( % equals(Color1,blue), % equals(Color2,green))), % initiates( % placeOnPalette(Palette,Color1), % onPalette(Palette,Color2), % Time)). placeOnPalette(Palette, Color1)initiates onPalette(Palette, Color2)at Time if placeOnPalette(Palette, yellow), equals(Color1, blue), equals(Color2, green). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/MixingPaints.e',38). /* initiated(happens(placeOnPalette(Palette,Color1), Time_From, Time_Until), at(onPalette(Palette,Color2),Time), [ happens(placeOnPalette(Palette,yellow), Time_From, Time_Until), equals(Color1,blue), equals(Color2,green) ]). */ % "% =================================". % [palette,color1,color2,time] % !(Happens(PlaceOnPalette(palette,Yellow),time) & % Happens(PlaceOnPalette(palette,Blue),time)) & % HoldsAt(OnPalette(palette,color1),time) & % color1 != color2 -> % Terminates(PlaceOnPalette(palette,color2),OnPalette(palette,color1),time). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/MixingPaints.e',44). % From E: % % '->'( % ','( % ';'( % not( % placeOnPalette(Palette,yellow)), % not( % placeOnPalette(Palette,blue))), % ','( % holds_at( % onPalette(Palette,Color1), % Time), % {}( % dif(Color1,Color2)))), % terminates( % placeOnPalette(Palette,Color2), % onPalette(Palette,Color1), % Time)). placeOnPalette(Palette, Color2)terminates onPalette(Palette, Color1)at Time if (not placeOnPalette(Palette, yellow);not placeOnPalette(Palette, blue)), onPalette(Palette, Color1)at Time, {dif(Color1, Color2)}. :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/MixingPaints.e',44). /* terminated(happens(placeOnPalette(Palette, Color2), Time_From, Time_Until), at(onPalette(Palette, Color1), Time), [ (not(placeOnPalette(Palette, yellow));not(placeOnPalette(Palette, blue))), holds(onPalette(Palette, Color1), Time), { dif(Color1, Color2) } ]). */ % "% =================================". % [palette,color1,color2,time] % Happens(PlaceOnPalette(palette,Yellow),time) & % HoldsAt(OnPalette(palette,color2),time) & % color1 = Blue & % color2 != Green -> % Terminates(PlaceOnPalette(palette,color1),OnPalette(palette,color2),time). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/MixingPaints.e',51). % From E: % % '->'( % ','( % placeOnPalette(Palette,yellow), % ','( % holds_at( % onPalette(Palette,Color2), % Time), % ','( % equals(Color1,blue), % {}( % dif(Color2,green))))), % terminates( % placeOnPalette(Palette,Color1), % onPalette(Palette,Color2), % Time)). placeOnPalette(Palette, Color1)terminates onPalette(Palette, Color2)at Time if placeOnPalette(Palette, yellow), onPalette(Palette, Color2)at Time, equals(Color1, blue), {dif(Color2, green)}. :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/MixingPaints.e',51). /* terminated(happens(placeOnPalette(Palette,Color1), Time_From, Time_Until), at(onPalette(Palette,Color2),Time), [ happens(placeOnPalette(Palette,yellow), Time_From, Time_Until), holds(onPalette(Palette,Color2),Time), equals(Color1,blue), {dif(Color2,green)} ]). */ % "% =================================". %; state constraint % [palette,color1,color2,time] % HoldsAt(OnPalette(palette,color1),time) & % HoldsAt(OnPalette(palette,color2),time) -> % color1 = color2. :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/MixingPaints.e',59). % From E: % % '->'( % ','( % holds_at( % onPalette(Palette,Color1), % Time), % holds_at( % onPalette(Palette,Color2), % Time)), % equals(Color1,Color2)). if onPalette(Palette, Color1)at Time, onPalette(Palette, Color2)at Time then equals(Color1, Color2). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/MixingPaints.e',59). /* reactive_rule([ holds(onPalette(Palette,Color1),Time), holds(onPalette(Palette,Color2),Time) ], [equals(Color1,Color2)]). */ % "% =================================". %; (1) place green over red :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/MixingPaints.e',65). % HoldsAt(OnPalette(Palette1,Red),0). % From E: % % initially( % onPalette(palette1,red)). initially onPalette(palette1, red). % initial_state([onPalette(palette1,red)]). % "% =================================". % Delta: % Happens(PlaceOnPalette(Palette1,Green),0). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/MixingPaints.e',65). % From E: % % '->'( % axiom_uses(delta,Axiom_Uses), % happens( % placeOnPalette(palette1,green), % t+0)). if axiom_uses(delta, _)then observe placeOnPalette(palette1, green)at t+0. :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/MixingPaints.e',65). /* reactive_rule([axiom_uses(delta,Axiom_Uses)], [observe(at(placeOnPalette(palette1,green),t+0))]). */ % "% =================================". %; (2) place yellow+blue over green :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/MixingPaints.e',69). % Delta: % Happens(PlaceOnPalette(Palette1,Yellow),1). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/MixingPaints.e',69). % From E: % % '->'( % axiom_uses(delta,Axiom_Uses), % happens( % placeOnPalette(palette1,yellow), % t+1)). if axiom_uses(delta, _)then observe placeOnPalette(palette1, yellow)at t+1. :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/MixingPaints.e',69). /* reactive_rule([axiom_uses(delta,Axiom_Uses)], [observe(at(placeOnPalette(palette1,yellow),t+1))]). */ % "% =================================". % Delta: % Happens(PlaceOnPalette(Palette1,Blue),1). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/MixingPaints.e',69). % From E: % % '->'( % axiom_uses(delta,Axiom_Uses), % happens( % placeOnPalette(palette1,blue), % t+1)). if axiom_uses(delta, _)then observe placeOnPalette(palette1, blue)at t+1. :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/MixingPaints.e',69). /* reactive_rule([axiom_uses(delta,Axiom_Uses)], [observe(at(placeOnPalette(palette1,blue),t+1))]). */ % "% =================================". %; (3) place yellow :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/MixingPaints.e',73). % Delta: % Happens(PlaceOnPalette(Palette1,Yellow),2). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/MixingPaints.e',73). % From E: % % '->'( % axiom_uses(delta,Axiom_Uses), % happens( % placeOnPalette(palette1,yellow), % t+2)). if axiom_uses(delta, _)then observe placeOnPalette(palette1, yellow)at t+2. :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/MixingPaints.e',73). /* reactive_rule([axiom_uses(delta,Axiom_Uses)], [observe(at(placeOnPalette(palette1,yellow),t+2))]). */ % "% =================================". :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/MixingPaints.e',75). %; (4) place blue % Delta: % Happens(PlaceOnPalette(Palette1,Blue),3). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/MixingPaints.e',75). % From E: % % '->'( % axiom_uses(delta,Axiom_Uses), % happens( % placeOnPalette(palette1,blue), % t+3)). if axiom_uses(delta, _)then observe placeOnPalette(palette1, blue)at t+3. :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/MixingPaints.e',75). /* reactive_rule([axiom_uses(delta,Axiom_Uses)], [observe(at(placeOnPalette(palette1,blue),t+3))]). */ % "% =================================". %; (5) place green :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/MixingPaints.e',79). % Delta: % Happens(PlaceOnPalette(Palette1,Yellow),4). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/MixingPaints.e',79). % From E: % % '->'( % axiom_uses(delta,Axiom_Uses), % happens( % placeOnPalette(palette1,yellow), % t+4)). if axiom_uses(delta, _)then observe placeOnPalette(palette1, yellow)at t+4. :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/MixingPaints.e',79). /* reactive_rule([axiom_uses(delta,Axiom_Uses)], [observe(at(placeOnPalette(palette1,yellow),t+4))]). */ % "% =================================". % Delta: % Happens(PlaceOnPalette(Palette1,Blue),4). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/MixingPaints.e',79). % From E: % % '->'( % axiom_uses(delta,Axiom_Uses), % happens( % placeOnPalette(palette1,blue), % t+4)). if axiom_uses(delta, _)then observe placeOnPalette(palette1, blue)at t+4. :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/MixingPaints.e',79). /* reactive_rule([axiom_uses(delta,Axiom_Uses)], [observe(at(placeOnPalette(palette1,blue),t+4))]). */ % "% =================================". % completion Delta Happens :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/MixingPaints.e',81). % From E: % % completion(delta). completion(delta). % From E: % % completion(happens). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/MixingPaints.e',81). completion(happens). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/MixingPaints.e',84). % range time 0 5 % From E: % % range(time,0,5). range(time,0,5). % range offset 1 1 :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/MixingPaints.e',84). % From E: % % range(offset,1,1). range(offset,1,1). %; End of file. % translate: ending File: /pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/MixingPaints.e.lps