We use modal verbs followed by have + Past Participle (V3) to make logical guesses about past events based on available evidence. When we are almost 100% certain that something happened, we use must have (e.g., "He must have been happy"). Conversely, if we are sure something was impossible or did not happen, we use can't have (e.g., "He can't have known the truth"). For situations where we are only about 50% certain, we use might/may/could have to show it was a mere possibility. It is important to remember that for negative possibility, the "not" comes immediately after the modal, as in "might not have," to correctly express that something possibly didn't occur.