情态动词+ have +过去分词
1) may(might) have + done sth, can (could) have + done sth 表示过去,推测过去时间里可能发生的事情.
Philip may (might) have been hurt seriously in the car accident.
Philip can (could) have been hurt seriously in the car accident.
2) must have +done sth,对过去时间里可能发生的事情的推测,语气较强,具有"肯定","谅必"的意思.
---Linda has gone to work, but her bicycle is still here.
---She must have gone by bus.
3) ought to have done sth, should have done sth
本应该做某事,而事实上并没有做.否定句表示"不该做某事而做了".
You ought to (should) have been more careful in this experiment.
He ought not to have thrown the old clothes away.(事实上已扔了.)
ought to 在语气上比should 要强.
而后面跟have been done 表示:本来能,本来应该,本来必须.