at this class we learned about perfect modals.
- When you regret or want to judge someone, you can use:
should have + past participle;
'I should have arrived sooner.'
'You shouldn't have said that.'
In both cases, it sounds pretty much as their translations to Portuguese.
'Eu deveria ter chegado antes.'
'Você não deveria ter dito isto.'
- When you want to express a possibility or to speculate, you can use:
may have, might have + p.p
'The car might have broken down.'
If, for instance, you're waiting for some friend and he didn't arrive yet, and never answer his cellphone, like me :)
You are speculating because there is no evidence that his car has broken down, but you think that is a possible reason.
- When you are sure about a scenario that didn't happen but it could have happened, you can use:
would have + p.p.
'I would have been a great chef.'
But if you have some doubt about it, you use:
could have + p.p.
'I could have been a great chef.'
It is pretty close but there is a little difference. The first one means you know you would be a great chef. On the other hand, the last one means you have no guarantee.
- At last, there is the 'must have'. The book says it is used when you want to do a 'draw conclusion'. It can be confused to know when to use 'must have' or 'might have'. Actually, I don't understand it very well, but I've searched and found this definition.
"Drawing conclusions refers to making an inference based of several bit of information. Usually, all the information available is considered before one draws a conclusion."
So, after to think about the examples given by the book, I believe that if you have no information, you use the 'might have'. Otherwise, if there is any tip use 'must have'.
To be clear, using the example above:
'The car might have broken down'.
My friend didn't tell me his car had problems. But, since, he didn't arrived, I speculate it.
But if I say:
'My friend said yesterday that his car wasn't good. The car must have broken down.'
Well, that's what I understood. If I'm wrong, please, let me know. :)