1. A computer-implemented method of searching through a database of documents for documents to generate a score for a candidate answer to an input query, the method comprising: indexing, by a computer processor system, the documents in the database, including for each of the documents, annotating, by the computer processor system, spans of text in said each document that refer to entities with entity types to form entity annotations, and annotating, by the computer processor system, spans of text in said each document that refer to facts with fact types to form relation annotations, for each of the annotated spans of text that refers to one of the facts, linking, by the computer processor system, said one of the facts to said each annotation, and recording, by the computer processor system, in an index the entities, the facts, the annotations that refer to said entities, and the annotations that refer to said facts; receiving an input query at the computer processor system; conducting, by the computer processor system, a search in a data source to identify a candidate answer to the input query using theorem proving over the entities and the facts in the index; determining at the computer processor system a set of the documents in the database using said index and theorem proving for scoring the candidate answer, including: identifying a plurality of logical proofs of the candidate answer, each of the logical proofs including a conclusion and a sequence of premises that logically prove the conclusion, including using the candidate answer as the conclusion of each of the logical proofs, and wherein the sequence of the premises of each of the logical proofs forms a logical proof of the candidate answer; for each of the logical proofs, identifying, by using the facts and the entities in the index, one or more documents in the database of documents that establish all the premises of the each of the logical proofs, including for each of the premises of said each of the logical proofs, searching through the database of documents to identify one or more of the documents in the database of documents that include said each of premises, and selecting a plurality of the identified documents in the database of documents to form a set of documents for said each of the logical proofs, wherein the set of documents for said each of the logical proofs includes all the premises of said each of the logical; and selecting, based on specified criteria, one of the sets of documents for the logical proofs as the set of documents for scoring the candidate answer; and using, by the computer processor system, the set of documents selected for scoring the candidate answer to generate a score for the candidate answer.