public void doPetricksMethod()
	{
		if (petrickList.isEmpty())
			return; //end if list is empty
		ArrayList<BitVector> answers = new ArrayList<BitVector>(); //array to hold answers
		
		//Add answers from Petricks list to answers list that are Xor'ed 
		for (int j = 0; j < petrickList.get(0).size(); j++) {
			for (int k = 0; k < petrickList.get(1).size(); k++) {
				answers.add(petrickList.get(0).get(j).union(petrickList.get(1).get(k)));
			}
		}
		
		//absorb answers together that are already covered
		for (int i = 2; i < petrickList.size(); i++) {
			answers = multiply(answers, petrickList.get(i));
			answers = doAbsorption(answers);

		}
		int min = 0; 
		int index = 0;
		for (int i = 0; i < answers.size(); i++) {
			if (i == 0)
				min = answers.get(i).getCardinality();
			if (min > answers.get(i).getCardinality()) {
				min = answers.get(i).getCardinality();
				index = i;
			}
		}
		//add answers to list for minimal representation
		for (int i = 0; i < answers.get(index).getSize(); i++) {
			if (answers.get(index).exists(i))
				nessesaryImplicant.add(tempImplicantList.get(i));
		}
		implicantList = nessesaryImplicant;
	}