protected ConclusionType evaluateAmbiguousConclusionsByModality(Literal literal, ConclusionType conclusionType, //
			Collection<Literal> conflictLiterals) throws ReasoningEngineException {
		// no need to perform literal modal operators comparisons if the conclusion type is already negative
		if (conclusionType.isNegativeConclusion()) return conclusionType;

		// count the number of conflict modal literals that appear in the records 
		// and the number of literals weaker than the prescribed literal
		int conflictLiteralExistCount = 0;
		int strongModeCount = 0;		
		for (Literal conflictLiteral : conflictLiterals) {
			if (isRecordExist(conflictLiteral, conclusionType)) {
				conflictLiteralExistCount++;
				if (hasStrongerMode(literal, conflictLiteral)) {
					logMessage(Level.FINEST, 2, null, literal, " hasStrongerMode: ", conflictLiteral);
					strongModeCount++;
				}
			}
		}

		// only conclusion with strongest modality is positively concluded
		if (strongModeCount == conflictLiteralExistCount) {
			// literal with strongest modal operator find
			// positive conclusion => conclusion type unchanged
			return conclusionType;
		} else {
			// literal does not with strongest modality
			// defeated conclusion => change conclusion type to negative
			switch (conclusionType) {
			case DEFINITE_PROVABLE:
				return ConclusionType.DEFINITE_NOT_PROVABLE;
			case DEFEASIBLY_PROVABLE:
				return ConclusionType.DEFEASIBLY_NOT_PROVABLE;
			default:
				throw new ReasoningEngineException(getClass(), "unknown conclusion type: " + conclusionType);
			}
		}
	}