public void checkOldGoals() {
		LinkedList<Formula> temp = new LinkedList<Formula>();
		Formula f;
		while(!proven && !incompleteGoals.isEmpty()) {
			f = incompleteGoals.poll();
			Boolean clear = false;			
			for(Goal g : f.possibleGoals) {
				if(inKnowledge(g.directGoals)) {
					clear = true;
					try {
						Deduction d = g.rule.getConstructor(Formula.class).newInstance(f);
						for(Formula know : getKnowledge()) {
							for(Formula premise : g.directGoals) {
								if(premise.equals(know)) {
									d.addPremise(know);
								}
							}
						}
						add(d);
					} catch (Exception e) {
						e.printStackTrace();
					}
				}
			}
			
			if(clear) {
				f.possibleGoals.clear();
			} else {
				temp.add(f);
			}
		}
		
		incompleteGoals = temp;
		
		//TODO: Proof goals?
	}