Jwschang,
The more it is fixed, the more it looks bad.
The rule is very basic that Present Perfect cannot stay with past time expressions:
Ex: *I have visited there last week.
I have both explanation and example, so there will be no room for misunderstanding. Even a beginner in studying English tenses has to learn this.
And surprisingly you claimed you have not heard of this rule.
Now you wanted to fix it up:
> It means you can't make a sentence such as
> "I have eaten when you arrived". So the rule
> is: You don't use the Present Perfect with the
> Simple Past (not "past time expression")
>
My reply: "Past time expressions" are like yesterday, last week, last year, etc., and are including "when you arrived", thus explaining also your example "I have eaten when you arrived".
Please visit the following page about tenses if you have time:
You CANNOT use the Present Perfect with time expressions such as "yesterday," "one year ago," "last week," "when I was a chlid," "when I lived in Japan," "at that moment," "that day" or "one day."
==
http://www.englishpage.com/verbpage/presentperfect.html(a viewpoint, doesn't make it a rule.)
You fix your slip by twist the common rule into "You don't use the Present Perfect with the Simple Past (not "past time expression")". It is incorrect. There is no rule to forbid the two tenses working together:
Ex: I have lived here since we parted.
(The difference is obvious, between "since" as used here, and "when" used in "I had eaten when he arrived"; both are conjunctions but one is a different time from the main clause, the other is simultaneous.)
Ex: Their ancestors wrote many instructions that have helped them a lot today.
(a clause of consequence.)
Ex: He claimed that he has never seen the picture.
(a noun clause.)
I am afraid you need to upgrade the version of you fixture.