I believe I've heard that might is the past tense of may. So you should say might have never may have.
2 Answers
I don't think this specific aspect of the may/might debate has been asked about in previous questions.
Catherine Soanes at ODO Blog has this to say:
Basically, might is the past tense of may. It therefore seems logical for grammatical sticklers to argue that if you’re talking about a possible situation in the present or the future, you should always use the present tense, may:
If you’re feeling queasy, you may eat less and lose weight.
And, equally, if you’re referring to something which could have been the case in the past, the past tense, might, is said (by the grammatically orthodox) to be correct:
For all we know, she might have been undergoing counselling.
However, people don’t often make this distinction in today’s English, and it’s generally acceptable to use either may [or] might to talk about the present/future or the past:
Present or future event
√ She thinks she may be going crazy.
√ She thinks she might be going crazy.
Past event
√ I might have forgotten to mention it at the time.
√ I may have forgotten to mention it at the time.
It’s all about dialect variation:
Dialects A and B are differentiated by reference to constructions like:
- I thought it might rain before we got home.
- I thought it may rain before we got home.
In the older Dialect A (which I speak) [2] is ungrammatical (just like *I thought I can finish the book before I got home): [1], with "might" is required. In Dialect B, [2] is possible as well as [1]. In Dialect A, "might" is undoubtedly the preterite counterpart of "may", just as "could" is of "can" because it is the form required in backshift. In Dialect B there's no basis for retaining (from earlier stages of the language) the analysis of "might" as the preterite of "may": it must be a distinct lexeme.
One factor facilitating this linguistic change is that "might" even in Dialect A is hardly used in the primary sense of the preterite, to indicate past time: we are more likely to say "was/were allowed" rather than "might" for past time permission, e.g. He told me "I/we might go")