:-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/TeacherTells.e',69). % translate: unskipped File: /pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/TelephoneBugs.e.lps :-include(library('ec_planner/ec_test_incl')). :-expects_dialect(lps). % translate: begining File: /pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/TelephoneBugs.e.lps % Fri, 09 Oct 2020 15:14:43 GMT File: (0x5625a971cc00)%; %; 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 %; %; Example: Telephone %; %; @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/TelephoneBugs.e',22). % 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/TelephoneBugs.e',22). :- 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/TelephoneBugs.e',25). % sort agent % From E: % % sort(agent). sort(agent). % sort phone :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/TelephoneBugs.e',25). % From E: % % sort(phone). sort(phone). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/TelephoneBugs.e',28). % agent Agent1, Agent2 % From E: % % t(agent,agent1). agent(agent1). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/TelephoneBugs.e',28). % From E: % % t(agent,agent2). agent(agent2). % phone Phone1, Phone2 :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/TelephoneBugs.e',28). % From E: % % t(phone,phone1). phone(phone1). % From E: % % t(phone,phone2). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/TelephoneBugs.e',28). phone(phone2). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/TelephoneBugs.e',31). % fluent Ringing(phone,phone) % From E: % % fluent( % ringing(phone,phone)). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/TelephoneBugs.e',31). fluents([ringing/2]). % From E: % % mpred_prop( % ringing(phone,phone), % fluent). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/TelephoneBugs.e',31). mpred_prop(ringing(phone,phone),fluent). % fluent DialTone(phone) % From E: % % fluent( % dialTone(phone)). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/TelephoneBugs.e',31). fluents([dialTone/1]). % From E: % % mpred_prop( % dialTone(phone), % fluent). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/TelephoneBugs.e',31). mpred_prop(dialTone(phone),fluent). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/TelephoneBugs.e',33). % fluent BusySignal(phone) % From E: % % fluent( % busySignal(phone)). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/TelephoneBugs.e',33). fluents([busySignal/1]). % From E: % % mpred_prop( % busySignal(phone), % fluent). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/TelephoneBugs.e',33). mpred_prop(busySignal(phone),fluent). % fluent Idle(phone) % From E: % % fluent( % idle(phone)). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/TelephoneBugs.e',33). fluents([idle/1]). % From E: % % mpred_prop( % idle(phone), % fluent). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/TelephoneBugs.e',33). mpred_prop(idle(phone),fluent). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/TelephoneBugs.e',35). % fluent Connected(phone,phone) % From E: % % fluent( % connected(phone,phone)). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/TelephoneBugs.e',35). fluents([connected/2]). % From E: % % mpred_prop( % connected(phone,phone), % fluent). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/TelephoneBugs.e',35). mpred_prop(connected(phone,phone),fluent). % fluent Disconnected(phone) % From E: % % fluent( % disconnected(phone)). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/TelephoneBugs.e',35). fluents([disconnected/1]). % From E: % % mpred_prop( % disconnected(phone), % fluent). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/TelephoneBugs.e',35). mpred_prop(disconnected(phone),fluent). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/TelephoneBugs.e',38). % event PickUp(agent,phone) % From E: % % event( % pickUp(agent,phone)). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/TelephoneBugs.e',38). events([pickUp/2]). % From E: % % mpred_prop( % pickUp(agent,phone), % event). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/TelephoneBugs.e',38). mpred_prop(pickUp(agent,phone),event). % event SetDown(agent,phone) % From E: % % event( % setDown(agent,phone)). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/TelephoneBugs.e',38). events([setDown/2]). % From E: % % mpred_prop( % setDown(agent,phone), % event). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/TelephoneBugs.e',38). mpred_prop(setDown(agent,phone),event). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/TelephoneBugs.e',40). % event Dial(agent,phone,phone) % From E: % % event( % dial(agent,phone,phone)). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/TelephoneBugs.e',40). events([dial/3]). % From E: % % mpred_prop( % dial(agent,phone,phone), % event). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/TelephoneBugs.e',40). mpred_prop(dial(agent,phone,phone),event). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/TelephoneBugs.e',42). %; Sigma % [agent,phone,time] % HoldsAt(Idle(phone),time) -> % Initiates(PickUp(agent,phone),DialTone(phone),time). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/TelephoneBugs.e',44). % From E: % % '->'( % holds_at( % idle(Phone), % Time), % initiates( % pickUp(Agent,Phone), % dialTone(Phone), % Time)). pickUp(Agent, Phone)initiates dialTone(Phone)at Time if idle(Phone)at Time. :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/TelephoneBugs.e',44). /* initiated(happens(pickUp(Agent,Phone), Time, Time_Until), at(dialTone(Phone),Time), [holds(idle(Phone),Time)]). */ % "% =================================". % [agent,phone,time] % HoldsAt(Idle(phone),time) -> % Terminates(PickUp(agent,phone),Idle(phone),time). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/TelephoneBugs.e',49). % From E: % % '->'( % holds_at( % idle(Phone), % Time), % terminates( % pickUp(Agent,Phone), % idle(Phone), % Time)). pickUp(Agent, Phone)terminates idle(Phone)at Time if idle(Phone)at Time. /* terminated(happens(pickUp(Agent,Phone), Time, Time_Until), at(idle(Phone),Time), [holds(idle(Phone),Time)]). */ % "% =================================". % [agent,phone,time] % HoldsAt(DialTone(phone),time) -> % Initiates(SetDown(agent,phone),Idle(phone),time). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/TelephoneBugs.e',53). % From E: % % '->'( % holds_at( % dialTone(Phone), % Time), % initiates( % setDown(Agent,Phone), % idle(Phone), % Time)). setDown(Agent, Phone)initiates idle(Phone)at Time if dialTone(Phone)at Time. /* initiated(happens(setDown(Agent,Phone), Time, Time_Until), at(idle(Phone),Time), [holds(dialTone(Phone),Time)]). */ % "% =================================". % [agent,phone,time] % HoldsAt(DialTone(phone),time) -> % Terminates(SetDown(agent,phone),DialTone(phone),time). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/TelephoneBugs.e',57). % From E: % % '->'( % holds_at( % dialTone(Phone), % Time), % terminates( % setDown(Agent,Phone), % dialTone(Phone), % Time)). setDown(Agent, Phone)terminates dialTone(Phone)at Time if dialTone(Phone)at Time. /* terminated(happens(setDown(Agent,Phone), Time, Time_Until), at(dialTone(Phone),Time), [holds(dialTone(Phone),Time)]). */ % "% =================================". % [agent,phone1,phone2,time] % HoldsAt(DialTone(phone1),time) & % HoldsAt(Idle(phone2),time) -> % Initiates(Dial(agent,phone1,phone2),Ringing(phone1,phone2),time). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/TelephoneBugs.e',61). % From E: % % '->'( % ','( % holds_at( % dialTone(Phone1), % Time), % holds_at( % idle(Phone2), % Time)), % initiates( % dial(Agent,Phone1,Phone2), % ringing(Phone1,Phone2), % Time)). dial(Agent, Phone1, Phone2)initiates ringing(Phone1, Phone2)at Time if dialTone(Phone1)at Time, idle(Phone2)at Time. :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/TelephoneBugs.e',61). /* initiated(happens(dial(Agent,Phone1,Phone2), Time_From, Time_Until), at(ringing(Phone1,Phone2),Time), [ holds(dialTone(Phone1),Time), holds(idle(Phone2),Time) ]). */ % "% =================================". % [agent,phone1,phone2,time] % HoldsAt(DialTone(phone1),time) & % HoldsAt(Idle(phone2),time) -> % Terminates(Dial(agent,phone1,phone2),DialTone(phone1),time). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/TelephoneBugs.e',66). % From E: % % '->'( % ','( % holds_at( % dialTone(Phone1), % Time), % holds_at( % idle(Phone2), % Time)), % terminates( % dial(Agent,Phone1,Phone2), % dialTone(Phone1), % Time)). dial(Agent, Phone1, Phone2)terminates dialTone(Phone1)at Time if dialTone(Phone1)at Time, idle(Phone2)at Time. :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/TelephoneBugs.e',66). /* terminated(happens(dial(Agent,Phone1,Phone2), Time_From, Time_Until), at(dialTone(Phone1),Time), [ holds(dialTone(Phone1),Time), holds(idle(Phone2),Time) ]). */ % "% =================================". % [agent,phone1,phone2,time] % HoldsAt(DialTone(phone1),time) & % HoldsAt(Idle(phone2),time) -> % Terminates(Dial(agent,phone1,phone2),Idle(phone2),time). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/TelephoneBugs.e',71). % From E: % % '->'( % ','( % holds_at( % dialTone(Phone1), % Time), % holds_at( % idle(Phone2), % Time)), % terminates( % dial(Agent,Phone1,Phone2), % idle(Phone2), % Time)). dial(Agent, Phone1, Phone2)terminates idle(Phone2)at Time if dialTone(Phone1)at Time, idle(Phone2)at Time. :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/TelephoneBugs.e',71). /* terminated(happens(dial(Agent,Phone1,Phone2), Time_From, Time_Until), at(idle(Phone2),Time), [ holds(dialTone(Phone1),Time), holds(idle(Phone2),Time) ]). */ % "% =================================". % [agent,phone1,phone2,time] % HoldsAt(DialTone(phone1),time) & % !HoldsAt(Idle(phone2),time) -> % Initiates(Dial(agent,phone1,phone2),BusySignal(phone1),time). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/TelephoneBugs.e',76). % From E: % % '->'( % ','( % holds_at( % dialTone(Phone1), % Time), % holds_at( % not( % idle(Phone2)), % Time)), % initiates( % dial(Agent,Phone1,Phone2), % busySignal(Phone1), % Time)). dial(Agent, Phone1, Phone2)initiates busySignal(Phone1)at Time if dialTone(Phone1)at Time, not idle(Phone2)at Time. :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/TelephoneBugs.e',76). /* initiated(happens(dial(Agent,Phone1,Phone2), Time_From, Time_Until), at(busySignal(Phone1),Time), [ holds(dialTone(Phone1),Time), holds(not(idle(Phone2)),Time) ]). */ % "% =================================". % [agent,phone1,phone2,time] % HoldsAt(DialTone(phone1),time) & % !HoldsAt(Idle(phone2),time) -> % Terminates(Dial(agent,phone1,phone2),DialTone(phone1),time). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/TelephoneBugs.e',81). % From E: % % '->'( % ','( % holds_at( % dialTone(Phone1), % Time), % holds_at( % not( % idle(Phone2)), % Time)), % terminates( % dial(Agent,Phone1,Phone2), % dialTone(Phone1), % Time)). dial(Agent, Phone1, Phone2)terminates dialTone(Phone1)at Time if dialTone(Phone1)at Time, not idle(Phone2)at Time. :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/TelephoneBugs.e',81). /* terminated(happens(dial(Agent,Phone1,Phone2), Time_From, Time_Until), at(dialTone(Phone1),Time), [ holds(dialTone(Phone1),Time), holds(not(idle(Phone2)),Time) ]). */ % "% =================================". % [agent,phone,time] % HoldsAt(BusySignal(phone),time) -> % Initiates(SetDown(agent,phone),Idle(phone),time). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/TelephoneBugs.e',86). % From E: % % '->'( % holds_at( % busySignal(Phone), % Time), % initiates( % setDown(Agent,Phone), % idle(Phone), % Time)). setDown(Agent, Phone)initiates idle(Phone)at Time if busySignal(Phone)at Time. /* initiated(happens(setDown(Agent,Phone), Time, Time_Until), at(idle(Phone),Time), [holds(busySignal(Phone),Time)]). */ % "% =================================". % [agent,phone,time] % HoldsAt(BusySignal(phone),time) -> % Terminates(SetDown(agent,phone),BusySignal(phone),time). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/TelephoneBugs.e',90). % From E: % % '->'( % holds_at( % busySignal(Phone), % Time), % terminates( % setDown(Agent,Phone), % busySignal(Phone), % Time)). setDown(Agent, Phone)terminates busySignal(Phone)at Time if busySignal(Phone)at Time. /* terminated(happens(setDown(Agent,Phone), Time, Time_Until), at(busySignal(Phone),Time), [holds(busySignal(Phone),Time)]). */ % "% =================================". % [agent,phone1,phone2,time] % HoldsAt(Ringing(phone1,phone2),time) -> % Initiates(SetDown(agent,phone1),Idle(phone1),time). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/TelephoneBugs.e',94). % From E: % % '->'( % holds_at( % ringing(Phone1,Phone2), % Time), % initiates( % setDown(Agent,Phone1), % idle(Phone1), % Time)). setDown(Agent, Phone1)initiates idle(Phone1)at Time if ringing(Phone1, Phone2)at Time. /* initiated(happens(setDown(Agent,Phone1), Time, Time_Until), at(idle(Phone1),Time), [holds(ringing(Phone1,Phone2),Time)]). */ % "% =================================". % [agent,phone1,phone2,time] % HoldsAt(Ringing(phone1,phone2),time) -> % Initiates(SetDown(agent,phone1),Idle(phone2),time). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/TelephoneBugs.e',98). % From E: % % '->'( % holds_at( % ringing(Phone1,Phone2), % Time), % initiates( % setDown(Agent,Phone1), % idle(Phone2), % Time)). setDown(Agent, Phone1)initiates idle(Phone2)at Time if ringing(Phone1, Phone2)at Time. /* initiated(happens(setDown(Agent,Phone1), Time, Time_Until), at(idle(Phone2),Time), [holds(ringing(Phone1,Phone2),Time)]). */ % "% =================================". % [agent,phone1,phone2,time] % HoldsAt(Ringing(phone1,phone2),time) -> % Terminates(SetDown(agent,phone1),Ringing(phone1,phone2),time). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/TelephoneBugs.e',102). % From E: % % '->'( % holds_at( % ringing(Phone1,Phone2), % Time), % terminates( % setDown(Agent,Phone1), % ringing(Phone1,Phone2), % Time)). setDown(Agent, Phone1)terminates ringing(Phone1, Phone2)at Time if ringing(Phone1, Phone2)at Time. /* terminated(happens(setDown(Agent,Phone1), Time, Time_Until), at(ringing(Phone1,Phone2),Time), [holds(ringing(Phone1,Phone2),Time)]). */ % "% =================================". % [agent,phone1,phone2,time] % HoldsAt(Ringing(phone1,phone2),time) -> % Initiates(PickUp(agent,phone2),Connected(phone1,phone2),time). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/TelephoneBugs.e',106). % From E: % % '->'( % holds_at( % ringing(Phone1,Phone2), % Time), % initiates( % pickUp(Agent,Phone2), % connected(Phone1,Phone2), % Time)). pickUp(Agent, Phone2)initiates connected(Phone1, Phone2)at Time if ringing(Phone1, Phone2)at Time. /* initiated(happens(pickUp(Agent,Phone2), Time, Time_Until), at(connected(Phone1,Phone2),Time), [holds(ringing(Phone1,Phone2),Time)]). */ % "% =================================". % [agent,phone1,phone2,time] % HoldsAt(Ringing(phone1,phone2),time) -> % Terminates(PickUp(agent,phone2),Ringing(phone1,phone2),time). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/TelephoneBugs.e',110). % From E: % % '->'( % holds_at( % ringing(Phone1,Phone2), % Time), % terminates( % pickUp(Agent,Phone2), % ringing(Phone1,Phone2), % Time)). pickUp(Agent, Phone2)terminates ringing(Phone1, Phone2)at Time if ringing(Phone1, Phone2)at Time. /* terminated(happens(pickUp(Agent,Phone2), Time, Time_Until), at(ringing(Phone1,Phone2),Time), [holds(ringing(Phone1,Phone2),Time)]). */ % "% =================================". % [agent,phone1,phone2,time] % HoldsAt(Connected(phone1,phone2),time) -> % Initiates(SetDown(agent,phone1),Idle(phone1),time). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/TelephoneBugs.e',114). % From E: % % '->'( % holds_at( % connected(Phone1,Phone2), % Time), % initiates( % setDown(Agent,Phone1), % idle(Phone1), % Time)). setDown(Agent, Phone1)initiates idle(Phone1)at Time if connected(Phone1, Phone2)at Time. /* initiated(happens(setDown(Agent,Phone1), Time, Time_Until), at(idle(Phone1),Time), [holds(connected(Phone1,Phone2),Time)]). */ % "% =================================". % [agent,phone1,phone2,time] % HoldsAt(Connected(phone1,phone2),time) -> % Initiates(SetDown(agent,phone1),Disconnected(phone2),time). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/TelephoneBugs.e',118). % From E: % % '->'( % holds_at( % connected(Phone1,Phone2), % Time), % initiates( % setDown(Agent,Phone1), % disconnected(Phone2), % Time)). setDown(Agent, Phone1)initiates disconnected(Phone2)at Time if connected(Phone1, Phone2)at Time. /* initiated(happens(setDown(Agent,Phone1), Time, Time_Until), at(disconnected(Phone2),Time), [holds(connected(Phone1,Phone2),Time)]). */ % "% =================================". % [agent,phone1,phone2,time] % HoldsAt(Connected(phone1,phone2),time) -> % Terminates(SetDown(agent,phone1),Connected(phone1,phone2),time). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/TelephoneBugs.e',122). % From E: % % '->'( % holds_at( % connected(Phone1,Phone2), % Time), % terminates( % setDown(Agent,Phone1), % connected(Phone1,Phone2), % Time)). setDown(Agent, Phone1)terminates connected(Phone1, Phone2)at Time if connected(Phone1, Phone2)at Time. /* terminated(happens(setDown(Agent,Phone1), Time, Time_Until), at(connected(Phone1,Phone2),Time), [holds(connected(Phone1,Phone2),Time)]). */ % "% =================================". % [agent,phone1,phone2,time] % HoldsAt(Connected(phone1,phone2),time) -> % Initiates(SetDown(agent,phone2),Idle(phone2),time). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/TelephoneBugs.e',126). % From E: % % '->'( % holds_at( % connected(Phone1,Phone2), % Time), % initiates( % setDown(Agent,Phone2), % idle(Phone2), % Time)). setDown(Agent, Phone2)initiates idle(Phone2)at Time if connected(Phone1, Phone2)at Time. /* initiated(happens(setDown(Agent,Phone2), Time, Time_Until), at(idle(Phone2),Time), [holds(connected(Phone1,Phone2),Time)]). */ % "% =================================". % [agent,phone1,phone2,time] % HoldsAt(Connected(phone1,phone2),time) -> % Initiates(SetDown(agent,phone2),Disconnected(phone1),time). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/TelephoneBugs.e',130). % From E: % % '->'( % holds_at( % connected(Phone1,Phone2), % Time), % initiates( % setDown(Agent,Phone2), % disconnected(Phone1), % Time)). setDown(Agent, Phone2)initiates disconnected(Phone1)at Time if connected(Phone1, Phone2)at Time. /* initiated(happens(setDown(Agent,Phone2), Time, Time_Until), at(disconnected(Phone1),Time), [holds(connected(Phone1,Phone2),Time)]). */ % "% =================================". % [agent,phone1,phone2,time] % HoldsAt(Connected(phone1,phone2),time) -> % Terminates(SetDown(agent,phone2),Connected(phone1,phone2),time). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/TelephoneBugs.e',134). % From E: % % '->'( % holds_at( % connected(Phone1,Phone2), % Time), % terminates( % setDown(Agent,Phone2), % connected(Phone1,Phone2), % Time)). setDown(Agent, Phone2)terminates connected(Phone1, Phone2)at Time if connected(Phone1, Phone2)at Time. /* terminated(happens(setDown(Agent,Phone2), Time, Time_Until), at(connected(Phone1,Phone2),Time), [holds(connected(Phone1,Phone2),Time)]). */ % "% =================================". % [agent,phone,time] % HoldsAt(Disconnected(phone),time) -> % Initiates(SetDown(agent,phone),Idle(phone),time). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/TelephoneBugs.e',138). % From E: % % '->'( % holds_at( % disconnected(Phone), % Time), % initiates( % setDown(Agent,Phone), % idle(Phone), % Time)). setDown(Agent, Phone)initiates idle(Phone)at Time if disconnected(Phone)at Time. /* initiated(happens(setDown(Agent,Phone), Time, Time_Until), at(idle(Phone),Time), [holds(disconnected(Phone),Time)]). */ % "% =================================". % [agent,phone,time] % HoldsAt(Disconnected(phone),time) -> % Terminates(SetDown(agent,phone),Disconnected(phone),time). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/TelephoneBugs.e',142). % From E: % % '->'( % holds_at( % disconnected(Phone), % Time), % terminates( % setDown(Agent,Phone), % disconnected(Phone), % Time)). setDown(Agent, Phone)terminates disconnected(Phone)at Time if disconnected(Phone)at Time. /* terminated(happens(setDown(Agent,Phone), Time, Time_Until), at(disconnected(Phone),Time), [holds(disconnected(Phone),Time)]). */ % "% =================================". %; Delta %; (1) Two agents dial each other simultaneously without first %; picking up phone. :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/TelephoneBugs.e',149). % Happens(Dial(Agent1,Phone1,Phone2),0). % From E: % % happens( % dial(agent1,phone1,phone2), % t+0). observe dial(agent1, phone1, phone2)at t+0. % observe([dial(agent1,phone1,phone2)],t+0). % "% =================================". % Happens(Dial(Agent2,Phone2,Phone1),0). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/TelephoneBugs.e',149). % From E: % % happens( % dial(agent2,phone2,phone1), % t+0). observe dial(agent2, phone2, phone1)at t+0. % observe([dial(agent2,phone2,phone1)],t+0). % "% =================================". %; (2) Two agents dial each other simultaneously. :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/TelephoneBugs.e',153). % Happens(PickUp(Agent1,Phone1),1). % From E: % % happens( % pickUp(agent1,phone1), % t+1). observe pickUp(agent1, phone1)at t+1. % observe([pickUp(agent1,phone1)],t+1). % "% =================================". % Happens(PickUp(Agent2,Phone2),1). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/TelephoneBugs.e',153). % From E: % % happens( % pickUp(agent2,phone2), % t+1). observe pickUp(agent2, phone2)at t+1. % observe([pickUp(agent2,phone2)],t+1). % "% =================================". :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/TelephoneBugs.e',155). % Happens(Dial(Agent1,Phone1,Phone2),2). % From E: % % happens( % dial(agent1,phone1,phone2), % t+2). observe dial(agent1, phone1, phone2)at t+2. % observe([dial(agent1,phone1,phone2)],t+2). % "% =================================". % Happens(Dial(Agent2,Phone2,Phone1),2). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/TelephoneBugs.e',155). % From E: % % happens( % dial(agent2,phone2,phone1), % t+2). observe dial(agent2, phone2, phone1)at t+2. % observe([dial(agent2,phone2,phone1)],t+2). % "% =================================". :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/TelephoneBugs.e',157). % Happens(SetDown(Agent1,Phone1),3). % From E: % % happens( % setDown(agent1,phone1), % t+3). observe setDown(agent1, phone1)at t+3. % observe([setDown(agent1,phone1)],t+3). % "% =================================". % Happens(SetDown(Agent2,Phone2),3). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/TelephoneBugs.e',157). % From E: % % happens( % setDown(agent2,phone2), % t+3). observe setDown(agent2, phone2)at t+3. % observe([setDown(agent2,phone2)],t+3). % "% =================================". %; (3) One agent dials another agent just as the other %; agent picks up the phone. :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/TelephoneBugs.e',162). % Happens(PickUp(Agent1,Phone1),4). % From E: % % happens( % pickUp(agent1,phone1), % t+4). observe pickUp(agent1, phone1)at t+4. % observe([pickUp(agent1,phone1)],t+4). % "% =================================". % Happens(Dial(Agent1,Phone1,Phone2),5). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/TelephoneBugs.e',162). % From E: % % happens( % dial(agent1,phone1,phone2), % t+5). observe dial(agent1, phone1, phone2)at t+5. % observe([dial(agent1,phone1,phone2)],t+5). % "% =================================". :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/TelephoneBugs.e',164). % Happens(PickUp(Agent2,Phone2),5). % From E: % % happens( % pickUp(agent2,phone2), % t+5). observe pickUp(agent2, phone2)at t+5. % observe([pickUp(agent2,phone2)],t+5). % "% =================================". :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/TelephoneBugs.e',166). %; Psi % [phone,time] % !HoldsAt(Ringing(phone,phone),time). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/TelephoneBugs.e',168). % From E: % % holds_at( % neg( % ringing(Phone,Phone)), % Time). not ringing(Phone, Phone)at Time. % l_int(holds(not(ringing(Phone,Phone)),Time),[]). % "% =================================". % [phone1,phone2,time] % HoldsAt(Ringing(phone1,phone2),time) & % phone1!=phone2 -> % !HoldsAt(Ringing(phone2,phone1),time). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/TelephoneBugs.e',172). % From E: % % '->'( % ','( % holds_at( % ringing(Phone1,Phone2), % Time), % diff(Phone1,Phone2)), % holds_at( % not( % ringing(Phone2,Phone1)), % Time)). not ringing(Phone2, Phone1)at Time if ringing(Phone1, Phone2)at Time, diff(Phone1, Phone2). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/TelephoneBugs.e',172). /* l_int(holds(not(ringing(Phone2,Phone1)),Time), [ holds(ringing(Phone1,Phone2),Time), diff(Phone1,Phone2) ]). */ % "% =================================". % [phone,time] % !HoldsAt(Connected(phone,phone),time). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/TelephoneBugs.e',177). % From E: % % holds_at( % neg( % connected(Phone,Phone)), % Time). not connected(Phone, Phone)at Time. % l_int(holds(not(connected(Phone,Phone)),Time),[]). % "% =================================". :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/TelephoneBugs.e',179). % [phone1,phone2,time] % HoldsAt(Connected(phone1,phone2),time) & % phone1!=phone2 -> % !HoldsAt(Connected(phone2,phone1),time). % From E: % % '->'( % ','( % holds_at( % connected(Phone1,Phone2), % Time), % diff(Phone1,Phone2)), % holds_at( % not( % connected(Phone2,Phone1)), % Time)). not connected(Phone2, Phone1)at Time if connected(Phone1, Phone2)at Time, diff(Phone1, Phone2). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/TelephoneBugs.e',179). /* l_int(holds(not(connected(Phone2,Phone1)),Time), [ holds(connected(Phone1,Phone2),Time), diff(Phone1,Phone2) ]). */ % "% =================================". % mutex Idle, DialTone, BusySignal, Disconnected :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/TelephoneBugs.e',183). % From E: % % mutex(idle). mutex(idle). % From E: % % mutex(dialTone). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/TelephoneBugs.e',183). mutex(dialTone). % From E: % % mutex(busySignal). mutex(busySignal). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/TelephoneBugs.e',183). % From E: % % mutex(disconnected). mutex(disconnected). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/TelephoneBugs.e',186). % [phone1,phone2,time] % HoldsAt(Idle(phone1),time) -> % !HoldsAt(Ringing(phone1,phone2),time) & % !HoldsAt(Connected(phone1,phone2),time). % From E: % % '->'( % holds_at( % idle(Phone1), % Time), % ','( % holds_at( % not( % ringing(Phone1,Phone2)), % Time), % holds_at( % not( % connected(Phone1,Phone2)), % Time))). if idle(Phone1)at Time then not ringing(Phone1, Phone2)at Time, not connected(Phone1, Phone2)at Time. :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/TelephoneBugs.e',186). /* reactive_rule([holds(idle(Phone1),Time)], [ holds(not(ringing(Phone1,Phone2)), Time), holds(not(connected(Phone1,Phone2)), Time) ]). */ % "% =================================". %; contradicts (3) above: %;[phone1,phone2,time] %;HoldsAt(DialTone(phone2),time) -> %;!HoldsAt(Ringing(phone1,phone2),time) & %;!HoldsAt(Connected(phone1,phone2),time). %; etc. %; Gamma % [phone] :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/TelephoneBugs.e',201). % HoldsAt(Idle(phone),0). % From E: % % initially( % idle(Phone)). initially idle(Phone). % initial_state([idle(Phone)]). % "% =================================". :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/TelephoneBugs.e',203). % completion Happens % From E: % % completion(happens). completion(happens). :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/TelephoneBugs.e',205). % range time 0 6 % From E: % % range(time,0,6). range(time,0,6). % range offset 1 1 :-was_s_l('/pack/logicmoo_ec/ext/ec_sources/examples/Mueller2006/Exercises/TelephoneBugs.e',205). % 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/TelephoneBugs.e.lps