A conditional sentence with present perfect

Is it correct to say:

If you have finished it by then, I'll come and take it.

thus using the present perfect in the "if" clause to mean the future instead of the present?


Solution 1:

It is indeed correct, and perhaps you're grasping this intuitively without needing a theoretical understanding.

Robusto's answer is helpful. If plus a present tense can be used to indicate a hypothetical future state, regardless of whether by then, or any other explicit indicator of time, is present:

If you bake me a cake tomorrow, I will dance a jig.

If you bake me biscuits, I will dance the foxtrot tomorrow.

If you bake me a torte, I will dance the rumba.

*If you bake me a pie tomorrow, I dance the polka.

*If you will bake me a quiche tomorrow, I will dance the watusi.

However, Robusto doesn't mention a subtlety about your question. The present perfect is a tense that describes completed action from the point of view of the present. When used in an if clause (where present indicates a hypothetical future state), it's referring to completed action from the point of view of the future.

So,

If you have finished it by then, I'll come and take it.

*If you will have finished it by then, I'll come and take it

Have finished is describing completed action, but its inclusion in the if clause means the action is completed from the point of view of the future. You haven't begun your homework yet, but if you have finished it by tomorrow, I'll buy you ice cream.

Solution 2:

The "If ... by then" of the first clause establishes the future context, so any present-tense verb form will work to express a future condition:

If it works by then, let's use it.

If the road has been built by then, we'll drive on it.

If I've seen the movie by then, I'll tell you about it.

If it hasn't rained by then, we'll have to irrigate the crops.

If I'm sleeping by then, I won't care.

Solution 3:

Will (or 'll) is being used there, Dominic, to make an observation about a past event which has current relevance and which is likely to be true. It’s a fairly common use of this modal verb. Here’s a similar example: ‘If they have been out all day, they’ll be hungry by now.’ The main clause here has ‘ll + infinitive, because the hunger is assumed to be current. The construction ‘ll + have + past participle occurs where the action described in the main clause is assumed to have taken place, as in ‘If they have been out all day, they’ll have eaten by now’, and as in your example.

(Welcome to EL&U, Dominic. As a general rule, it’s preferable to post a question like this separately, rather than as an answer to another question.)