The word yesterday makes all the difference here. It provides a time frame, and that makes all the difference. You can say I have seen him today, but you can't say I have seen him yesterday. I suppose the reason for that is that while saw refers to the past, have seen is about both the past and the present.
How's that?
:wink:

English Teacher