public CompoundBlock getCombinationalCircuit(List<List<Boolean>> input,
			List<Boolean> output) {

		// test if data is valid
		if (input == null || output == null) {
			throw new IllegalArgumentException(
					"Input or output parameter is null.");
		}
		final int lines = output.size();
		int variables = 0;
		for (List<Boolean> list : input) {
			if (list.size() != lines) {
				throw new IllegalArgumentException(
						"Input and output data don't have the same length.");
			}
			variables += 1;
		}
		if (lines != Math.pow(2, variables)) {
			throw new IllegalArgumentException(
					"Not enought data sets for given number of independent variables.");
		}

		// simplify given combinational circuit

		// build compound block for combinational circuit
		CompoundBlock combinationalCircuit = new CompoundBlock(
				"CombinationalCircuit", variables, 1);

		return combinationalCircuit;
	}