For example:

I have gotten a bad stomach because I had eaten a wrong food earlier.

Is that sentence grammatically correct?


No, it is not correct.

The perfect designates a state at the time you are speaking about (your 'Reference Time') which arises out of a prior eventuality: an event or state which occurred at some time before Reference Time.

So the present perfect is a present tense: its Reference Time is the present and it designates a present state which arises out of a past eventuality.

The past perfect is a past tense: its Reference Time is some point in the past and it designates a state at that time which arose out of some event before that time.

In your sentence, your main clause employs the present perfect; it is a statement about your present state: the stomach-ache which you have now. It establishes a present Reference Time, and the time of the eventuality in the subordinate clause must be expressed relative to the present—ordinarily, with a simple past:

... because I ate bad food.

But a present perfect is also acceptable in the subordinate clause:

... because I've eaten bad food.

I've deleted "earlier" because we ordinarily use "earlier" in the same way as a past perfect: to refer to an eventuality before a past Reference Time. With a present Reference Time it is superfluous to speak of an eventuality cast in the past tense as "earlier": the notion of 'earlier than now' is built in to the past tense.

Note, too, that we do not speak of a foodfood is a non-count noun; we do not usually speak of wrong food but of bad (or spoiled) food.

Moreover, it is unlikely that anyone would say "I have gotten" a stomach-ache; we ordinarily say "I have" or, more colloquially, "I've got" a stomach-ache. And in speaking of the cause of a disease or disorder we're more likely to use a from+gerund preposition phrase than a because clause

I've got a stomach-ache from eating bad food.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.