public void checkUnitness() {
		//if this clause is satisfied, then make sure no variable thinks it is unit in it
		if(isSatisfied()) {
			for(Literal l: literals) {
				Variable v = l.getVariable();
				//see if this variable thinks it is a unit clause in this clause
				//since this clause is SAT, it should not be thinking this
				if(v.hasUnitClause(this)) {
					v.removeUnitClause(this);
				}
			}
			return;
		}
		
		//get the number of un-assigned literals
		int numUnassignedLits = 0;
		for(Literal l : literals ) {
			if(l.getVariable().getAssignment() == Variable.UNASSIGNED)
				numUnassignedLits++;
		}
				
		//if we only have 1 unassigned literal, we have a unit clause, so let the variable know it is unit
		if(numUnassignedLits == 1) {
			for(Literal l : literals) {
				if(l.getVariable().getAssignment() == Variable.UNASSIGNED)
					l.getVariable().addUnitClause(this);
			}
			//otherwise, we don't have a unit clause - make sure all the clauses know that
			//we should never be in a situation where more than 1 variable is assigned at once
			//so we should never have the situation that a variable becomes unit in 2 different clauses
			//for 2 different reasons at once, so it is safe to reset the field
		} else {
			for(Literal l : literals) {
				Variable v = l.getVariable();
				//see if the variable thinks it is unit in this clause
				//if it does, tell the variable it is not unit
				if(v.hasUnitClause(this)){
					v.removeUnitClause(this);
				}
			}
		}
	}