@SuppressWarnings("unchecked")
	private Set<WFF> makeCorrectDepthResults(WFF source) {

		HashSet<WFF> results = new HashSet<WFF>();
		try {
			Logic logic = new ClassicalLogicS();
			if (source.getFormula().length() < 1) {
				return results;
			};
			formula = (Formula) logic.createExpression(source.getFormula());
			Formula result =
				ClassicalLogicS.Utilities.conjunctiveForm(formula, true);
			DefaultClausalFactory myFacts = new DefaultClausalFactory();
			ClausalSet myClauses = myFacts.asClausalSet(result);

			PartitionListElement<Clause> reducedWFF =
				new PartitionListElement<Clause>();
			for (Clause cls : (Set<Clause>) myClauses) {
				reducedWFF.add(cls);
			}

			int[] indices;
			CombinationGenerator x =
				new CombinationGenerator(reducedWFF.size(), currentDepth);
			StringBuffer combination;
			HashSet<String> myWFF = new HashSet<String>();
			while (x.hasMore()) {
				combination = new StringBuffer();
				indices = x.getNext();
				for (int i = 0; i < indices.length; i++) {
					combination.append(reducedWFF.get(indices[i]));
				}
				String mynewWFF = combination.toString();
				myWFF.add(mynewWFF.replaceAll("\\]\\[", "\\],\\["));
			}

			for (String formString : myWFF) {
				String newForm = formString;
				newForm = newForm.replaceAll("\\[", "(");
				newForm = newForm.replaceAll("\\],", ") & ");
				newForm = newForm.replaceAll("\\]", ")");
				newForm = newForm.replaceAll(",", " |");

				// System.out.println("Made new WFF at depth " + currentDepth +
				// " = " + newForm);
				results.add(new WFF(newForm));
			}

		}
		catch (Exception e) {
			e.printStackTrace();
		}

		return results;
	}