| ▲ | pron 3 hours ago | |||||||
> Obviously, we want to stick with useful data structures, so we use constructive logic for programming. I don't know who "we" are, but most proofs of algorithm correctness use classical logic. Also, there's nothing "obvious" about what you said unless you want proof objects, and why you'd want that is far from obvious in itself. | ||||||||
| ▲ | amavect 15 minutes ago | parent | next [-] | |||||||
Well, to translate my words to your liking: "In my opinion, everyone already uses a sort of constructive logic for programming." I challenge you on "most proofs of algorithm correctness use classical logic". That means double negation elimination, or excluded middle. I bet most proofs don't use those. Give examples. | ||||||||
| ||||||||
| ▲ | zozbot234 3 hours ago | parent | prev [-] | |||||||
The difference only becomes evident when proving liveness/termination (since if your algorithm terminates successfully it has to construct something, and it only has to be proven that it's not incorrect) and then it turns out that these proofs do use something quite aligned to constructive logic. | ||||||||
| ||||||||