The structure should / must / ought to have + past participle is used to say what one thinks was essential.
- You should have locked the door before leaving the house. (= You did not lock the door before leaving the house, though that was very important.)
- They should not have raised the price of essential articles. (= They raised the price of essential articles. That was not right.)
- He must have been more careful. (= He wasn’t careful though that was absolutely necessary.)
- He ought to have finished the job last week. (= It was absolutely necessary for him to finish the job last week, but he failed to do so.)
Read the following statements. The first is a statement. The second is a response to it.
- I didn’t thank him.
- You should have thanked him.
- He didn’t ask me before borrowing my car.
- He should have asked you before borrowing your car.
- I told him a lie.
- You ought not to have told him a lie.
- She behaved rather rudely.
- She ought not to have behaved rudely.
- He forgot to bring his passport.
- He should not have forgotten to bring his passport.
- The man was under the influence of alcohol.
- The man should not have been under the influence of alcohol.
- The boy was rude to the old man.
- The boy must not have been rude to the old man.
- He did not prepare for the test.
- He ought to have prepared for the test.
- She took the matter too seriously.
- She should not have taken the matter too seriously.
Must is stronger than should. Ought to is similar to should. It is not as strong as must.