MODAL VERBS IN THE PAST
Although the majority of modal verbs have no past form, it is possible to use them to refer to the past. It requires the usage of the so-called perfect infinitive, which is the construction of the modal verb + have + past participle.
To express that something is probably happening now or will happen soon, we use the modal verb may or might:
He may be at home.
We might leave earlier.
If we want to say that something probably happened in the past, we use may have or might have:
MAY / MIGHT + HAVE + PAST PARTICIPLE
He may have gone shopping.
I might have lost it somewhere.
She may not have met him before.
To assume the present and the future, instead of may/might we also use the verb could:
She could be sleeping now.
They could be abroad.
However, when the same assumption applies to the past, we use “could have” form.
COULD + HAVE + PAST PARTICIPLE
I could have lost the keys in the pub.
The form could have is also used when talking about something that could have happened, but did not:
You could have broken your leg!
I could have gone to the cinema, but I decided to stay home.
Whereas negative form couldn’t have is used to talk about something that couldn’t have happened and something impossible:
She couldn’t have met him before. He used to live in the USA.
He couldn’t have gone to the shopping centre. It’s closed on Sundays.
When we expressed certainty about an event or state, we use must:
It’s been such a long day. You must be tired.
The same situation, but in the past, is expressed by must have:
MUST + HAVE + PAST PARTICIPLE
You must have been tired.
In turn, the verb can’t used in the present tense means that a situation is impossible:
She can’t be at home. I called by 5 minutes ago, and nobody answered the door.
Can’t have, correspondingly, means that a situation could not have happened in the past:
CAN’T + HAVE + PAST PARTICIPLE
She can’t have been asleep. Her eyes were open.
When we are giving advice or suggesting what seemed to be the best solution in a given situation, we use should or ought to:
You should go there straight away.
I ought to spend more time with my family. When we discover what someone should have done in the past (but probably did not), we use should have or ought to have:
SHOULD / OUGHT TO + HAVE + PAST PARTICIPLE
You should have gone there straight away.
I ought to have spent more time with my family.