From pramodmm@franklin.ee.washington.edu Tue May 14 23:01:50 1991
Received: from chum.cs.washington.edu by wolf.cs.washington.edu (5.64/7.0jh)
	id AA07312; Tue, 14 May 91 23:01:19 -0700
Received: from franklin.ee.washington.edu by chum.cs.washington.edu (5.64/7.0h)
	id AA27219; Tue, 14 May 91 23:17:23 -0700
Received: by franklin.ee.washington.edu
	(15.11/UW-(NDC) Revision: 2.1 ) id AA14602; Tue, 14 May 91 23:17:11 pdt
From: Pramod Mahadev 9036144 <pramodmm@franklin.ee.washington.edu>
Message-Id: <9105150617.AA14602@franklin.ee.washington.edu>
Subject: matching-elements in the state
To: cs473@chum.cs.washington.edu
Date: Tue, 14 May 91 23:17:08 PDT
X-Mailer: ELM [version 2.3 PL6]
Status: R

 I am trying to define a function called 
  total-trail-state (unit time)
   What this should do is check for all the times for which the unit is
   off before time=t
   The state will have
   on(unit1 1)
   off(unit1 2)
   off (unit1 3)
   on(unit1 1) as the function suggests says unit1 is on at time = 1
   total-trail-state (unit1 3) should return 2 
   but the whole problem here is
   if I define this function in functions.lisp 
   can I check for on (unit time) is true or not in the function
  total-trail-state.


From hutch@wolf Wed May 15 03:07:04 1991
Received: from chum.cs.washington.edu by wolf.cs.washington.edu (5.64/7.0jh)
	id AA09108; Wed, 15 May 91 03:06:46 -0700
Received: from wolf.cs.washington.edu by chum.cs.washington.edu (5.64/7.0h)
	id AA27459; Wed, 15 May 91 03:22:50 -0700
Received: by wolf.cs.washington.edu (5.64/7.0jh)
	id AA09104; Wed, 15 May 91 03:06:34 -0700
Date: Wed, 15 May 91 03:06:34 -0700
From: hutch@wolf (Phillip R Hutchinson)
Message-Id: <9105151006.AA09104@wolf.cs.washington.edu>
To: zeno@genetics.washington.edu
Cc: cs473@chum.cs.washington.edu
In-Reply-To: Sean Lamont's message of Tue, 14 May 91 22:15:37 -0700 <9105150515.AA25589@phylo.genetics.washington.edu>
Subject: multiple variable bindings in forall
Status: R

Using the form in the BNF on page 12, your generator should be 
(forall (<adj-x> <adj-y>) (is-adj <x> <adj-x>) (is-adj <y> <adj-y>)).

This uses (is-adj <x> <adj-x>) as your generator.  The format implies that the
function should have 3 parts, a variable list, a generator (which must be
a single predicate), and an expression (which can be a conjunction of many
predicates).

You may wish to specify (is-loc <adj-x> <adj-y>) as your generator.  This
would limit the possible choices of adjacent squares to the valid squares
in your domain.  You could then test the location using your original
predicate, (and (is-adj <x> <adj-x>) (is-adj <y> <adj-y>)).

Phil

From etzioni@chum Wed May 15 10:29:52 1991
Received: from june.cs.washington.edu by wolf.cs.washington.edu (5.64/7.0jh)
	id AA12240; Wed, 15 May 91 10:29:28 -0700
Received: from chum.cs.washington.edu by june.cs.washington.edu (5.64a/7.0jh)
	id AA29510; Wed, 15 May 91 10:45:35 -0700
Received: by chum.cs.washington.edu (5.64/7.0h)
	id AA27616; Wed, 15 May 91 10:45:33 -0700
Date: Wed, 15 May 91 10:45:33 -0700
From: etzioni@chum (Oren Etzioni)
Message-Id: <9105151745.AA27616@chum.cs.washington.edu>
To: johnc@cac.washington.edu
Cc: cs473@cs.washington.edu, Vaughn@cs.washington.edu
In-Reply-To: John Carlson's message of Tue, 14 May 91 19:59:24 PDT <9105150259.AA09332@akbar.cac.washington.edu>
Subject: Design condusive to problem generator 
Status: R

   From: John Carlson <johnc@cac.washington.edu>
   Subject: Design condusive to problem generator 
   To: etzioni@cs.washington.edu
   Date: Tue, 14 May 91 19:59:24 PDT
   Cc: cs473@cs.washington.edu, Vaughn@cs.washington.edu
   X-Mailer: Pine [version 0.9.701]

   Oren,
	   I would like to design my domain (brew) so that it will be
   well suited to latter parts of the project, in particular the random
   problem generator.  Do I need to think about this as I'm designing this
   portion of the project or does it matter at this stage?  Could you
   give some general advise on what aspects of the design at this stage will
   prepare later and what design pitfalls to avoid?  

   Thanks,
   johnc

Random problem generation is fairly straight forward.  I wouldn't
worry about it at this stage.  You might want to start thinking about
what good control rules will be...

oren

From etzioni@chum Wed May 15 10:40:15 1991
Received: from chum.cs.washington.edu by wolf.cs.washington.edu (5.64/7.0jh)
	id AA12416; Wed, 15 May 91 10:39:49 -0700
Received: by chum.cs.washington.edu (5.64/7.0h)
	id AA27634; Wed, 15 May 91 10:55:52 -0700
Date: Wed, 15 May 91 10:55:52 -0700
From: etzioni@chum (Oren Etzioni)
Message-Id: <9105151755.AA27634@chum.cs.washington.edu>
To: pramodmm@franklin.ee.washington.edu
Cc: cs473@chum.cs.washington.edu
In-Reply-To: Pramod Mahadev 9036144's message of Tue, 14 May 91 23:17:08 PDT <9105150617.AA14602@franklin.ee.washington.edu>
Subject: matching-elements in the state
Status: R

   From: Pramod Mahadev 9036144 <pramodmm@franklin.ee.washington.edu>
   Subject: matching-elements in the state
   To: cs473@chum.cs.washington.edu
   Date: Tue, 14 May 91 23:17:08 PDT
   X-Mailer: ELM [version 2.3 PL6]

	I am trying to define a function called 
	 total-trail-state (unit time)
	  What this should do is check for all the times for which the unit is
	  off before time=t
	  The state will have
	  on(unit1 1)
	  off(unit1 2)
	  off (unit1 3)
	  on(unit1 1) as the function suggests says unit1 is on at time = 1
	  total-trail-state (unit1 3) should return 2 
	  but the whole problem here is
	  if I define this function in functions.lisp 
	  can I check for on (unit time) is true or not in the function
	 total-trail-state.


Can't you write this as an inference rule with universally quantified
preconditions? 

oren

From lindborg@wolf Wed May 15 14:21:03 1991
Received: from chum.cs.washington.edu by wolf.cs.washington.edu (5.64/7.0jh)
	id AA17386; Wed, 15 May 91 14:20:32 -0700
Received: from wolf.cs.washington.edu by chum.cs.washington.edu (5.64/7.0h)
	id AA27861; Wed, 15 May 91 14:36:37 -0700
Received: from localhost by wolf.cs.washington.edu (5.64/7.0jh)
	id AA17375; Wed, 15 May 91 14:20:20 -0700
Message-Id: <9105152120.AA17375@wolf.cs.washington.edu>
To: cs473@chum.cs.washington.edu
Subject: Mr. Stud Boy
Date: Wed, 15 May 91 14:20:18 PDT
From: lindborg@wolf
Status: R



howdy all.
  I've been asked to let you know what the proper use of control 
rules entails.
   In a nut shell, you should not prevent anything that is impossible
(in the 'real' world) with a control rule.  These things should be
handled in your domain (ie with preconditions).
   for instance if you're building a bike and you want the front
tire to go on the front wheel before you attach the wheel to the
frame, do this with preconditions... not a control rule.

Control rules are only for improving the efficiency (ie helping 
Prodigy to not do stupid stuff) of the problem solving.

happy hacking...


Jeff 


From calder@wolf Wed May 15 15:03:32 1991
Received: from chum.cs.washington.edu by wolf.cs.washington.edu (5.64/7.0jh)
	id AA18100; Wed, 15 May 91 15:02:57 -0700
Received: from wolf.cs.washington.edu by chum.cs.washington.edu (5.64/7.0h)
	id AA27915; Wed, 15 May 91 15:19:03 -0700
Received: by wolf.cs.washington.edu (5.64/7.0jh)
	id AA18087; Wed, 15 May 91 15:02:50 -0700
Date: Wed, 15 May 91 15:02:50 -0700
From: calder@wolf (Bradley G. Calder)
Message-Id: <9105152202.AA18087@wolf.cs.washington.edu>
To: cs473@chum.cs.washington.edu
Status: R

functions and satisfying preconds

Well hello, I've been asked to remind you all about what happens
with preconds once they have all been satisfied.  

I has a problem where all of the preconds satisfied to achieve a 
particular effect.  But when the last precondition was satisfied it
invalidated a previous preconds that had already been satisfied.  

Of course you all know that this resulted in a failure when trying to 
apply that operator.  This is because after all the preconds have been
satisfied prodigy goes through the preconds another time making sure
that they are still satisfied (part of goal clobbering).

Some more useful information is that in debugging there is a trace
command that allows one to see the value of a function call every time
it is called.  Also, functions should have cases in them for all possible
values the parameters.  Meaning for a function that adds two numbers
and binds the sum to a third variable.  It should have cases where
in the function that third variable is processed as if it where a number
and as if it were a variable.

Calder


