He sounds like a bit of a prat.
I'm not saying it's happened this time but sometimes when you discover an instance of infidelity there are many more as-yet undiscovered instances.
I would start with the assumption that he has to go, then see if you can work out why on earth you should stick with him, rather than the other way around. Precede each possible reason with the phrase "This man who has betrayed me" to test it out, e.g. "This man who has betrayed me, I would like him to be the father of my children because I'm in my late thirties and I might not be able to find somebody better in time" ...