public LinkedList<Integer> vars() {
		// initializing the LinkedList for the return
		LinkedList<Integer> vars = new LinkedList<Integer>();
		// a switch for the possible constructors for this Formula
		switch (constructor) {
		// Zeroth case: The Formula represents a constant.
		case 0:
			// clearing the list
			vars.clear();
			// returning the list
			return vars;
		// First case: The Formula represents a variable.
		case 1:
			// clearing the list
			vars.clear();
			// adding the variable's number to the list
			vars.add(var);
			// returning the list
			return vars;
		// Second case: The Formula represents a logical negation.
		case 2:
			// clearing the list
			vars.clear();
			// adding all variable numbers of the successor to the list
			vars.addAll(firstSuccessor.vars());
			// returning the list
			return vars;
		// Third case: The Formula represents a logical conjunction.
		case 3:
			// clearing the list
			vars.clear();
			// adding all variable numbers of the first successor to the list
			vars.addAll(firstSuccessor.vars());
			// getting all variable numbers of the second successor
			LinkedList<Integer> secondSucVars = secondSuccessor.vars();
			// merging the list with the second successor's variable numbers
			for(Integer i : secondSucVars) {
				// adding the variable number to the list 
				// if it isn't already in
				if(!vars.contains(i)) {
					vars.add(i);
				}
			}
			// returning the list
			return vars;
		// Fourth case: The Formula represents a logical disjunction.
		case 4:
			// clearing the list
			vars.clear();
			// adding all variable numbers of the first successor to the list
			vars.addAll(firstSuccessor.vars());
			// getting all variable numbers of the second successor
			secondSucVars = secondSuccessor.vars();
			// merging the list with the second successor's variable numbers
			for(Integer i : secondSucVars) {
				// adding the variable number to the list 
				// if it isn't already in
				if(!vars.contains(i)) {
					vars.add(i);
				}
			}
			// returning the list
			return vars;
		// Default case: None of the given constructors was used.
		default:
			// tentative default value: the empty list
			vars.clear();
			return vars;
		}
	}