public HashSet<String> findMinimal(LinkedList<String> input){
		LinkedList<String> best = new LinkedList<String>();
		HashSet<String> all = new HashSet<String>();
		boolean replacements = false;
		for(String s: input){
			all.add(s);
			// Loop through each solution and see if it entails other solutions
			for(String t: input){				
				if(s.compareTo(t) != 0){
					WFF e1 = new WFF(s); 
					WFF e2 = new WFF(t); 
					if(e1.entails(e2) && !e2.entails(e1)){
						best.add(t);
						replacements = true;
					}
				}
			}
		}
		if(replacements){
			return findMinimal(best);
		}
		
		return all;
	}