1. could have, couldn’t have and can’t have indicate that something was possible or impossible in the past:
Why were you driving so fast? You could have had an accident.
You couldn’t have seen her in Chicago! I know for a fact that she was right here in Phoenix!
2. should have and shouldn’t have indicate regret or reprimand for a mistake in the past:
I know that I should have studied last night, but I decided to watch TV instead.
You shouldn’t have cut class yesterday. You missed a lot of material.
3. must have and must not have (usually no contraction) are used to make an assumption about what happened in the past:
Where’s Jill? She must have forgotten that we were supposed to meet at 2 p.m.
Mr. Lee changed the channel. He must not have been interested in the program.
4. may have, may not have, might have and might not have are used to make a guess about what happened in the past:
I don’t know why he didn’t come. He may not have received my message.
I don’t know why they didn’t make an offer on the house. The asking price might have been too high.
5. would have and wouldn’t have are used to form the past conditional in Type 3 conditional statements:
I would have helped him if he had asked me.
I wouldn’t have interrupted if I had known you were busy.
6. NOTE how you form the negative and question forms of a past modal: the word order is different from what you could probably predict:
AFFIRMATIVE: Nancy missed the staff meeting this morning. She might have thought the meeting was this afternoon.
NEGATIVE: She might not have known about the meeting.
(modal + not + have + past participle)
QUESTION: Might she have forgotten about it?
(modal + subject + have + past participle?)