public static void printFormulaInfo() {
		System.out.println("*********************************\nVariable Information");

		//print out the variables
		for(int i = 1; i < variables.size(); i++) {
			Variable v = variables.get(i);
			System.out.println(v.getName() + 
					"\tAssignment:" + (v.getAssignment()==Variable.UNASSIGNED?"Unassign":(v.getAssignment()==Variable.TRUE?"True    ":"False   ")) +
					"\tTimes pos: " + v.getTimesPositive() + 
					"\tTimes neg: " + v.getTimesNegative() +
					"\tUnit clauses: '" + v.getUnitClauses().toString() + "'");
		}
		//print out the clauses
		System.out.println("\nLiterals in Clauses: < # > means variable '#' has been assigned");
		for(int i = 0; i < clauses.size(); i++) {
			Clause c = clauses.get(i);
			System.out.println("Clause " + i + " is " + (c.isSatisfied()?"Satisfied":"Unsatisfied(yet)"));
			for(Literal l : c.getLiterals()) {
				if(l.getVariable().getAssignment() == Variable.UNASSIGNED)
					System.out.print(l + " ");
				else
					System.out.print("<" + l + "> ");
			}
			System.out.println("");
		}
		System.out.println("");
	}