Jump to content

Curry's paradox: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
Proof that the sentence is true: Restore clearer exposition from an earlier version; "because ..., therefore ..." is hardly idiomatic
(101 intermediate revisions by 3 users not shown)
Line 4: Line 4:
It has also been called '''Löb's paradox''' after [[Martin Hugo Löb]].<ref>{{cite book |last1=Barwise |first1=Jon |authorlink1=Jon Barwise |last2=Etchemendy |first2=John |authorlink2=John Etchemendy |title=The Liar: An Essay on Truth and Circularity |year=1987 |publisher=Oxford University Press |location=New York |isbn=0195059441 |page=23 |url=http://www.oup.com/us/catalog/general/subject/Philosophy/LogicMathematics/?view=usa&ci=9780195059441 |accessdate=24 January 2013}}</ref>
It has also been called '''Löb's paradox''' after [[Martin Hugo Löb]].<ref>{{cite book |last1=Barwise |first1=Jon |authorlink1=Jon Barwise |last2=Etchemendy |first2=John |authorlink2=John Etchemendy |title=The Liar: An Essay on Truth and Circularity |year=1987 |publisher=Oxford University Press |location=New York |isbn=0195059441 |page=23 |url=http://www.oup.com/us/catalog/general/subject/Philosophy/LogicMathematics/?view=usa&ci=9780195059441 |accessdate=24 January 2013}}</ref>


== Natural language ==
== Statement of Curry's paradox ==

The Paradox may be expressed in natural language and in various mathematical languages;
*Natural language
*Formal logic
*Set theory
*Logic with a string Eval function
*Lambda calculus
*Combinatory logic

=== Natural language ===

Claims of the form "if A, then B" are called [[indicative conditional|conditional]] claims. Curry's paradox uses a particular kind of self-referential conditional sentence, as demonstrated in this example:
Claims of the form "if A, then B" are called [[indicative conditional|conditional]] claims. Curry's paradox uses a particular kind of self-referential conditional sentence, as demonstrated in this example:


Line 11: Line 22:
Even though Germany does not border China, the example sentence certainly is a natural-language sentence, and so the truth of that sentence can be analyzed. The paradox follows from this analysis. First, common natural-language proof techniques can be used to prove that the example sentence is true. Second, the truth of the example sentence can be used to prove that Germany borders China. Because Germany does not border China, this suggests that there has been an error in one of the proofs. Worse, the claim "Germany borders China" could be replaced by any other claim, and the sentence would still be provable; thus every sentence appears to be provable. Because the proof uses only well-accepted methods of deduction, and because none of these methods appears to be incorrect, this situation is paradoxical.
Even though Germany does not border China, the example sentence certainly is a natural-language sentence, and so the truth of that sentence can be analyzed. The paradox follows from this analysis. First, common natural-language proof techniques can be used to prove that the example sentence is true. Second, the truth of the example sentence can be used to prove that Germany borders China. Because Germany does not border China, this suggests that there has been an error in one of the proofs. Worse, the claim "Germany borders China" could be replaced by any other claim, and the sentence would still be provable; thus every sentence appears to be provable. Because the proof uses only well-accepted methods of deduction, and because none of these methods appears to be incorrect, this situation is paradoxical.


===Proof that the sentence is true===
====Proof that the sentence is true====
The following analysis is used to show that the sentence "If this sentence is true, then Germany borders China" is itself true. The quoted sentence is of the form "If A then B" where A refers to the sentence itself and B refers to "Germany borders China". The usual method for proving a conditional sentence is to assume that the hypothesis (A) holds, and prove from that assumption that the conclusion (B) holds. Therefore, assume A. Because A refers to the overall sentence, this means that assuming A is the same as assuming "If A then B". Therefore, in assuming A, we have assumed both A and "If A then B". From these, we can obtain B by [[modus ponens]]. Therefore, the assumption of A is enough to guarantee that B is true: if the sentence is true, then Germany borders China. That is exactly what the sentence says: "If this sentence is true then Germany borders China". Therefore the sentence is true.


The following analysis is used to show that the sentence "If this sentence is true, then Germany borders China" is itself true. The quoted sentence is of the form "If A then B" where A refers to the sentence itself and B refers to "Germany borders China". The usual method for proving a conditional sentence is to show that by assuming that hypothesis (A) is true, then the conclusion (B ) can be proven from that assumption. Therefore, for the purpose of the proof, assume A. Because A refers to the overall sentence, this means that assuming A is the same as assuming "If A then B". Therefore, in assuming A, we have assumed both A and "If A then B". From these, we can obtain B by [[modus ponens]]. Therefore, A implies B and we have proved "If this sentence is true then Germany borders China" is true. Therefore "Germany borders China", but we know that is false, which is a paradox.
===The paradox===
In a naïve logic, the sentence itself, denoted A, is true. The sentence is of the form "If A then B". Since A is true, therefore "If A then B" is true. We then apply [[modus ponens]] to show that B is true; but this is impossible, because B is "Germany borders China", which is false.


====Brief statement====
== Formal logic ==

In a naïve logic, the sentence itself, denoted A, is true. The sentence is of the form "If A then B". Then "A = (if A then B)" is true. But this [[rule of contraction|contracts]] to "If A then B" is true. So A is true. We then apply [[modus ponens]] to show that B is true; but this is impossible, because B is "Germany borders China", which is false.

=== Formal logic ===


The example in the previous section used unformalized, natural-language reasoning. Curry's paradox also occurs in [[formal logic]]. In this context, it shows that if we assume there is a formal sentence (X → Y), where X itself is equivalent to (X → Y), then we can prove ''Y'' with a formal proof. One example of such a formal proof is as follows. For explanation of the logic notation used in this section, refer to the [[Logic notation|list of logic symbols]].
The example in the previous section used unformalized, natural-language reasoning. Curry's paradox also occurs in [[formal logic]]. In this context, it shows that if we assume there is a formal sentence (X → Y), where X itself is equivalent to (X → Y), then we can prove ''Y'' with a formal proof. One example of such a formal proof is as follows. For explanation of the logic notation used in this section, refer to the [[Logic notation|list of logic symbols]].
Line 45: Line 58:
:identity
:identity


== Naive set theory ==
=== Naive set theory ===


Even if the underlying mathematical logic does not admit any self-referential sentence, in set theories which allow [[Axiom schema of specification|unrestricted comprehension]], we can nevertheless prove any logical statement ''Y'' by examining the set
Even if the underlying mathematical logic does not admit any self-referential sentence, in set theories which allow [[Axiom schema of specification|unrestricted comprehension]], we can nevertheless prove any logical statement ''Y'' by examining the set
Line 67: Line 80:
Therefore, in a consistent set theory, the set <math> \left\{ x \mid ( x \in x ) \to Y \right\}</math>does not exist for false ''Y''. This can be seen as a variant on [[Russell's paradox]], but is not identical. Some proposals for set theory have attempted to deal with [[Russell's paradox]] not by restricting the rule of comprehension, but by restricting the rules of logic so that it tolerates the contradictory nature of the set of all sets that are not members of themselves. The existence of proofs like the one above shows that such a task is not so simple, because at least one of the deduction rules used in the proof above must be omitted or restricted.
Therefore, in a consistent set theory, the set <math> \left\{ x \mid ( x \in x ) \to Y \right\}</math>does not exist for false ''Y''. This can be seen as a variant on [[Russell's paradox]], but is not identical. Some proposals for set theory have attempted to deal with [[Russell's paradox]] not by restricting the rule of comprehension, but by restricting the rules of logic so that it tolerates the contradictory nature of the set of all sets that are not members of themselves. The existence of proofs like the one above shows that such a task is not so simple, because at least one of the deduction rules used in the proof above must be omitted or restricted.


== Combinatory logic ==


=== Logic with a string Eval function ===
In the study of illative [[combinatory logic]], Curry in 1941<ref>{{cite journal |last=Curry |first=Haskell B. |authorlink=Haskell Curry |title=The Paradox of Kleene and Rosser |journal=Transactions of the American Mathematical Society |year=1941 |volume=50 |pages=454–516 |doi=10.1090/S0002-9947-1941-0005275-6 |mr=0005275 |url=http://www.ams.org/journals/tran/1941-050-03/S0002-9947-1941-0005275-6/ |accessdate=24 January 2013}}</ref> recognized the implication of the paradox as implying that, without restrictions, the following properties of a combinatory logic are incompatible:


Suppose there is a function called Eval, that takes a string and converts it into a logical expression. Then consider the string,
(i) ''Combinatorial completeness''. This means that an abstraction operator is definable (or primitive) in the system, which is a requirement on the expressive power of the system.


: s = "Eval(s) → y"
(ii) ''Deductive completeness''. This is a requirement on derivability, namely, the principle that in a formal system with material implication and modus ponens, if Y is provable from the hypothesis X, then there is also a proof of X → Y.<ref>{{cite book |last=Stenlund |first=Sören |title=Combinators, λ-terms, and Proof Theory |year=1972 |publisher=[[D. Reidel]] |location=Dordrecht |isbn=978-9027703057 |page=71}}</ref>

then the expression,

: Eval(s) = Eval(s) → y

again gives Currys's paradox.

=== Lambda calculus ===

Curry's paradox may be expressed in [[Lambda calculus]]. Consider a function <math>r</math> defined as,

:<math> r = ( \lambda x.x x \to y ) </math>

Then <math> r r </math> is,

:<math> r r = ( r r \to y ) </math>

If <math>r r</math> is true then <math>y</math> is true. If <math>r r</math> is false then <math>y</math> is true. So <math>y</math> is true and as <math>y</math> can be any statement, any statement may be proved true.

<math>r r</math> is a non-terminating computation. Considered as logic <math>r r</math> is an expression for a value that does not exist.

=== Combinatory logic ===

Currys Paradox may also be expressed in [[Combinatory logic]]. Combinatorial logic has equivalent expressive power to Lambda Calculus. Any Lambda Expression may be translated into combinatory logic, so a translation of the implementation of Curry's Paradox in Lambda Calculus would suffice.

If m is the implication function taking two parameters (that is m A B is equivalent to A → B), then r in combinatory logic is,

: r = S (S (K m) (S I I)) (K y)

then
: r r = m (r r) y

The paradox may also be produced using the [[Fixed-point combinator|Curry's paradoxical combinator]], where,
: <math> f = \lambda x.x \to y </math> = S m (K y)

Then,
: Y f

is the solution of,
: <math> x = x \to y </math>

so
: Y f = m (Y f) y


== Discussion ==
== Discussion ==


=== Terminology ===
Curry's paradox can be formulated in any language meeting certain conditions:

# The language must contain an apparatus which lets it refer to, and talk about, its own sentences (such as quotation marks, names, or expressions like "this sentence");
Natural language and mathematical logic are both based on asserting some statements to be true. A statement may be represented as a logical (or boolean) expression (or [[Well-formed_formula|formula]]) which may be evaluated to give a value of true or false. An assertion is a statement or logical expression that, it is asserted, when evaluated, will give the value true.
# The language must contain its own [[truth]]-predicate: that is, the language, call it "L", must contain a predicate meaning "true-in-L", and the ability to ascribe this predicate to any sentences;

# The language must admit the [[rule of contraction]], which roughly speaking means that a relevant hypothesis may be reused as many times as necessary; and
Statements may also be considered in more complex ways. Statements may be qualified by who states, or believe them, and by level of certainty. However, for logic, the simple definitions given above are sufficient.
# The language must admit the rules of [[law of identity|identity]] (if A, then A) and [[modus ponens]] (from A, and if A then B, conclude B).

Various other sets of conditions are also possible. Natural languages nearly always contain all these features. Mathematical logic, on the other hand, generally does not countenance explicit reference to its own sentences, although the heart of [[Gödel's incompleteness theorems]] is the observation that usually this can be done anyway; see [[Gödel number]]. The truth-predicate is generally not available, but in naive set theory, this is arrived at through the unrestricted rule of comprehension. The rule of contraction is generally accepted, although [[linear logic]] (more precisely, linear logic without the exponential operators) does not admit the reasoning required for this paradox.
=== Existence problem ===

This paradox is similar to,
* [[This statement is false|Liar Paradox]]
* [[Russels paradox|Russel's Paradox]]

in that each paradox attempts to give a name for something that does not exist. These paradoxes all attempt to give a name or representation to a solution to the equation,

: X = ¬X

Note that the paradox does not arise from asserting the statement of ¬X, as such a statement would be a lie. It arises from the consideration and naming of the statement. The paradox arises by naming or representing an expression of the form ¬X to be X. In the case of Curry's Paradox, the negation is constructed from implication,

: X = X → false = ¬X ∨ false = ¬X

The domain of a boolean variable X is the set {true, false}. However neither ''true'' or ''false'' is a solution to the above equation. So it must be wrong to assert the existance of X, and it is falsehood to name the expression ¬X as X.

The paradox exists whenever an expression can be constructed whose value does not exist. This may be achieved using "this statement", but there are many other language features that allow the construction of an expression that does not exist.

===Language capabilities for expressing the paradox===

Curry's paradox can be formulated in any language supporting basic logic operations that also allows a self-recursive function to be constructed as an expression. The following list gives some mechanisms that support the construction of the paradox but the list is not exhaustive.
# Self reference; "this sentence".
# Through naming of an expression which includes the name.
# Apply naive set theory ([[Unrestricted comprehension#Unrestricted comprehension|Unrestricted comprehension]]).
# Lambda expressions.
# An ''Eval'' function on a string.

The logic rules used in the construction of the proof are,
# [[natural deduction|rule of assumption]]
# [[rule of contraction|contraction]]
# [[modus ponens]]

The self-recursive function can then be used to define a non terminating computation whose value is solution to an equation. In Curry's Paradox we use implication to construct a negation, that constructs an equation with no solution.

The recursive expression then represents a value that does not exist. The [[Propositional calculus|laws of logic]] are only valid for Boolean values in {true, false}, so any deduction made from the expression may be in error.

Natural languages nearly always contain many of features that could be used to construct the paradox, as do many other languages. Usually the addition of meta programming capabilities to a language will add the features needed.

Mathematical logic generally does not countenance explicit reference to its own sentences. However the heart of [[Gödel's incompleteness theorems]] is the observation that a self reference can be added; see [[Gödel number]].

The axiom of [[Unrestricted comprehension#Unrestricted comprehension|Unrestricted comprehension]] adds the ability to construct a recursive definition in set theory. This axiom is not supported by [[Zermelo–Fraenkel set theory|modern set theory]].

=== Consequences for some formal logic ===

In the 1930s, Curry's Paradox and the related [[Kleene–Rosser paradox]] played a major role in showing that formal logic systems based on self-recursive expressions are [[Consistency|inconsistent]].
* [[Lambda calculus]]
* [[Combinatory logic]]

==== Consequences for combinatory logics ====

In the study of illative (deductive) [[combinatory logic]], Curry in 1941<ref>{{cite journal |last=Curry |first=Haskell B. |authorlink=Haskell Curry |title=The Paradox of Kleene and Rosser |journal=Transactions of the American Mathematical Society |year=1941 |volume=50 |pages=454–516 |doi=10.1090/S0002-9947-1941-0005275-6 |mr=0005275 |url=http://www.ams.org/journals/tran/1941-050-03/S0002-9947-1941-0005275-6/ |accessdate=24 January 2013}}</ref> recognized the implication of the paradox as implying that, without restrictions, the following properties of a combinatory logic are incompatible:

# ''Combinatorial completeness''. This means that an abstraction operator is definable (or primitive) in the system, which is a requirement on the expressive power of the system.
# ''Deductive completeness''. This is a requirement on derivability, namely, the principle that in a formal system with material implication and modus ponens, if Y is provable from the hypothesis X, then there is also a proof of X → Y.<ref>{{cite book |last=Stenlund |first=Sören |title=Combinators, λ-terms, and Proof Theory |year=1972 |publisher=[[D. Reidel]] |location=Dordrecht |isbn=978-9027703057 |page=71}}</ref>

==Resolution==


Note that unlike the liar paradox or Russell's paradox, this paradox does not depend on what [[law of non-contradiction|model of negation]] is used, as it is completely negation-free. Thus [[paraconsistent logics]] can still be vulnerable to this, even if they are immune to the liar paradox.
Note that unlike the liar paradox or Russell's paradox, this paradox does not depend on what [[law of non-contradiction|model of negation]] is used, as it is completely negation-free. Thus [[paraconsistent logics]] can still be vulnerable to this, even if they are immune to the liar paradox.


===Resolution in natural language===
The resolution of Curry's paradox is a contentious issue because resolutions (apart from trivial ones such as disallowing X directly) are difficult and not intuitive. Logicians are undecided whether such sentences are somehow impermissible (and if so, ''how'' to banish them), or meaningless, or whether they are correct and reveal problems with the concept of truth itself (and if so, whether we should reject the concept of truth, or change it), or whether they can be rendered benign by a suitable account of their meanings.


Consideration of the sentence "If A then B" where A refers to the sentence creates a falsehood if B is false, because in fact there is no value for A that satisfies the expression A = "if A then false". Therefore the rest of the argument is invalid because it is arguing from an expression that has no possible value (does not exist).
[[Linear logic]] disallows contraction and so does not admit this paradox directly, but one must remove its exponential operators, or else the paradox reappears in a modal form.

===Resolution in languages supporting self recursion===

Languages which allow expressions (formulas) that are self-recursive, are [[Consistency|inconsistent]], and the paradox cannot be resolved.

However the languages may be made consistent by extending the domain of self-recursive expressions to allow all values that may be represented by the recursive expression. This domain is sometimes expressed as {true, false, meaningless}. This means that a recursive expression does not necessarily belong to the Boolean domain even if it is used in a Boolean expression.

The [[Propositional Calculus|axioms and theorems of logic]] are valid only in the Boolean domain, {true, false}, so are not valid for those self-recursive expressions that are "meaningless". Any function that uses the value "meaningless" also returns the value "meaningless".

====Resolution in Lambda Calculus====

Applying [[Lambda Calculus#Beta reduction|Beta reduction]]

on <math> r r </math> where,

:<math> r = ( \lambda x.x x \to y ) </math>

Then <math> r r </math> is,

:<math> r r = ( r r \to y ) </math>

If y = false then,
:<math> r r = \neg r r </math>

However no contradiction may be concluded because lambda expressions are not restricted to returning values from the Boolean domain. In this case <math> r r </math> is meaningless and so <math> r r = \neg r r </math> is meaningless. This allows <math> y </math> to be either true or false, so no paradox.

Also axioms of logic like [[rule of contraction|contraction]] and [[modus ponens]] do not apply as <math> r r </math> is not a Boolean value. Logical axioms apply to a lambda expression only if its value is in {true, false}. This would be assumed for a Boolean expression which is not self recursive, but for Lambda Calculus expressions it may not be assumed.

====Resolution in Logic with a string Eval function====

A similar argument applies to the use of a string Eval function. If,

:s = "Eval(s) → y"

then if y is false the expression Eval(s) is "meaningless". No deductions may be applied to it because it is not in {true, false}.

====Semantics of "meaningless"====

Any statement (other than a meta-statement) about "meaningless" has the value meaningless. So if the parameter or the function is meaningless the result is meaningless. These statements must be considered as meta-statements, which describe the behaviour of "meaningless" in other statements.

Consider the statement,
:This statement is not meaningless.

Which might be interpreted as,
:<math> X = X \ne meaningless </math>

So the above statement is meaningless.
:<math> meaningless = meaningless \ne meaningless </math>

But this statement also is "meaningless". The equals operator if given either value as meaningless returns meaningless. And meaningless statements are ignored by logic. In fact we cant even assert,

:¬y → Eval(s) = meaningless

as this statement is also meaningless. The only statements that can be made about "meaningless" are meta-statements.

====How do we determine if a value is meaningless====

Previously we appear to work out that the value of <math>r r</math> is meaningless after applying logic to the expression. The following meta-identity for lambda calculus helps clarify the situation. It is a meta statement because it interprets the use of [[Lambda Calculus#Beta reduction|Beta reduction]], which is a meta step in the evaluation of lambda expressions,

If x is a lambda expression,
: <math>lval[x] \in domain[x] \iff (\exists a: a \in domain[x] \and a = lval[x] \and a = lval[betared[x]])</math>

In the paradox for lambda calculus, x is "r r" and,
* domain[x] = {true, false}
* lval[x] = r r
* lval[betared[x]] = r r → y

and
: <math>r r \in \{true, false\} \iff (\exists a: a \in \{true, false\} \and a = r r \and a = r r \to y)</math>
which reduces to,
: <math>r r \in \{true, false\} = y </math>

This tells us when <math>r r</math> has a meaningful value. If y is false no deductions can be made, and if y is true then <math>r r</math> is true.

=== Resolution in formal logic ===

The argument in formal logic starts with assuming the validity of naming (X → Y) as X. However this is not a valid starting point. First we must deduce the validity of the naming. The following theorem is easily proved and represents such a naming.

:<math> \forall A \exists X X = A </math>

In the above statement the formula A is named as X. Now attempt to instantiate the formula with (X → Y) for A. However this is not possible as the scope of <math> \exists X </math> is inside the scope of <math> \forall A </math>. The order of the quantifiers may be reversed using [[Skolem normal form|Skolemization]].

:<math> \forall A f(A) = A </math>

However now instantion gives,

:<math> f(X \to Y) = X \to Y </math>

which is not the starting point for the proof and does not lead to a contradiction. There are no other instantiations that for A that lead to to the starting point to the paradox.

===Resolution in set theory===

In [[ZFC|Zermelo–Fraenkel set theory]] the [[Axiom schema of specification|axiom of unrestricted comprehension]] is replaced with a group of axioms that allow construction of sets. So Curry's paradox cannot be stated in ZFC. ZFC evolved in response to Russell's paradox.


==See also==
==See also==

* [[Russell's paradox]]
* [[Girard's paradox]]
* [[Girard's paradox]]
* [[Kleene&ndash;Rosser paradox]]
* [[Kleene&ndash;Rosser paradox]]
Line 102: Line 308:
== External links ==
== External links ==
*{{SEP|curry-paradox|Curry's paradox|J. C. Beall}}
*{{SEP|curry-paradox|Curry's paradox|J. C. Beall}}
*{{SEP|paradoxes-contemporary-logic|Paradoxes and Contemporary Logic|Cantini, Andrea}}
*[http://xeny.net/PenguinsRuleTheUniverse Penguins Rule the Universe: A Proof that Penguins Rule the Universe], a brief and entertaining discussion of Curry's paradox.
*[http://xeny.net/PenguinsRuleTheUniverse Penguins Rule the Universe: A Proof that Penguins Rule the Universe], a brief and entertaining discussion of Curry's paradox.
*[http://arxiv.org/abs/0804.4818 Relevant First-Order Logic LP# and Curry's Paradox] by Jaykov Foukzon
*[http://arxiv.org/abs/0804.4818 Relevant First-Order Logic LP# and Curry's Paradox] by Jaykov Foukzon

Revision as of 01:31, 7 July 2013

Curry's paradox is a paradox that occurs in naive set theory or naive logics, and allows the derivation of an arbitrary sentence from a self-referring sentence and some apparently innocuous logical deduction rules. It is named after the logician Haskell Curry. While naive set theory fails to identify it, a more rigorous examination reveals that the sentence is self-contradictory.

It has also been called Löb's paradox after Martin Hugo Löb.[1]

Statement of Curry's paradox

The Paradox may be expressed in natural language and in various mathematical languages;

  • Natural language
  • Formal logic
  • Set theory
  • Logic with a string Eval function
  • Lambda calculus
  • Combinatory logic

Natural language

Claims of the form "if A, then B" are called conditional claims. Curry's paradox uses a particular kind of self-referential conditional sentence, as demonstrated in this example:

If this sentence is true, then Germany borders China.

Even though Germany does not border China, the example sentence certainly is a natural-language sentence, and so the truth of that sentence can be analyzed. The paradox follows from this analysis. First, common natural-language proof techniques can be used to prove that the example sentence is true. Second, the truth of the example sentence can be used to prove that Germany borders China. Because Germany does not border China, this suggests that there has been an error in one of the proofs. Worse, the claim "Germany borders China" could be replaced by any other claim, and the sentence would still be provable; thus every sentence appears to be provable. Because the proof uses only well-accepted methods of deduction, and because none of these methods appears to be incorrect, this situation is paradoxical.

Proof that the sentence is true

The following analysis is used to show that the sentence "If this sentence is true, then Germany borders China" is itself true. The quoted sentence is of the form "If A then B" where A refers to the sentence itself and B refers to "Germany borders China". The usual method for proving a conditional sentence is to show that by assuming that hypothesis (A) is true, then the conclusion (B ) can be proven from that assumption. Therefore, for the purpose of the proof, assume A. Because A refers to the overall sentence, this means that assuming A is the same as assuming "If A then B". Therefore, in assuming A, we have assumed both A and "If A then B". From these, we can obtain B by modus ponens. Therefore, A implies B and we have proved "If this sentence is true then Germany borders China" is true. Therefore "Germany borders China", but we know that is false, which is a paradox.

Brief statement

In a naïve logic, the sentence itself, denoted A, is true. The sentence is of the form "If A then B". Then "A = (if A then B)" is true. But this contracts to "If A then B" is true. So A is true. We then apply modus ponens to show that B is true; but this is impossible, because B is "Germany borders China", which is false.

Formal logic

The example in the previous section used unformalized, natural-language reasoning. Curry's paradox also occurs in formal logic. In this context, it shows that if we assume there is a formal sentence (X → Y), where X itself is equivalent to (X → Y), then we can prove Y with a formal proof. One example of such a formal proof is as follows. For explanation of the logic notation used in this section, refer to the list of logic symbols.

1. X → X

rule of assumption, also called restatement of premise or of hypothesis

2. X → (X → Y)

substitute right side of 1, since X is equivalent to X → Y by assumption

3. X → Y

from 2 by contraction

4. X

substitute 3, since X = X → Y

5. Y

from 4 and 3 by modus ponens

Therefore, if Y is an unprovable statement in a formal system, there is no statement X in that system such that X is equivalent to the implication (X → Y). By contrast, the previous section shows that in natural (unformalized) language, for every natural language statement Y there is a natural language statement Z such that Z is equivalent to (Z → Y) in natural language. Namely, Z is "If this sentence is true then Y".

In specific cases where the classification of Y is already known, few steps are needed to reveal the contradiction. For example, when Y is "Germany borders China," it is known that Y is false.

1. X = X → Y

assumption

2. X = X → false

substitute known value of Y

3. X = ¬X ∨ false

implication

4. X = ¬X

identity

Naive set theory

Even if the underlying mathematical logic does not admit any self-referential sentence, in set theories which allow unrestricted comprehension, we can nevertheless prove any logical statement Y by examining the set

The proof proceeds as follows:

  1. Definition of X
  2. from 1
  3. from 2, contraction
  4. from 1
  5. from 3 and 4, modus ponens
  6. from 3 and 5, modus ponens

Therefore, in a consistent set theory, the set does not exist for false Y. This can be seen as a variant on Russell's paradox, but is not identical. Some proposals for set theory have attempted to deal with Russell's paradox not by restricting the rule of comprehension, but by restricting the rules of logic so that it tolerates the contradictory nature of the set of all sets that are not members of themselves. The existence of proofs like the one above shows that such a task is not so simple, because at least one of the deduction rules used in the proof above must be omitted or restricted.


Logic with a string Eval function

Suppose there is a function called Eval, that takes a string and converts it into a logical expression. Then consider the string,

s = "Eval(s) → y"

then the expression,

Eval(s) = Eval(s) → y

again gives Currys's paradox.

Lambda calculus

Curry's paradox may be expressed in Lambda calculus. Consider a function defined as,

Then is,

If is true then is true. If is false then is true. So is true and as can be any statement, any statement may be proved true.

is a non-terminating computation. Considered as logic is an expression for a value that does not exist.

Combinatory logic

Currys Paradox may also be expressed in Combinatory logic. Combinatorial logic has equivalent expressive power to Lambda Calculus. Any Lambda Expression may be translated into combinatory logic, so a translation of the implementation of Curry's Paradox in Lambda Calculus would suffice.

If m is the implication function taking two parameters (that is m A B is equivalent to A → B), then r in combinatory logic is,

r = S (S (K m) (S I I)) (K y)

then

r r = m (r r) y

The paradox may also be produced using the Curry's paradoxical combinator, where,

= S m (K y)

Then,

Y f

is the solution of,

so

Y f = m (Y f) y

Discussion

Terminology

Natural language and mathematical logic are both based on asserting some statements to be true. A statement may be represented as a logical (or boolean) expression (or formula) which may be evaluated to give a value of true or false. An assertion is a statement or logical expression that, it is asserted, when evaluated, will give the value true.

Statements may also be considered in more complex ways. Statements may be qualified by who states, or believe them, and by level of certainty. However, for logic, the simple definitions given above are sufficient.

Existence problem

This paradox is similar to,

in that each paradox attempts to give a name for something that does not exist. These paradoxes all attempt to give a name or representation to a solution to the equation,

X = ¬X

Note that the paradox does not arise from asserting the statement of ¬X, as such a statement would be a lie. It arises from the consideration and naming of the statement. The paradox arises by naming or representing an expression of the form ¬X to be X. In the case of Curry's Paradox, the negation is constructed from implication,

X = X → false = ¬X ∨ false = ¬X

The domain of a boolean variable X is the set {true, false}. However neither true or false is a solution to the above equation. So it must be wrong to assert the existance of X, and it is falsehood to name the expression ¬X as X.

The paradox exists whenever an expression can be constructed whose value does not exist. This may be achieved using "this statement", but there are many other language features that allow the construction of an expression that does not exist.

Language capabilities for expressing the paradox

Curry's paradox can be formulated in any language supporting basic logic operations that also allows a self-recursive function to be constructed as an expression. The following list gives some mechanisms that support the construction of the paradox but the list is not exhaustive.

  1. Self reference; "this sentence".
  2. Through naming of an expression which includes the name.
  3. Apply naive set theory (Unrestricted comprehension).
  4. Lambda expressions.
  5. An Eval function on a string.

The logic rules used in the construction of the proof are,

  1. rule of assumption
  2. contraction
  3. modus ponens

The self-recursive function can then be used to define a non terminating computation whose value is solution to an equation. In Curry's Paradox we use implication to construct a negation, that constructs an equation with no solution.

The recursive expression then represents a value that does not exist. The laws of logic are only valid for Boolean values in {true, false}, so any deduction made from the expression may be in error.

Natural languages nearly always contain many of features that could be used to construct the paradox, as do many other languages. Usually the addition of meta programming capabilities to a language will add the features needed.

Mathematical logic generally does not countenance explicit reference to its own sentences. However the heart of Gödel's incompleteness theorems is the observation that a self reference can be added; see Gödel number.

The axiom of Unrestricted comprehension adds the ability to construct a recursive definition in set theory. This axiom is not supported by modern set theory.

Consequences for some formal logic

In the 1930s, Curry's Paradox and the related Kleene–Rosser paradox played a major role in showing that formal logic systems based on self-recursive expressions are inconsistent.

Consequences for combinatory logics

In the study of illative (deductive) combinatory logic, Curry in 1941[2] recognized the implication of the paradox as implying that, without restrictions, the following properties of a combinatory logic are incompatible:

  1. Combinatorial completeness. This means that an abstraction operator is definable (or primitive) in the system, which is a requirement on the expressive power of the system.
  2. Deductive completeness. This is a requirement on derivability, namely, the principle that in a formal system with material implication and modus ponens, if Y is provable from the hypothesis X, then there is also a proof of X → Y.[3]

Resolution

Note that unlike the liar paradox or Russell's paradox, this paradox does not depend on what model of negation is used, as it is completely negation-free. Thus paraconsistent logics can still be vulnerable to this, even if they are immune to the liar paradox.

Resolution in natural language

Consideration of the sentence "If A then B" where A refers to the sentence creates a falsehood if B is false, because in fact there is no value for A that satisfies the expression A = "if A then false". Therefore the rest of the argument is invalid because it is arguing from an expression that has no possible value (does not exist).

Resolution in languages supporting self recursion

Languages which allow expressions (formulas) that are self-recursive, are inconsistent, and the paradox cannot be resolved.

However the languages may be made consistent by extending the domain of self-recursive expressions to allow all values that may be represented by the recursive expression. This domain is sometimes expressed as {true, false, meaningless}. This means that a recursive expression does not necessarily belong to the Boolean domain even if it is used in a Boolean expression.

The axioms and theorems of logic are valid only in the Boolean domain, {true, false}, so are not valid for those self-recursive expressions that are "meaningless". Any function that uses the value "meaningless" also returns the value "meaningless".

Resolution in Lambda Calculus

Applying Beta reduction

on where,

Then is,

If y = false then,

However no contradiction may be concluded because lambda expressions are not restricted to returning values from the Boolean domain. In this case is meaningless and so is meaningless. This allows to be either true or false, so no paradox.

Also axioms of logic like contraction and modus ponens do not apply as is not a Boolean value. Logical axioms apply to a lambda expression only if its value is in {true, false}. This would be assumed for a Boolean expression which is not self recursive, but for Lambda Calculus expressions it may not be assumed.

Resolution in Logic with a string Eval function

A similar argument applies to the use of a string Eval function. If,

s = "Eval(s) → y"

then if y is false the expression Eval(s) is "meaningless". No deductions may be applied to it because it is not in {true, false}.

Semantics of "meaningless"

Any statement (other than a meta-statement) about "meaningless" has the value meaningless. So if the parameter or the function is meaningless the result is meaningless. These statements must be considered as meta-statements, which describe the behaviour of "meaningless" in other statements.

Consider the statement,

This statement is not meaningless.

Which might be interpreted as,

So the above statement is meaningless.

But this statement also is "meaningless". The equals operator if given either value as meaningless returns meaningless. And meaningless statements are ignored by logic. In fact we cant even assert,

¬y → Eval(s) = meaningless

as this statement is also meaningless. The only statements that can be made about "meaningless" are meta-statements.

How do we determine if a value is meaningless

Previously we appear to work out that the value of is meaningless after applying logic to the expression. The following meta-identity for lambda calculus helps clarify the situation. It is a meta statement because it interprets the use of Beta reduction, which is a meta step in the evaluation of lambda expressions,

If x is a lambda expression,

In the paradox for lambda calculus, x is "r r" and,

  • domain[x] = {true, false}
  • lval[x] = r r
  • lval[betared[x]] = r r → y

and

which reduces to,

This tells us when has a meaningful value. If y is false no deductions can be made, and if y is true then is true.

Resolution in formal logic

The argument in formal logic starts with assuming the validity of naming (X → Y) as X. However this is not a valid starting point. First we must deduce the validity of the naming. The following theorem is easily proved and represents such a naming.

In the above statement the formula A is named as X. Now attempt to instantiate the formula with (X → Y) for A. However this is not possible as the scope of is inside the scope of . The order of the quantifiers may be reversed using Skolemization.

However now instantion gives,

which is not the starting point for the proof and does not lead to a contradiction. There are no other instantiations that for A that lead to to the starting point to the paradox.

Resolution in set theory

In Zermelo–Fraenkel set theory the axiom of unrestricted comprehension is replaced with a group of axioms that allow construction of sets. So Curry's paradox cannot be stated in ZFC. ZFC evolved in response to Russell's paradox.

See also

References

  1. ^ Barwise, Jon; Etchemendy, John (1987). The Liar: An Essay on Truth and Circularity. New York: Oxford University Press. p. 23. ISBN 0195059441. Retrieved 24 January 2013.
  2. ^ Curry, Haskell B. (1941). "The Paradox of Kleene and Rosser". Transactions of the American Mathematical Society. 50: 454–516. doi:10.1090/S0002-9947-1941-0005275-6. MR 0005275. Retrieved 24 January 2013.
  3. ^ Stenlund, Sören (1972). Combinators, λ-terms, and Proof Theory. Dordrecht: D. Reidel. p. 71. ISBN 978-9027703057.