Speakers of Slavic languages are well familiar with the notion of aspect. Aspect expresses how an action relates to the flow of time—whether it has finished or not, whether it happens regularly or just once, and so on.
Learners are usually told that in English, aspects correspond to the use of auxiliary verbs; for example, “did” can express an action that happened at a certain point in time, as in “he did it yesterday”, whereas “has done” expresses that the action took place somewhere in the interval the beginning of time – now, as in “he has already done it”. This is called grammatical aspect, because it is the grammatical construction that determines the aspect, not the verb itself.
In Slavic languages, aspect is an inherent property of each verb. “Did” and “has done” are expressed by the past tense of two different verbs, one of which expresses unfinished actions, while the other expresses finished actions. This is called lexical aspect.
Surprising as it may be, English has not only grammatical aspect (expressed mostly by auxiliary verbs, e.g. “has done”, “used to do”, “was doing”), but also several types of lexical aspect.
I won’t go into detail in this article, but let’s just note that some verbs in English express that an action continues (such as “run”, and that’s why you can say “I ran for an hour” but not “I ran in an hour”), while others almost always express that an action stops, such as “finish” (you can say “I finished my homework in an hour” but not “I finished it for an hour”).
Going back to the main topic of this article: The verb find falls into the second category. Even when it is used in the simple past, it still expresses a finished action. Compare:
I ran from my house to the police station.
The first sentence implies that you have finished your search, but it is not entirely clear from the second sentence whether you have reached your destination. Did you just run and stop half way through, or have you run to the police station, which would imply your journey was successful?
For verbs like “run”, the present perfect is one of the devices we can use to resolve the ambiguity outlined above. For verbs like “find”, the present perfect is usually superfluous and makes the whole sentence sound less natural (unless you want to specifically emphasize the finality of the action).
In some cases, you should completely avoid the present perfect, as in
The present perfect is never used with a specific time in the past; hence the implied meaning of “having found it yesterday” is not grammatically correct. On the other hand, you should always use the present perfect when the search still continues:
The reason is that “I didn’t find” doesn’t imply that the search still continues; on the contrary, it implies that it has ended but was not successful. By using the present perfect in the negative, we make it clear that the action itself hasn’t finished yet.