Temporal clause
I can't decide whether these two sentences are both grammatically correct :
He will go shopping after he finishes his homework.
He will go shopping after he has finished his homework.
I believe that the first sentence implies that he will go shopping as soon as he finishes his homework and the second one means that he will go shopping at a certain time after he has finished his homework.
What puzzles me is that my teacher says that only the first one is correct because he says that the actions can't be simultaneous.
Solution 1:
It sounds like your teacher is wrong, though we may be missing his point. Nonetheless, if native speakers of a language hear a sentence and can make sense of it (and it sounds "well-formed"), then it is not "wrong."
Although both sentences overlap in their statement (shopping will occur sometime after homework completion), their meaning differs slightly based on how the verbs used to construe the events.
The first sentence uses the present simple tense for the subordinate clause ("after he finishes"), the second uses the present perfect. The first implies (though it doesn't require) that he is in the process of finishing the homework at the time of the utterance. In the sentence, the "claim" is primarily about temporal order. The event of completing the homework will happen prior to the event of shopping (in the future tense).
The second sentence's use of the present perfect shifts the viewpoint or perspective of the speaker/hearer to view the action of the verb from the vantage of its being complete. Because of that, it makes no "claim" on the activity at present (he may be working on his homework, but he may not have begun it yet too). And unlike the prior sentence, rather than simply ordering events, this sentence has the further implication that the homework will have all been done (of course that's implied in "finishing" but the perfect construes the event as a whole that is complete in a way that the present does not).