elk-reasoner/src/main/java/org/semanticweb/elk/reasoner/consistency/ConsistencyCheckingState.java
public Proof<? extends EntailmentInference> getEvidence(
			final boolean atMostOne) {

		return new Proof<EntailmentInference>() {

			@SuppressWarnings("unchecked")
			@Override
			public Collection<OntologyInconsistencyEntailmentInference> getInferences(
					final Object conclusion) {

				if (!OntologyInconsistencyImpl.INSTANCE.equals(conclusion)) {
					return Collections.emptyList();
				}
				// else

				final Collection<? extends IndexedIndividual> inconsistentIndividuals = getInconsistentIndividuals();
				Iterable<OntologyInconsistencyEntailmentInference> result = Operations
						.map(inconsistentIndividuals,
								INDIVIDUAL_TO_ENTAILMENT_INFERENCE);
				int size = inconsistentIndividuals.size();

				if (isTopObjectPropertyInBottom_) {
					result = Operations.concat(Operations
							.<OntologyInconsistencyEntailmentInference> singleton(
									new TopObjectPropertyInBottomEntailsOntologyInconsistencyImpl(
											conclusionFactory_
													.getSubPropertyChain(
															topProperty_,
															bottomProperty_))),
							result);
					size++;
				}

				if (isOwlThingInconsistent_) {
					result = Operations.concat(Operations
							.<OntologyInconsistencyEntailmentInference> singleton(
									new OwlThingInconsistencyEntailsOntologyInconsistencyImpl(
											conclusionFactory_.getContradiction(
													owlThing_))),
							result);
					size++;
				}

				if (atMostOne) {
					final Iterator<OntologyInconsistencyEntailmentInference> iter = result
							.iterator();
					if (!iter.hasNext()) {
						return Collections.emptyList();
					}
					// else
					return Collections.singleton(iter.next());
				}
				// else

				return Operations.getCollection(result, size);
			}

		};

	}
public Proof<? extends EntailmentInference> getEvidence(
			final boolean atMostOne) {

		return new Proof<EntailmentInference>() {

			@SuppressWarnings("unchecked")
			@Override
			public Collection<OntologyInconsistencyEntailmentInference> getInferences(
					final Object conclusion) {

				if (!OntologyInconsistencyImpl.INSTANCE.equals(conclusion)) {
					return Collections.emptyList();
				}
				// else

				final Collection<? extends IndexedIndividual> inconsistentIndividuals = getInconsistentIndividuals();
				Iterable<OntologyInconsistencyEntailmentInference> result = Operations
						.map(inconsistentIndividuals,
								INDIVIDUAL_TO_ENTAILMENT_INFERENCE);
				int size = inconsistentIndividuals.size();

				if (isTopObjectPropertyInBottom_) {
					result = Operations.concat(Operations
							.<OntologyInconsistencyEntailmentInference> singleton(
									new TopObjectPropertyInBottomEntailsOntologyInconsistencyImpl(
											conclusionFactory_
													.getSubPropertyChain(
															topProperty_,
															bottomProperty_))),
							result);
					size++;
				}

				if (isOwlThingInconsistent_) {
					result = Operations.concat(Operations
							.<OntologyInconsistencyEntailmentInference> singleton(
									new OwlThingInconsistencyEntailsOntologyInconsistencyImpl(
											conclusionFactory_.getContradiction(
													owlThing_))),
							result);
					size++;
				}

				if (atMostOne) {
					final Iterator<OntologyInconsistencyEntailmentInference> iter = result
							.iterator();
					if (!iter.hasNext()) {
						return Collections.emptyList();
					}
					// else
					return Collections.singleton(iter.next());
				}
				// else

				return Operations.getCollection(result, size);
			}

		};

	}
Explains why an ontology inconsistency is entailed. If it is not
entailed, the returned proof is empty.

@param atMostOne
Whether at most one explanation should be returned.
@return An evidence of entailment of ontology inconsistency.