1. 对过去猜测： must have done can’t / couldn’t have done may (not)/ might (not) have done
might have done
could have done
should/ ought to have done shouldn’t/ oughtn’t to have done would have done had better have done would rather have done
1. must have +done sth 对过去时间里可能发生的事情的很有 把握的推测，只用于肯定句中，具有 “肯定”，“准是"的意思。 — Linda has gone to work, but her bicycle is still here. — She must have gone by bus.
在含有must的反意疑问句中，疑问 部分的助动词根据实际情况而定： He must be an actor, isn’t he? （表现在 ）他一定是个演员，对吗？ She must have met a fairy, hasn’t she? （表完成）她一定遇到仙女了，是吗？ It must have rained last night, didn’t it? （表过去）昨晚一定下雨了，是不是？
2. can’ t / couldn’t have done 表示说 话者对过去行为或状态进行的否定 推测，译为“不可能”， “一定 不”。用于否定句和疑问句中。 could have done 还可用来表示过去 可以完成而实际未完成的动作 “本可以”（对过去虚拟） You could have done better, but you were too careless.
3. may / might have done 表示说话者 对过去的动作或状态的推测或猜想， 用于肯定句中，表示“或许已 经”“可能已经”；用于否定句中， 表示“可能还没有” may 语气比 might强。 He may not have finished his homework. might have done 还表示过去本来可以 做而实际上却没有做，“本可以” You might have written to me when
4. could have done 表示过去本来能 够做到，但因为种种原因而实际上 并没做到。“本来能够，本来可 以”， 含有劝告责备的意思。 He could have finished his homework all by himself.
5. needn’t have done 表示过去做了本 来不必做的事或过去做某事纯属多 余，“本来没必要，根本不必”。 也可用于疑问句。 It was so near. We needn’t have taken a taxi.
6. should have done; ought to have done 常 带有后悔、埋怨或责备的口气。“本应 该”ought go 比should 语气强f You should have come here a few minutes earlier. The bus has left. shouldn’t / oughtn’t to have done “本不该” You shouldn’t have spoken to him like that. had better have done 用于事后的建议，含 有轻微责备的口吻“当时最好做了某事。 We had better have followed his advice.
7. would have done 表示过去本来要 做某事却因某种原因未做， 通常 用来说明某种情况，不含责备之意。 “本来要，本来能” I would have written to you earlier but I have been ill.
8. would rather have done 表示”当 时宁愿做了某事“，否定形式是 would rather not have done 表示相 反的含义，两者都表示”后悔“的 意思。 I was angry with her, but now I would rather not have done that . 我曾很生她的气，但现在我希望没 有那样做。
本来可以做而实际未做的几种形式： could have done might have done would have done 既表推测又表虚拟的几种形式： could have done might have done