"might" vs "might have" in a narrative set in the past

The men kept walking well into the night, because if it rained the next day, they might not [reach / have reached] the village before the enemy arrived. At around midnight, they came to a clearing a few miles west of the village and finally decided to set up camp for the night.

Which would you choose in this context, "reach" or "have reached"?

A colleague of mine insists that "have reached" is the only correct option because the sentence refers to a possibility in the past and that "might" can only refer to the present (e.g. "He might be a mathematician.")

In contrast, another colleague argues "reach" should be chosen because "have reached" is only reserved for situations where something happened before the point of reference (e.g. "The doctor suspected that the patient might have taken an overdose of the medication.")

I would tend to agree with the first ("reach") but I am not completely sure.

Thanks.


Solution 1:

I would personally not have written "might/might have" in that context, because it would sound a lot more natural if you changed it to

"Because if it rained the next day, they wouldn't reach the village before the enemy arrived."

Solution 2:

IMO “might not have reached” is the correct choice of the two, as it reflects the past tense in agreement with the context of the sentence.