IL has “proof by negation” (corresponding to lambda) and “derive a contradiction” (corresponding to application) constructs, and a type system which cleanly separates eager values from lazy (possibly nonterminating) value-thunks.

]]>– – – A to avoid concatenating “–” into a single line! Jakob ]]>

The proof, of course, is:

lambda x:—A. lambda y:A. x (lambda z:-A. z y).

So, we see that double negation elimination (which is equivalent to the non-constructive principle A v -A) is provable constructively on negated formulae. This fact is at work in the negative translation from classical logic into constructive logic by Kolmogorov, Gödel, Gentzen.

Yours

Jakob

I agree with everything you’ve now said, but that is not how I read the post, which contains statements like “of course one proves negative statements by contradiction!” (paraconsistency may require something stronger), “It is entirely a matter of intellectual honesty” (only if intellectually you accept the premise), “’oh that’s so cheap.’ Precisely.” (yet no cheaper than accepting non-constructive refutations) and “anyone is free to ignore the distinction for the sake of convenience” (or to make it up for the sake of convenience).

I guess that what bothered me was the tone, which I read as judgmental and as expressing an attitude towards logic that Wittgenstein said invites needless dogmatism and dispute (he was referring to positions held by some logicians regarding the foundation of mathematics). There’s already more than enough needless dogmatism and dispute over formalism in CS as it is.

I think that the important point about the distinction between proof by contradiction and a proof that ends in contradiction in constructive settings could be made more, well, constructively, by pointing out that there are important circumstances where we wish to make the distinction and important circumstances where we wish not to make it (and it doesn’t mean we’re ignoring it, just that it’s not there in those cases).

]]>No. Again, it is not an argument. The only way to compare classical and constructive mathematics is to only assume what is common to both. It just happens that what is common to both from a formal perspective is constructive mathematics. Thus, that is our language of choice for this discussion.

The distinction between constructive and nonconstructive proof is real in the sense that constructive mathematicians (and many conventional mathematicians) make a distinction. They may well be arbitrary in making that distinction, but that is not the subject of this discussion. The fact that the distinction is made by constructive mathematicians means that the distinction is already there, and we are just trying to work out precisely what they mean. Specifically, they don’t mean that no proofs can end at deriving a contradiction.

To continue your analogy, this post is like a post that points out that finitists do have a notion of natural number, contrary to an assumption that they don’t because there are infinitely many natural numbers. It may have have a little section justifying the finitistic approach, but the point of the post is to see what *can* be done finitistically, compared to what can be done classically, say. It is an investigation (under the assumptions of finitism), not an argument.

]]>I’m not saying you or the post are making an argument for constructivism, but that you’re begging the question by arguing that there is a “real” distinction between a direct and an indirect proof, and I think I can prove it:

A constructivist would say that a proof by contradiction in cases where LEM can be proven (say, on finite sets of naturals) is a constructive proof. He may even call it a direct proof, and give a nice reason why it’s so. It all really comes down to your views on infinity. A finitist, whether one of the constructivist or the formalist persuasion believes that there is a “real” difference between direct and indirect proof in infinitary settings (the formalist calls that distinction one between a “real” and an “ideal” proposition or proof). A Platonist, on the other hand, would say that there really is no distinction, and the same excuse you’d give for LEM in a finitary setting applies equally in infinitary settings as well. A Platonist would say that you’re being a hypocrite for drawing the distinction only in the case of proving existentials but not in the case of refuting universals, and you’re being “intellectually dishonest” by ignoring the distinction between a construction of a specific counterexample and merely “hinting” that one exists.

The Platonist would say that there is no real difference which one is then free to ignore, but an artificial distinction that you’ve made up at some arbitrary line that you’ve drawn at the computable. He would say that there is no “real” reason to draw the line there, because if there were, why not point out the “real” difference between constructive proofs of propositions with an intractable descriptive complexity and a constructive proof of tractable propositions as an ultra-finitist would? That is a difference which you’re then free to ignore but it would be intellectually dishonest to say it doesn’t exist.

]]>> Disjunction and existence feel more powerful, but negation neutralises that power

I feel that this statement, like the post itself, is begging the question. Ultimately, it rests on a philosophical notion of what negation (and its “power”) means. With regards to A ⇒ ¬¬A and ¬¬A ⇒ A, there can be good philosophical and intuitive arguments for accepting both, or just one (either one!), and if we accept just one, we get a weaker logic that can obviously make more distinctions namely. But there can be valid arguments for classicism, constructivism, or paraconsistency, and none of them is more universally intuitive than the other. The “natural” intuition — if one exists at all — largely depends on circumstance and the intended use of the logic.

]]>Are we talking formally or informally? Formally, the answer is simple: work in a constructive foundation, then all of your proofs will be constructive by construction ;-). Even working in a non-constructive foundation, we can inspect a formal proof and see whether it uses the law of excluded middle, double negation elimination, or whatever non-constructive rules we have.

Informally, intuition is gained by rigorous practice of working in a constructive setting, just as intuition about the real numbers is gained by doing analysis. Disjunction and existence feel more powerful, but negation neutralises that power. One becomes used to following the data around a proof, checking that none were manufactured in the middle. One relies on ideas of continuity and computability to give a sense of what can’t be proven.

I feel that I should say something else about the outermost form being a negation. The shape of a proof is highly dependent on the form of the proposition being proved. For example, if we’re trying to prove A ∧ B and we have no useful assumptions, we’re going to prove A, then prove B. Propositions have recursive structure, and so do proofs. A proof partially explores the syntax tree of the proposition. If the proof reaches a ¬A statement with no useful assumptions, we begin a proof of a negation: assume A and derive a contradiction. Then we carry on with the rest of the proof. If at any point we reach some A, and then say “assume ¬A […] contradiction”, we have done a proof by contradiction, which constructively only proves ¬¬A – a mismatch with A.

]]>