public void run() {
		if(inKnowledge(endGoal) && (endGoal.getFrom() == null || endGoal.getFrom().getPremises().isEmpty())) {
			Deduction d = new Direct(endGoal);
			add(d);
		}
		
		if(!proven) {
			forward();
			backward();
		}
	}