public Buchi recognizeEmptyLanguage() {
		System.out.print("Checking for empty language...\r");
		HashSet<Transition> tr = (HashSet<Transition>) transitionRelation.clone();
		HashSet<Integer> ac = (HashSet<Integer>) acceptanceCondition.clone();
		Integer numberOfStates = states.size();

		FiniteTreesTable ftt = new FiniteTreesTable(tr, ac);

		for (int i = 0; i <= states.size() && !ftt.hasEmptyTreesSet(initialState); i++) {
			System.out.print("Checking for empty language... [" + (int) ((float) i / (float) (states.size() + 1) * 100) + "%]\r");
			ftt.removeIncoerentTrees();
			if (!ftt.containsBadStates()) {
				Buchi tmpBTA = (Buchi) clone();
				tmpBTA.states = ftt.getStates();				
				removeIncoerentTransition(tmpBTA.transitionRelation, tmpBTA.states);
				tmpBTA.states.remove(initialState);
				System.out.println("Checking for empty language... [OK]   ");
				return tmpBTA;
			}
		}
		System.out.println("Checking for empty language... [OK]   ");
		return new Buchi();
	}