boolean testBufferChunk (Chunk bufferChunk, Instantiation inst)
	{
		for (int i=0 ; i<slotConditions.size() ; i++)
		{
			SlotCondition slotCondition = slotConditions.elementAt(i);
			if (model.getProcedural().whyNotTrace)
			{
				int savedSize = inst.size();
				boolean result = slotCondition.test (buffer, bufferChunk, inst);
				if (model.getProcedural().whyNotTrace)
				{
					if (result && inst.size()>savedSize) model.output (slotCondition.toString(inst,null));
					else model.output (slotCondition.toString());
				}
				if (!result) return false;
			}
			else
			{
				if (!slotCondition.test (buffer, bufferChunk, inst)) return false;
			}
		}
		if (buffer == Symbol.goal)
		{
			Chunk goal = model.getBuffers().get (Symbol.goal);
			if (goal != null) inst.setThreadID (goal.getThreadID());
		}
		return true;
	}