1% examples/Mueller2006/Chapter11/HungryCat.e:1
    2% translate: begining  File: examples/Mueller2006/Chapter11/HungryCat.e.pro 
    3% ;
    4% ; Copyright (c) 2005 IBM Corporation and others.
    5% ; All rights reserved. This program and the accompanying materials
    6% ; are made available under the terms of the Common Public License v1.0
    7% ; which accompanies this distribution, and is available at
    8% ; http://www.eclipse.org/legal/cpl-v10.html
    9% ;
   10% ; Contributors:
   11% ; IBM - Initial implementation
   12% ;
   13% ; @inproceedings{WinikoffEtAl:2002,
   14% ;   author = "Michael Winikoff and Lin Padgham and James Harland and John Thangarajah",
   15% ;   year = "2002",
   16% ;   title = "Declarative \& procedural goals in intelligent agent systems",
   17% ;   editor = "Dieter Fensel and Fausto Giunchiglia and Deborah McGuinness and Mary-Anne Williams",
   18% ;   booktitle = "\uppercase{P}roceedings of the \uppercase{E}ighth \uppercase{I}nternational \uppercase{C}onference on \uppercase{P}rinciples of \uppercase{K}nowledge \uppercase{R}epresentation and \uppercase{R}easoning",
   19% ;   pages = "470--481",
   20% ;   address = "San Francisco",
   21% ;   publisher = "Morgan Kaufmann",
   22% ; }
   23% ;
   24% ; @book{Mueller:2006,
   25% ;   author = "Erik T. Mueller",
   26% ;   year = "2006",
   27% ;   title = "Commonsense Reasoning",
   28% ;   address = "San Francisco",
   29% ;   publisher = "Morgan Kaufmann/Elsevier",
   30% ; }
   31% ;
   32% examples/Mueller2006/Chapter11/HungryCat.e:30
   33% 
   34% load foundations/Root.e
   35load('foundations/Root.e').
   36
   37% load foundations/EC.e
   38load('foundations/EC.e').
   39
   40% 
   41% sort object
   42sort(object).
   43
   44% sort agent: object
   45subsort(agent, object).
   46
   47% examples/Mueller2006/Chapter11/HungryCat.e:36
   48% sort food: object
   49subsort(food, object).
   50
   51% sort surface
   52sort(surface).
   53
   54% sort plan
   55sort(plan).
   56
   57% 
   58% reified sort belief
   59reified_sort(belief).
   60
   61% 
   62% examples/Mueller2006/Chapter11/HungryCat.e:42
   63% agent Cat
   64t(agent, cat).
   65
   66% surface Floor, Chair, Shelf, Table
   67t(surface, floor).
   68
   69t(surface, chair).
   70
   71t(surface, shelf).
   72
   73t(surface, table).
   74
   75% food Food1, Food2
   76t(food, food1).
   77
   78t(food, food2).
   79
   80% plan P1, P1a, P1b, P2, P2a
   81t(plan, p1).
   82
   83t(plan, p1a).
   84
   85t(plan, p1b).
   86
   87t(plan, p2).
   88
   89t(plan, p2a).
   90
   91% 
   92% predicate SelectedPlan(agent,belief,plan,time)
   93predicate(selectedPlan(agent, belief, plan, time)).
   94
   95% examples/Mueller2006/Chapter11/HungryCat.e:48
   96% predicate SoundPlan(agent,belief,plan,time)
   97predicate(soundPlan(agent, belief, plan, time)).
   98
   99% 
  100% fluent On(object,surface)
  101fluent(on(object, surface)).
  102
  103% fluent Goal(agent,belief)
  104fluent(goal(agent, belief)).
  105
  106% fluent CanJump(surface,surface)
  107fluent(canJump(surface, surface)).
  108
  109% fluent Plan(agent,belief,plan)
  110fluent(plan(agent, belief, plan)).
  111
  112% examples/Mueller2006/Chapter11/HungryCat.e:54
  113% fluent Satiated(agent)
  114fluent(satiated(agent)).
  115
  116% fluent Believe(agent,belief)
  117fluent(believe(agent, belief)).
  118
  119% 
  120% event AddPlan(agent,belief,plan)
  121event(addPlan(agent, belief, plan)).
  122
  123% event DropPlan(agent,belief,plan)
  124event(dropPlan(agent, belief, plan)).
  125
  126% event Jump(agent,surface,surface)
  127event(jump(agent, surface, surface)).
  128
  129% examples/Mueller2006/Chapter11/HungryCat.e:60
  130% event Move(surface,surface,surface)
  131event(move(surface, surface, surface)).
  132
  133% event Eat(agent,food)
  134event(eat(agent, food)).
  135
  136% event Wait(agent)
  137event(wait(agent)).
  138
  139% 
  140% belief BSatiated(agent)
  141t(belief, 'bSatiated(agent)').
  142
  143% belief BCanJump(surface,surface)
  144t(belief, 'bCanJump(surface').
  145
  146t(belief, 'surface)').
  147
  148% examples/Mueller2006/Chapter11/HungryCat.e:66
  149% belief BOn(object,surface)
  150t(belief, 'bOn(object').
  151
  152t(belief, 'surface)').
  153
  154% 
  155% ; Sigma
  156% 
  157% ; A5
  158% examples/Mueller2006/Chapter11/HungryCat.e:71
  159% [agent,belief,plan,time]% 
  160% Initiates(AddPlan(agent,belief,plan),Plan(agent,belief,plan),time).
  161initiates(addPlan(Agent, Belief, Plan), plan(Agent, Belief, Plan), Time).
  162
  163% 
  164% 
  165% ; A6
  166% examples/Mueller2006/Chapter11/HungryCat.e:75
  167% [agent,belief,plan,time]% 
  168% Terminates(DropPlan(agent,belief,plan),Plan(agent,belief,plan),time).
  169terminates(dropPlan(Agent, Belief, Plan), plan(Agent, Belief, Plan), Time).
  170
  171% 
  172% 
  173% examples/Mueller2006/Chapter11/HungryCat.e:78
  174% [agent,surface1,surface2,time]% 
  175% HoldsAt(On(agent,surface1),time) &
  176% HoldsAt(CanJump(surface1,surface2),time) ->
  177% Initiates(Jump(agent,surface1,surface2),On(agent,surface2),time).
  178holds_at(on(Agent, Surface1), Time), holds_at(canJump(Surface1, Surface2), Time) ->
  179	initiates(jump(Agent, Surface1, Surface2),
  180		  on(Agent, Surface2),
  181		  Time).
  182
  183% 
  184% 
  185% examples/Mueller2006/Chapter11/HungryCat.e:83
  186% [agent,surface1,surface2,time]% 
  187% HoldsAt(On(agent,surface1),time) &
  188% HoldsAt(CanJump(surface1,surface2),time) ->
  189% Terminates(Jump(agent,surface1,surface2),On(agent,surface1),time).
  190holds_at(on(Agent, Surface1), Time), holds_at(canJump(Surface1, Surface2), Time) ->
  191	terminates(jump(Agent, Surface1, Surface2),
  192		   on(Agent, Surface1),
  193		   Time).
  194
  195% 
  196% 
  197% examples/Mueller2006/Chapter11/HungryCat.e:88
  198% [surface1,surface2,surface3,time]% 
  199% Initiates(Move(surface1,surface2,surface3),CanJump(surface1,surface3),time).
  200initiates(move(Surface1, Surface2, Surface3), canJump(Surface1, Surface3), Time).
  201
  202% 
  203% 
  204% examples/Mueller2006/Chapter11/HungryCat.e:91
  205% [surface1,surface2,surface3,time]% 
  206% Terminates(Move(surface1,surface2,surface3),CanJump(surface1,surface2),time).
  207terminates(move(Surface1, Surface2, Surface3), canJump(Surface1, Surface2), Time).
  208
  209% 
  210% 
  211% examples/Mueller2006/Chapter11/HungryCat.e:94
  212% [agent,food,surface,time]% 
  213% HoldsAt(On(agent,surface),time) &
  214% HoldsAt(On(food,surface),time) ->
  215% Initiates(Eat(agent,food),Satiated(agent),time).
  216holds_at(on(Agent, Surface), Time), holds_at(on(Food, Surface), Time) ->
  217	initiates(eat(Agent, Food),
  218		  satiated(Agent),
  219		  Time).
  220
  221% 
  222% 
  223% examples/Mueller2006/Chapter11/HungryCat.e:99
  224% [agent,food,surface,time]% 
  225% HoldsAt(On(agent,surface),time) &
  226% HoldsAt(On(food,surface),time) ->
  227% Terminates(Eat(agent,food),On(food,surface),time).
  228holds_at(on(Agent, Surface), Time), holds_at(on(Food, Surface), Time) ->
  229	terminates(eat(Agent, Food),
  230		   on(Food, Surface),
  231		   Time).
  232
  233% 
  234% 
  235% examples/Mueller2006/Chapter11/HungryCat.e:104
  236% [agent,surface1,surface2,belief,time]% 
  237% HoldsAt(Believe(agent,BOn(agent,surface1)),time) &
  238% HoldsAt(Believe(agent,BCanJump(surface1,surface2)),time) &
  239% (belief = BOn(agent,surface2)) ->
  240% Initiates(Jump(agent,surface1,surface2),
  241%           Believe(agent,belief),
  242%           time).
  243holds_at(believe(Agent, bOn(Agent, Surface1)), Time), holds_at(believe(Agent, bCanJump(Surface1, Surface2)), Time), Belief=bOn(Agent, Surface2) ->
  244	initiates(jump(Agent, Surface1, Surface2),
  245		  believe(Agent, Belief),
  246		  Time).
  247
  248% examples/Mueller2006/Chapter11/HungryCat.e:110
  249% 
  250% 
  251% examples/Mueller2006/Chapter11/HungryCat.e:112
  252% [agent,surface1,surface2,belief,time]% 
  253% HoldsAt(Believe(agent,BOn(agent,surface1)),time) &
  254% HoldsAt(Believe(agent,BCanJump(surface1,surface2)),time) &
  255% (belief = BOn(agent,surface1)) ->
  256% Terminates(Jump(agent,surface1,surface2),
  257%            Believe(agent,belief),
  258%            time).
  259holds_at(believe(Agent, bOn(Agent, Surface1)), Time), holds_at(believe(Agent, bCanJump(Surface1, Surface2)), Time), Belief=bOn(Agent, Surface1) ->
  260	terminates(jump(Agent, Surface1, Surface2),
  261		   believe(Agent, Belief),
  262		   Time).
  263
  264% examples/Mueller2006/Chapter11/HungryCat.e:118
  265% 
  266% 
  267% examples/Mueller2006/Chapter11/HungryCat.e:120
  268% [agent,surface1,surface2,surface3,belief,time]% 
  269% (belief = BCanJump(surface1,surface3)) ->
  270% Initiates(Move(surface1,surface2,surface3),
  271%           Believe(agent,belief),
  272%           time).
  273Belief=bCanJump(Surface1, Surface3) ->
  274	initiates(move(Surface1, Surface2, Surface3),
  275		  believe(Agent, Belief),
  276		  Time).
  277
  278% 
  279% 
  280% examples/Mueller2006/Chapter11/HungryCat.e:126
  281% [agent,surface1,surface2,surface3,belief,time]% 
  282% (belief = BCanJump(surface1,surface2)) ->
  283% Terminates(Move(surface1,surface2,surface3),
  284%            Believe(agent,belief),
  285%            time).
  286Belief=bCanJump(Surface1, Surface2) ->
  287	terminates(move(Surface1, Surface2, Surface3),
  288		   believe(Agent, Belief),
  289		   Time).
  290
  291% 
  292% 
  293% examples/Mueller2006/Chapter11/HungryCat.e:132
  294% [agent,food,surface,belief,time]% 
  295% HoldsAt(Believe(agent,BOn(agent,surface)),time) &
  296% HoldsAt(Believe(agent,BOn(food,surface)),time) &
  297% (belief = BSatiated(agent)) ->
  298% Initiates(Eat(agent,food),Believe(agent,belief),time).
  299holds_at(believe(Agent, bOn(Agent, Surface)), Time), holds_at(believe(Agent, bOn(Food, Surface)), Time), Belief=bSatiated(Agent) ->
  300	initiates(eat(Agent, Food),
  301		  believe(Agent, Belief),
  302		  Time).
  303
  304% 
  305% 
  306% examples/Mueller2006/Chapter11/HungryCat.e:138
  307% [agent,food,surface,belief,time]% 
  308% HoldsAt(Believe(agent,BOn(agent,surface)),time) &
  309% HoldsAt(Believe(agent,BOn(food,surface)),time) &
  310% (belief = BOn(food,surface)) ->
  311% Terminates(Eat(agent,food),Believe(agent,belief),time).
  312holds_at(believe(Agent, bOn(Agent, Surface)), Time), holds_at(believe(Agent, bOn(Food, Surface)), Time), Belief=bOn(Food, Surface) ->
  313	terminates(eat(Agent, Food),
  314		   believe(Agent, Belief),
  315		   Time).
  316
  317% 
  318% 
  319% ; Delta
  320% examples/Mueller2006/Chapter11/HungryCat.e:145
  321% 
  322% ; A7
  323% examples/Mueller2006/Chapter11/HungryCat.e:147
  324% [agent,belief,plan,time]% 
  325% HoldsAt(Goal(agent,belief),time) &
  326% !HoldsAt(Believe(agent,belief),time) &
  327% SelectedPlan(agent,belief,plan,time) &
  328% (!{plan1} HoldsAt(Plan(agent,belief,plan1),time)) ->
  329% Happens(AddPlan(agent,belief,plan),time).
  330holds_at(goal(Agent, Belief), Time), not(holds_at(believe(Agent, Belief), Time)), selectedPlan(Agent, Belief, Plan, Time), not(exists([Plan1], holds_at(plan(Agent, Belief, Plan1), Time))) ->
  331	happens(addPlan(Agent, Belief, Plan), Time).
  332
  333% 
  334% examples/Mueller2006/Chapter11/HungryCat.e:153
  335% 
  336% ; A8
  337% examples/Mueller2006/Chapter11/HungryCat.e:155
  338% [agent,belief,time]% 
  339% HoldsAt(Plan(agent,belief,P1),time) &
  340% !HoldsAt(Believe(agent,belief),time) &
  341% SoundPlan(agent,belief,P1,time) ->
  342% Happens(Jump(Cat,Floor,Chair),time).
  343holds_at(plan(Agent, Belief, p1), Time), not(holds_at(believe(Agent, Belief), Time)), soundPlan(Agent, Belief, p1, Time) ->
  344	happens(jump(cat, floor, chair), Time).
  345
  346% 
  347% 
  348% examples/Mueller2006/Chapter11/HungryCat.e:161
  349% [agent,belief,time]% 
  350% HoldsAt(Plan(agent,belief,P1a),time) &
  351% !HoldsAt(Believe(agent,belief),time) &
  352% SoundPlan(agent,belief,P1a,time) ->
  353% Happens(Wait(Cat),time).
  354holds_at(plan(Agent, Belief, p1a), Time), not(holds_at(believe(Agent, Belief), Time)), soundPlan(Agent, Belief, p1a, Time) ->
  355	happens(wait(cat), Time).
  356
  357% 
  358% 
  359% examples/Mueller2006/Chapter11/HungryCat.e:167
  360% [agent,belief,time]% 
  361% HoldsAt(Plan(agent,belief,P2),time) &
  362% !HoldsAt(Believe(agent,belief),time) &
  363% SoundPlan(agent,belief,P2,time) ->
  364% Happens(Jump(Cat,Chair,Shelf),time).
  365holds_at(plan(Agent, Belief, p2), Time), not(holds_at(believe(Agent, Belief), Time)), soundPlan(Agent, Belief, p2, Time) ->
  366	happens(jump(cat, chair, shelf), Time).
  367
  368% 
  369% 
  370% ; A9
  371% examples/Mueller2006/Chapter11/HungryCat.e:174
  372% [agent,belief,plan,time]% 
  373% HoldsAt(Plan(agent,belief,plan),time) ->
  374% Happens(DropPlan(agent,belief,plan),time).
  375holds_at(plan(Agent, Belief, Plan), Time) ->
  376	happens(dropPlan(Agent, Belief, Plan), Time).
  377
  378% 
  379% 
  380% ; A10
  381% examples/Mueller2006/Chapter11/HungryCat.e:179
  382% [agent,belief,time]% 
  383% HoldsAt(Plan(agent,belief,P1),time) &
  384% !HoldsAt(Believe(agent,belief),time) &
  385% SoundPlan(agent,belief,P1,time) ->
  386% Happens(AddPlan(agent,belief,P1a),time).
  387holds_at(plan(Agent, Belief, p1), Time), not(holds_at(believe(Agent, Belief), Time)), soundPlan(Agent, Belief, p1, Time) ->
  388	happens(addPlan(Agent, Belief, p1a), Time).
  389
  390% 
  391% 
  392% examples/Mueller2006/Chapter11/HungryCat.e:185
  393% [agent,belief,time]% 
  394% HoldsAt(Plan(agent,belief,P1a),time) &
  395% !HoldsAt(Believe(agent,belief),time) &
  396% SoundPlan(agent,belief,P1a,time) ->
  397% Happens(AddPlan(agent,belief,P1b),time).
  398holds_at(plan(Agent, Belief, p1a), Time), not(holds_at(believe(Agent, Belief), Time)), soundPlan(Agent, Belief, p1a, Time) ->
  399	happens(addPlan(Agent, Belief, p1b), Time).
  400
  401% 
  402% 
  403% examples/Mueller2006/Chapter11/HungryCat.e:191
  404% [agent,belief,time]% 
  405% HoldsAt(Plan(agent,belief,P2),time) &
  406% !HoldsAt(Believe(agent,belief),time) &
  407% SoundPlan(agent,belief,P2,time) ->
  408% Happens(AddPlan(agent,belief,P2a),time).
  409holds_at(plan(Agent, Belief, p2), Time), not(holds_at(believe(Agent, Belief), Time)), soundPlan(Agent, Belief, p2, Time) ->
  410	happens(addPlan(Agent, Belief, p2a), Time).
  411
  412% 
  413% 
  414% ; reactive behavior
  415% examples/Mueller2006/Chapter11/HungryCat.e:198
  416% [agent,food,surface,time]% 
  417% !HoldsAt(Satiated(agent),time) &
  418% HoldsAt(On(agent,surface),time) &
  419% HoldsAt(On(food,surface),time) ->
  420% Happens(Eat(agent,food),time).
  421not(holds_at(satiated(Agent), Time)), holds_at(on(Agent, Surface), Time), holds_at(on(Food, Surface), Time) ->
  422	happens(eat(Agent, Food), Time).
  423
  424% 
  425% 
  426% ; narrative
  427% examples/Mueller2006/Chapter11/HungryCat.e:205
  428% 
  429% Happens(Move(Chair,Table,Shelf),2).
  430happens(move(chair, table, shelf), 2).
  431
  432% 
  433% 
  434% ; SelectedPlan - plan library
  435% 
  436% ;[agent,belief,plan,time]
  437% ;SelectedPlan(agent,belief,plan,time) <->
  438% ;(agent=Cat & belief=BSatiated(Cat) & plan=P1 & time=0) |
  439% ;(agent=Cat & belief=BSatiated(Cat) & plan=P2 & time=4).
  440% examples/Mueller2006/Chapter11/HungryCat.e:214
  441% 
  442% examples/Mueller2006/Chapter11/HungryCat.e:215
  443% [agent,belief,plan,time]% 
  444% SelectedPlan(agent,belief,plan,time) <->
  445% ({surface1,surface2,surface3,food}
  446%  HoldsAt(Believe(agent,BOn(agent,surface1)),time) &
  447%  HoldsAt(Believe(agent,BCanJump(surface1,surface2)),time) &
  448%  HoldsAt(Believe(agent,BCanJump(surface2,surface3)),time) &
  449%  HoldsAt(Believe(agent,BOn(food,surface3)),time) &
  450%  belief=BSatiated(agent) &
  451%  plan=P1 &
  452%  time=0) |
  453% ({surface1,surface2,surface3,food}
  454%  HoldsAt(Believe(agent,BOn(agent,surface1)),time) &
  455%  HoldsAt(Believe(agent,BCanJump(surface1,surface2)),time) &
  456%  HoldsAt(Believe(agent,BCanJump(surface2,surface3)),time) &
  457%  HoldsAt(Believe(agent,BOn(food,surface3)),time) &
  458%  belief=BSatiated(agent) &
  459%  plan=P2 &
  460%  time=4).
  461selectedPlan(Agent, Belief, Plan, Time) <->
  462	(   exists([Surface1, Surface2, Surface3, Food],
  463		   (holds_at(believe(Agent, bOn(Agent, Surface1)), Time), holds_at(believe(Agent, bCanJump(Surface1, Surface2)), Time), holds_at(believe(Agent, bCanJump(Surface2, Surface3)), Time), holds_at(believe(Agent, bOn(Food, Surface3)), Time), Belief=bSatiated(Agent), Plan=p1, Time=0))
  464	;   exists(
  465		   [ Surface18,
  466		     Surface29,
  467		     Surface310,
  468		     Food11
  469		   ],
  470		   (holds_at(believe(Agent, bOn(Agent, Surface18)), Time), holds_at(believe(Agent, bCanJump(Surface18, Surface29)), Time), holds_at(believe(Agent, bCanJump(Surface29, Surface310)), Time), holds_at(believe(Agent, bOn(Food11, Surface310)), Time), Belief=bSatiated(Agent), Plan=p2, Time=4))
  471	).
  472
  473% examples/Mueller2006/Chapter11/HungryCat.e:232
  474% 
  475% 
  476% 
  477% ; SoundPlan
  478% 
  479% examples/Mueller2006/Chapter11/HungryCat.e:237
  480% [agent,belief,plan,time]% 
  481% SoundPlan(agent,belief,plan,time) <->
  482% (plan=P1 ->
  483%  HoldsAt(Believe(agent,BCanJump(Floor,Chair)),time) &
  484%  HoldsAt(Believe(agent,BCanJump(Chair,Table)),time)) &
  485% ((plan=P1a | plan=P1b) ->
  486%   HoldsAt(Believe(agent,BCanJump(Chair,Table)),time)).
  487soundPlan(Agent, Belief, Plan, Time) <->
  488	( Plan=p1->holds_at(believe(Agent, bCanJump(floor, chair)), Time), holds_at(believe(Agent, bCanJump(chair, table)), Time)
  489	),
  490	( Plan=p1a;Plan=p1b->holds_at(believe(Agent, bCanJump(chair, table)), Time)
  491	).
  492
  493% examples/Mueller2006/Chapter11/HungryCat.e:243
  494% 
  495% 
  496% ; Gamma
  497% 
  498% examples/Mueller2006/Chapter11/HungryCat.e:247
  499% [agent,belief]% 
  500% HoldsAt(Goal(agent,belief),0) <->
  501% (agent=Cat & belief=BSatiated(Cat)).
  502holds_at(goal(Agent, Belief), 0) <->
  503	Agent=cat,
  504	Belief=bSatiated(cat).
  505
  506% 
  507% 
  508% examples/Mueller2006/Chapter11/HungryCat.e:251
  509% [agent,belief,plan] % !HoldsAt(Plan(agent,belief,plan),0).
  510not(holds_at(plan(Agent, Belief, Plan), 0)).
  511
  512% 
  513% 
  514% examples/Mueller2006/Chapter11/HungryCat.e:253
  515% [object,surface] % HoldsAt(On(object,surface),0) <->
  516% (object=Cat & surface=Floor) |
  517% (object=Food1 & surface=Table) |
  518% (object=Food2 & surface=Shelf).
  519holds_at(on(Object, Surface), 0) <->
  520	(   Object=cat,
  521	    Surface=floor
  522	;   Object=food1,
  523	    Surface=table
  524	;   Object=food2,
  525	    Surface=shelf
  526	).
  527
  528% 
  529% 
  530% examples/Mueller2006/Chapter11/HungryCat.e:258
  531% [surface1,surface2] % HoldsAt(CanJump(surface1,surface2),0) <->
  532% (surface1=Floor & surface2=Chair) |
  533% (surface1=Chair & surface2=Table) |
  534% (surface1=Shelf & surface2=Table).
  535holds_at(canJump(Surface1, Surface2), 0) <->
  536	(   Surface1=floor,
  537	    Surface2=chair
  538	;   Surface1=chair,
  539	    Surface2=table
  540	;   Surface1=shelf,
  541	    Surface2=table
  542	).
  543
  544% 
  545% 
  546% examples/Mueller2006/Chapter11/HungryCat.e:263
  547% [agent,object,surface]% 
  548% HoldsAt(Believe(agent,BOn(object,surface)),0) <->
  549% (agent=Cat & object=Cat & surface=Floor) |
  550% (agent=Cat & object=Food1 & surface=Table).
  551holds_at(believe(Agent, bOn(Object, Surface)), 0) <->
  552	(   Agent=cat,
  553	    Object=cat,
  554	    Surface=floor
  555	;   Agent=cat,
  556	    Object=food1,
  557	    Surface=table
  558	).
  559
  560% 
  561% 
  562% examples/Mueller2006/Chapter11/HungryCat.e:268
  563% [agent,surface1,surface2]% 
  564% HoldsAt(Believe(agent,BCanJump(surface1,surface2)),0) <->
  565% (agent=Cat & surface1=Floor & surface2=Chair) |
  566% (agent=Cat & surface1=Chair & surface2=Table) |
  567% (agent=Cat & surface1=Shelf & surface2=Table).
  568holds_at(believe(Agent, bCanJump(Surface1, Surface2)), 0) <->
  569	(   Agent=cat,
  570	    Surface1=floor,
  571	    Surface2=chair
  572	;   Agent=cat,
  573	    Surface1=chair,
  574	    Surface2=table
  575	;   Agent=cat,
  576	    Surface1=shelf,
  577	    Surface2=table
  578	).
  579
  580% 
  581% 
  582% examples/Mueller2006/Chapter11/HungryCat.e:274
  583% !HoldsAt(Believe(Cat,BSatiated(Cat)),0).
  584not(holds_at(believe(cat, bSatiated(cat)), 0)).
  585
  586% 
  587% 
  588% ; ADDED:
  589% !HoldsAt(Satiated(Cat),0).
  590not(holds_at(satiated(cat), 0)).
  591
  592% 
  593% 
  594% completion Happens
  595completion(happens).
  596
  597% examples/Mueller2006/Chapter11/HungryCat.e:280
  598% 
  599% range time 0 7
  600range(time, 0, 7).
  601
  602% range offset 1 1
  603range(offset, 1, 1).
  604
  605% 
  606% ; End of file.
  607% examples/Mueller2006/Chapter11/HungryCat.e:285
  608% translate: ending  File: examples/Mueller2006/Chapter11/HungryCat.e.pro