You are viewing the historical archive of The Philosophy Forum.
For current discussions, visit the live forum.
Go to live forum

Curry's Paradox

TheMadFool January 06, 2020 at 20:27 13150 views 40 comments
Curry's paradox as attributed to Haskell Curry (1900 - 1982) and Martin Hugo Lob (1921 - 2006):

Formal proof:

The main statement is: If this sentence is true, then P2

Let P1 = if this sentence is true then P2

Further translation yields P1 = P1 > P2

1. P1 = (P1 > P2)....assume
2. P1 > P1......Id
3. P1 > (P1 > P2)....1 Id
4. (P1 & P1) > P2....3 Exp
5. P1 > P2............4 Taut
6.P1....from 1, 5
7. P2....5, 6 MP

Informal proof:

The statement P1 = If P1 then P2. Assuming P1 means both P1 and if P1 then P2 are true. Apply modus ponens and P2 is true which means if P1 then P2 is true. We know then that P1 is true because P1 = P1 > P2. Use modus ponens one more time and we get P2.

The paradox is that P2 can be any imaginable proposition.

As another way of proving anything, distinct from the more familiar ex falso quodlibet, I'd like some opinions on this paradox.

Comments (40)

Pfhorrest January 07, 2020 at 07:47 #369323
"If P1 then P2" translates to "P2 or not P1", so assuming P1 = "if P1 then P2" is just assuming that P2 (or else self-contradiction), and of course you can prove any P2 by starting from the assumption that either it is true or there is a contradiction (because even if there is a contradiction, that will let you prove anything too).

Consider for example: "If this sentence is true then I am the Pope of Mars." That just means "I am the Pope of Mars or this sentence is false." If we believe that sentence, then we disregard "this sentence is false" and so conclude that I am the Pope of Mars. If we instead assume I am not the Pope of Mars (because there is no such thing and I'm not even Martian-Catholic anyway), we can conclude that "this sentence is false", from which we can conclude anything, including that I am the Pope of Mars anyway, and also that I am not the Pope of Mars, at the same time if we want. You're basically just baking in an ex falso quodlibet into the premise.
TheMadFool January 07, 2020 at 14:40 #369379
Quoting Pfhorrest
You're basically just baking in an ex falso quodlibet into the premise.


Where is the contradiction?

Michael January 07, 2020 at 16:30 #369424
1. P1 ? P1 ? P2
2. P1 ? P2 ? ¬P1 ? P2
3. P1 ? ¬P1 ? P2

This sentence is false or I am a woman.

I think that assuming P1 to be true is to assume that I am a woman. Is that really a paradox?
TheMadFool January 07, 2020 at 16:54 #369436
Quoting Michael
This sentence is false or I am a woman.

I think that assuming P1 to be true is to assume that I am a woman. Is that really a paradox?


Curry's paradox begins as an assumption of the equivalence between the sentence P1: if this sentence is true then P2 which in logic is the following: P1 = P1 > P2. The conditional P1 > P2 is proven first (see the OP). Proving P1 > P2 amounts to proving P1; after all they are equivalent. Then using modus ponens we can prove P2. The claim to the title of a paradox lies in such statements being capable of proving, literally, anything, even contradictions.

Michael January 07, 2020 at 17:09 #369440
Reply to TheMadFool P1 is equivalent to “this sentence is false or P2”, so I think assuming P1 is to assume P2, not to prove it.
A Seagull January 07, 2020 at 18:05 #369455
Quoting TheMadFool
Formal proof:

The main statement is: If this sentence is true, then P2

Let P1 = if this sentence is true then P2

Further translation yields P1 = P1 > P2

1. P1 = (P1 > P2)....assume
2. P1 > P1......Id
3. P1 > (P1 > P2)....1 Id
4. (P1 & P1) > P2....3 Exp
5. P1 > P2............4 Taut
6.P1....from 1, 5
7. P2....5, 6 MP

Informal proof:

The statement P1 = If P1 then P2. Assuming P1 means both P1 and if P1 then P2 are true. Apply modus ponens and P2 is true which means if P1 then P2 is true. We know then that P1 is true because P1 = P1 > P2. Use modus ponens one more time and we get P2.

The paradox is that P2 can be any imaginable proposition.

As another way of proving anything, distinct from the more familiar ex falso quodlibet, I'd like some opinions on this paradox.


Reply to TheMadFool

Why do you claim that this is a 'proof'?

What are the axioms and processes of inference for the logical system in which this 'proof' takes place?

You seem to be assuming that 'truth' has a significance outside of the logical system of the proof.

Whereas in fact 'truth' for a logical system is merely a label to indicate that the deduced theorem is consistent with the axioms and rules of inference of the system.
Pfhorrest January 07, 2020 at 20:13 #369513
Quoting TheMadFool
Where is the contradiction?


"This sentence is false."

If P1 is "not P1", assuming P1 assumes a contradiction.

So if P1 is "not-P1 or P2", assuming P1 assumes either a contradiction or P2.

And "If P1 then P2" is logically equivalent to "not-P1 or P2", so if P1 is "if P1 then P2", same situation.

Quoting Michael
P1 is equivalent to “this sentence is false or P2”, so I think assuming P1 is to assume P2, not to prove it.


:100:

A loose more idiomatic way of phrasing P1 would be "If I'm right, P2" or "Unless I'm wrong, P2." That's basically just a way of asserting P2.
A Seagull January 07, 2020 at 22:42 #369582
Quoting Pfhorrest
Where is the contradiction? — TheMadFool
"This sentence is false."

If P1 is "not P1", assuming P1 assumes a contradiction.

So if P1 is "not-P1 or P2", assuming P1 assumes either a contradiction or P2.

And "If P1 then P2" is logically equivalent to "not-P1 or P2", so if P1 is "if P1 then P2", same situation.

P1 is equivalent to “this sentence is false or P2”, so I think assuming P1 is to assume P2, not to prove it. — Michael
:100:

A loose more idiomatic way of phrasing P1 would be "If I'm right, P2" or "Unless I'm wrong, P2." That's basically just a way of asserting P2.


This is what happens when you play with words without meaning or logic...you end up with nonsense.
TheMadFool January 07, 2020 at 23:11 #369596
Quoting Michael
P1 is equivalent to “this sentence is false or P2”, so I think assuming P1 is to assume P2, not to prove it.


Agreed, using the implication equivalence. However this doesn't refute the argument because...

~P1 v P2 := P1. Assuming P1 means ~~P1. and so we get P2.

The idea is to prove the conditional P1 > P2 and this is achieved by assuming P1 := ~P1 v P2 := P1 > P2 which basically is roughly speaking a compound proposition since it contains both P1 and P1 > P2. It oddly reminds me of the loaded question fallacy an example of which is "have you stopped stealing?"

Anyway, once the conditional P1 > P2 is proven we can use modus ponens since P1 > P2 is logically equivalent to P1.

Reply to PfhorrestNo contradiction I'm afraid.

P1 > P2 := ~P1 v P2

1. P1 > P1 := P1 > (~P1 v P2)
2. ~P1 v (~P1 v P2)......1 imp
3. (~P1 v ~P1) v P2.....2 assoc
4. ~P1 v P2...............3 taut

No contradiction.Quoting A Seagull
This is what happens when you play with words without meaning or logic...you end up with nonsense.


Would you like to read the above replies.


Pfhorrest January 07, 2020 at 23:25 #369601
Reply to TheMadFool I don't think anyone is saying that the proof is invalid, just that it's conclusion is trivial. All conclusions of valid arguments are baked into their premises, that's how truth preservation works, but the conclusion of this argument is so transparently baked into the premise that it's not really surprising or a paradox that it can be proven. Or that "anything can be proven this way", because consider for comparison an argument that "From 'If TRUE then P' we can prove P, for any P". That's correct, but it's hardly surprising, because 'if TRUE then P" is pretty much just asserting P.
TheMadFool January 08, 2020 at 00:12 #369612
Quoting Pfhorrest
I don't think anyone is saying that the proof is invalid, just that it's conclusion is trivial. All conclusions of valid arguments are baked into their premises, that's how truth preservation works, but the conclusion of this argument is so transparently baked into the premise that it's not really surprising or a paradox that it can be proven. Or that "anything can be proven this way", because consider for comparison an argument that "From 'If TRUE then P' we can prove P, for any P". That's correct, but it's hardly surprising, because 'if TRUE then P" is pretty much just asserting P.


Well, I humbly beg to disagree. Paradoxes usually aren't trivial since they indicate something unsolvable or unexpected; paradoxes reveal either errors in our intuition or major issues with the system that generates them. Curry's paradox is comparable in effect to contradictions in making everything provable, a proposition and its negation. That is a problem, a big one, isn't it?
A Seagull January 08, 2020 at 01:36 #369631
Quoting TheMadFool
This is what happens when you play with words without meaning or logic...you end up with nonsense. — A Seagull
Would you like to read the above replies.


I would prefer you to admit that you can't answer my questions nor respond sensibly to my comments.

TheMadFool January 08, 2020 at 02:09 #369640
Quoting A Seagull
I would prefer you to admit that you can't answer my questions nor respond sensibly to my comments.


Perhaps you'd like to hear it straight from the horse's mouth...Curry's paradox
A Seagull January 08, 2020 at 02:25 #369642
Quoting TheMadFool
I would prefer you to admit that you can't answer my questions nor respond sensibly to my comments. — A Seagull
Perhaps you'd like to hear it straight from the horse's mouth...Curry's paradox


It is nonsense for the reasons cited above.
TheMadFool January 08, 2020 at 02:57 #369649
Quoting A Seagull
It is nonsense for the reasons cited above


:up: :ok:
Andrew M January 08, 2020 at 03:35 #369656
Quoting TheMadFool
The main statement is: If this sentence is true, then P2


The problem with the Curry sentence is that it's not evaluable and thus not truth-apt. The truth value of the antecedent depends on the truth value of the sentence. But the truth value of the sentence depends on the truth value of the antecedent (and consequent). So the sentence has a circular dependency.
TheMadFool January 08, 2020 at 03:39 #369658
Quoting Andrew M
The problem with the Curry sentence is that it's not evaluable and thus not truth-apt. The truth value of the antecedent depends on the truth value of the sentence. But the truth value of the sentence depends on the truth value of the antecedent (and consequent). So the sentence has a circular dependency.


The sentence can be either true or false.

If it's false then it's antecedent is false and that means the entire sentence evaluates to true.

If it is true, well, then it's true.
Andrew M January 08, 2020 at 03:48 #369662
Reply to TheMadFool You're just plugging in values to see what happens. That's not the same as evaluating the sentence. It has the same issue as the Liar and Truth Teller sentences.

Another way of stating it is that each of those sentences are ungrounded. There is nothing that determines their truth or falsity (i.e., they don't meaningfully assert anything).
Pfhorrest January 08, 2020 at 04:37 #369674
To assume P1 as a premise is to assign P1 the truth value of "TRUE", and we can therefore substitute "TRUE" for P1 anywhere it occurs within P1 itself without changing the evaluation of the whole of P1.

So P1: "If P1 then P2" evaluates to "If TRUE then P2". Necessarily TRUE (that's what it means), therefore P2.

So yeah, you can use this to "prove" any P2, but that's just because you're transparently baking P2, whatever it is, into the single premise of the argument. This isn't a paradox, it's just a really useless trivially valid argument, the cogency and therefore soundness of which depends entirely upon the truth of P2, which is what's in question.

A useful argument shows the answer to a controversial question follows from uncontroversial premises. The whole reason why question-begging or circular reasoning is problematic is because it puts a controversial position into the premises, and thus can't be used to convince anyone who doesn't already accept that. This is merely a very transparent case of doing exactly that.


(Additionally, to assume P1 is false is to assign P1 the truth-value of "FALSE", which makes P1 evaluate to "if FALSE then P2" and the assumption of the falsehood of P1 equivalent to: "not(if FALSE then P2)", which is equivalent to "FALSE and not-P2".)
A Seagull January 08, 2020 at 19:44 #369837
Quoting TheMadFool
The sentence can be either true or false.

If it's false then it's antecedent is false and that means the entire sentence evaluates to true.

If it is true, well, then it's true


The problem is that there is no well-defined or logical process for determining whether a statement is 'true' or 'false'. And without such a process one has to resort to some arbitrary or even random process; with the result that one ends up in some meaningless la la land.
TheMadFool January 09, 2020 at 03:56 #369967
Quoting Andrew M
You're just plugging in values to see what happens. That's not the same as evaluating the sentence


How would you evaluate a conditional sentence in a way different to the way I did the Curry's sentence?
TheMadFool January 09, 2020 at 03:58 #369968
Quoting Pfhorrest
So yeah, you can use this to "prove" any P2, but that's just because you're transparently baking P2, whatever it is, into the single premise of the argument.


Ok

Quoting Pfhorrest
This isn't a paradox, it's just a really useless trivially valid argument


:chin:

If we can prove any P2 then it has to be a paradox, right?
TheMadFool January 09, 2020 at 03:59 #369969
Quoting A Seagull
The problem is that there is no well-defined or logical process for determining whether a statement is 'true' or 'false'.


Truth tables can be used to explore all possibilities.
Pfhorrest January 09, 2020 at 04:34 #369972
Reply to TheMadFool It doesn't prove every P2 simultaneously, so it's not a paradox as in it gives rise to a contradiction. It proves whatever you plug in for "P2" in the premise, but in a ridiculously trivial way. It's only half a step removed from being the argument "P2. Therefore P2", which can also prove anything you plug in for P2. It's literally "If this sentence is true then P2. Therefore P2", which only proves P2 from the assumption that that sentence is true. "Therefore" means "given the preceding is true, we can conclude the following", so "Given that 'If this sentence is true then P2' is true, we can conclude P2", which is valid but almost as trivial as "P2. Therefore P2", which is also a valid but useless argument, and not a paradox.
A Seagull January 09, 2020 at 05:51 #369991
Quoting TheMadFool
The problem is that there is no well-defined or logical process for determining whether a statement is 'true' or 'false'. — A Seagull
Truth tables can be used to explore all possibilities.


Sure, but that doesn't mean that they are 'true'.
Andrew M January 09, 2020 at 05:56 #369992
Quoting TheMadFool
How would you evaluate a conditional sentence in a way different to the way I did the Curry's sentence?


By constructing an algorithm for evaluating it. Here's a Curry sentence from Wikipedia:

If this sentence is true, then Germany borders China.

The sentence can be represented algorithmically as follows:



bool result = theCurrySentence() is true

bool theCurrySentence()
{
if (theCurrySentence() is true)
then
{
if (germanyBordersChina() is true)
then
return true
else
return false
}
else
return true
}


When running this algorithm, the function theCurrySentence() will never return a truth value. So the sentence it represents is not truth-apt.

Quoting TheMadFool
Truth tables can be used to explore all possibilities.


That assumes that the sentence is truth-apt in the first place. Which is always a potential issue when formalizing natural language sentences.
BlueBanana January 09, 2020 at 23:47 #370140
The step 6 doesn't make sense. I assume you meant to include P1=(P1=(P1>P2)) somewhere, but that's not actually true, because "this sentence" would then refer to two different sentences. Thus you have never shown P1 to hold.
TheMadFool January 10, 2020 at 00:18 #370160
Quoting A Seagull
Sure, but that doesn't mean that they are 'true'.


Using truth tables we can evaluate any logical statement, including the Curry statement.

Quoting Pfhorrest
It doesn't prove every P2 simultaneously


What do you mean by "simultaneously"? Some propositions are time-independent e.g. mathematical propositions which don't change with time.

I don't know how you can say that a logical statement that can prove anything is trivial. That's like saying that ex falso quodlibet which is spoken of in very dramatic and threatening terms as the principle of explosion which does exactly the same thing- prove anything.

Quoting Andrew M
if (germanyBordersChina() is true)


There shouldn't be "if" in the above statement.

Quoting BlueBanana
The step 6 doesn't make sense.


Unfortunately I have no expertise in that area. I know of the basic inference rules of natural deduction and there's no valid step among those rules. The wikipedia article claims the step is a substitution which is intuitive enough to pass any evaluation. After all, if P1 := (P1 > P2) then I can substitute one for the other.
Andrew M January 10, 2020 at 01:15 #370178
Quoting TheMadFool
if (germanyBordersChina() is true)
— Andrew M

There shouldn't be "if" in the above statement.


That is there simply to make the return values explicit (per the truth table for p --> q) and doesn't affect the logic. But if you prefer, the algorithm can be simplified to the following:


bool result = theCurrySentence() is true

bool theCurrySentence()
{
if (theCurrySentence() is true)
then
return (germanyBordersChina() is true)
else
return true
}


The problem is that theCurrySentence() function can't be evaluated until the antecedent is evaluated. But the antecedent can't be evaluated until theCurrySentence() function that it calls is evaluated. So nothing gets evaluated and no truth value is returned. The algorithm just endlessly loops.
ep3265 January 10, 2020 at 01:19 #370180
Quoting TheMadFool
P1 = (P1 > P2)


Doesn't the equality cause for an infinite regress in variables or am I not understanding?

You could easily say:

(P1>P2) = ((P1>P2)>P2)

and furthermore for infinity by your definition.
TheMadFool January 10, 2020 at 01:33 #370182
Quoting Andrew M
The problem is that theCurrySentence() function can't be evaluated until the antecedent is evaluated. But the antecedent can't be evaluated until theCurrySentence() function that it calls is evaluated. So nothing gets evaluated and no truth value is


Well, the paradox rests on self-reference and I don't have a clue why computers can't handle self-reference. However, humans fare better at it, hence the paradox.

Quoting ep3265
Doesn't the equality cause for an infinite regress in variables or am I not understanding?


No. It doesn't P1 := (P1 > P2)

There's no infinite regress which would require some kind of nesting which I don't see.


ep3265 January 10, 2020 at 01:39 #370184
Reply to TheMadFool Saying something's equal to me would be considered nesting right?
TheMadFool January 10, 2020 at 01:45 #370187
Quoting ep3265
Saying something's equal to me would be considered nesting right?


Not really. If I remember correctly, for something to be nested every previous step must occur, wholly, in the step that follows.

This is nesting:
(a) = b
((a) = b) = c
(((a) = b) = c) = d


How can we do the above to P1 := (P1 > P2)?

Andrew M January 10, 2020 at 04:31 #370216
Quoting TheMadFool
Well, the paradox rests on self-reference and I don't have a clue why computers can't handle self-reference. However, humans fare better at it, hence the paradox.


Computers can handle self-reference as long as the self-reference eventually terminates.

The Curry sentence is not well-defined due to the non-terminating self-reference. Treating it as if it were well-defined (and thus evaluable as either true or false) is what leads to paradox.
ep3265 January 10, 2020 at 22:18 #370428
Reply to TheMadFool I'm not quite sure what the := means. Is it just equals?
TheMadFool January 11, 2020 at 08:35 #370564
Quoting ep3265
I'm not quite sure what the := means. Is it just equals?


:= means definition

x := y means x is defined to be another name for y
TheMadFool January 11, 2020 at 08:39 #370566
Quoting Andrew M
Computers can handle self-reference as long as the self-reference eventually terminates.

The Curry sentence is not well-defined due to the non-terminating self-reference. Treating it as if it were well-defined (and thus evaluable as either true or false) is what leads to paradox.


Kindly explain the difference between terminating and non-terminating self-reference in re to Curry's paradox.

The Curry sentence is this P1 := P1 > P2. How is it not well-defined. There are no syntactical or semantic errors as far as I can see.
Andrew M January 12, 2020 at 11:23 #370766
Quoting TheMadFool
Kindly explain the difference between terminating and non-terminating self-reference in re to Curry's paradox.


What I mean by terminating self-reference is that there exists a method for evaluating the sentence in a finite number of steps. Consider the following sentence:

This sentence has five words

That sentence is self-referential and the self-reference terminates because a procedure can be defined that counts the number of words in the sentence. So the sentence is well-defined and has a truth value (true in this case).

Quoting TheMadFool
The Curry sentence is this P1 := P1 > P2. How is it not well-defined. There are no syntactical or semantic errors as far as I can see.


First, for a more familiar example, consider the Liar sentence:

This sentence is false

That sentence has a non-terminating self-reference. To evaluate the full sentence, it is first necessary to evaluate the referent of "This sentence", which is "This sentence is false". So the sentence expands to:

"This sentence is false" is false

But now to evaluate the inner sentence, it is first necessary to evaluate the referent of "This sentence". And so the expansion of the sentence continues and doesn't complete in a finite number of steps. That is, the sentence is not well-defined and fails to be truth-apt.

Now if a formal system allows this kind of sentence and assumes it is truth-apt, then the result is trivialism which is generally not what is wanted. So the formal system must be fixed in some way to avoid that result (such as by excluding that type of sentence, or by limiting explosion as with paraconsistent logics).

The same situation occurs with the Curry sentence:

If this sentence is true, then Germany borders China

Similar to the Liar sentence, this expands to:

If "If this sentence is true, then Germany borders China" is true, then Germany borders China

Continuing in this vein, the expansion also fails to complete in a finite number of steps. That is, the sentence is similarly not well-defined and fails to be truth-apt. As with the Liar sentence, the formal system must be fixed in some way to avoid trivialism. That's easier said than done. Nonetheless, the non-terminating self-reference is the crux of the problem.
TheMadFool January 12, 2020 at 17:45 #370801
Quoting Andrew M
Continuing in this vein, the expansion also fails to complete in a finite number of steps.


But the Curry statement does terminate. It is self-referential but doesn't result in an infinite loop.
Andrew M January 13, 2020 at 05:30 #371010
Quoting TheMadFool
But the Curry statement does terminate. It is self-referential but doesn't result in an infinite loop.


It doesn't terminate. Here's the expansion:

1. If this sentence is true, then Germany borders China

expands to

2. If 'If this sentence is true, then Germany borders China' is true, then Germany borders China

expands to

3. If "If 'If this sentence is true, then Germany borders China' is true, then Germany borders China" is true, then Germany borders China

expands to

4. ...

and so on indefinitely.