National defense is not a public good, and here is a logical proof of that fact:
1. For national defense to be a public good, the social benefits of its existence must exceed its social costs. (From the definition).
2. The social benefits and costs of national defense are the sum of all people’s willingness to pay. (By definition).
3. On average, people’s willingness to pay for their own physical security is higher than their willingness to pay to reduce the physical security of others. (My critical assumption, which I’ll call Limited Malevolence).
4. If no country had national defense, people’s average physical security would be higher than it is now, because the danger which any given country’s national defense deters is attacks from the national defense of other countries.
5. Since the existence of national defense reduces people’s average physical security (from 4), and people’s average willingness to pay to increase their own physical security exceeds their average willingness to pay to reduce the physical security of others (from 3), the net social benefits of the existence of national defense are negative.
6. Therefore (from 1 and 2), national defense is not a public good. QED.