Curry's paradox: Difference between revisions
m (sentences of the form "if A, then B") is called "conditional proof". Tags: Visual edit Mobile edit Mobile web edit Advanced mobile edit |
|||
(12 intermediate revisions by 9 users not shown) | |||
Line 1: | Line 1: | ||
{{Short description|Mathematical paradox named after Haskell Curry}} |
{{Short description|Mathematical paradox named after Haskell Curry}} |
||
{{for|Paul Curry's optical illusion and dissection puzzle|Missing square puzzle}} |
{{for|Paul Curry's optical illusion and dissection puzzle|Missing square puzzle}} |
||
'''Curry's paradox''' is a [[paradox]] in which an arbitrary claim ''F'' is proved from the mere existence of a sentence ''C'' that says of itself "If ''C'', then ''F''" |
'''Curry's paradox''' is a [[paradox]] in which an arbitrary claim ''F'' is proved from the mere existence of a sentence ''C'' that says of itself "If ''C'', then ''F''". The paradox requires only a few apparently-innocuous logical deduction rules. Since ''F'' is arbitrary, any logic having these rules allows one to prove everything. The paradox may be expressed in natural language and in various [[logic]]s, including certain forms of [[set theory]], [[lambda calculus]], and [[combinatory logic]]. |
||
The paradox is named after the logician [[Haskell Curry]]. It has also been called '''Löb's paradox''' after [[Martin Hugo Löb]],<ref>{{cite book |last1=Barwise |first1=Jon |author-link1=Jon Barwise |last2=Etchemendy |first2=John |author-link2=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 |access-date=24 January 2013}}</ref> due to its relationship to [[Löb's theorem]]. |
The paradox is named after the logician [[Haskell Curry]], who wrote about it in 1942.<ref name=":0" /> It has also been called '''Löb's paradox''' after [[Martin Hugo Löb]],<ref>{{cite book |last1=Barwise |first1=Jon |author-link1=Jon Barwise |last2=Etchemendy |first2=John |author-link2=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 |access-date=24 January 2013}}</ref> due to its relationship to [[Löb's theorem]]. |
||
==In natural language== |
==In 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: |
||
{{block indent|If this sentence is true, then Germany borders China.}} |
{{block indent|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. The analysis consists of two steps. |
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. The analysis consists of two steps. First, common natural-language proof techniques can be used to prove that the example sentence is true ''[steps 1–4 below]''. Second, the truth of the sentence can be used to prove that Germany borders China ''[steps 5–6]'': |
||
# The sentence reads "If this sentence is true, then Germany borders China" ''[repeat definition to get step numbering compatible to [[#Sentential logic|the formal proof]]]'' |
|||
# First, common natural-language proof techniques can be used to prove that the example sentence is true. |
|||
# If the sentence is true, then it is true. ''[obvious, i.e., a [[tautology (logic)|tautology]]]'' |
|||
# 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. |
|||
# If the sentence is true, then: if the sentence is true, then Germany borders China. ''[replace "it is true" by the sentence's definition]'' |
|||
# If the sentence is true, then Germany borders China. ''[contract repeated condition]'' |
|||
# But 4. is what the sentence says, so it is indeed true. |
|||
# The sentence is true ''[by 5.]'', and ''[by 4.]'': if it is true, then Germany borders China.<BR>So, Germany borders China. ''<nowiki>[</nowiki>[[modus ponens]]<nowiki>]</nowiki>'' |
|||
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.<ref>A parallel example is explained in the Stanford Encyclopedia of Philosophy. See {{Cite SEP |url-id=curry-paradox|title=Curry's Paradox|first=Lionel|last=Shapiro|last2=Beall|first2=Jc|date=2018}}</ref> |
Because Germany does not border China, this suggests that there has been an error in one of the proof steps. 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.<ref>A parallel example is explained in the Stanford Encyclopedia of Philosophy. See {{Cite SEP |url-id=curry-paradox|title=Curry's Paradox|first=Lionel|last=Shapiro|last2=Beall|first2=Jc|date=2018}}</ref> |
||
=== Informal proof=== |
=== Informal proof=== |
||
The standard method for proving [[conditional sentence]]s (sentences of the form "if A, then B") is called "[[conditional proof]]". In this method, in order to prove "if A, then B", first A is assumed and then with that assumption B is shown to be true. |
The standard method for proving [[conditional sentence]]s (sentences of the form "if ''A'', then ''B''") is called "[[conditional proof]]". In this method, in order to prove "if ''A'', then ''B''", first ''A'' is assumed and then with that assumption ''B'' is shown to be true. |
||
To produce Curry's paradox, as described in the two steps above, apply this method to the sentence "if this sentence is true, then Germany borders China". Here A, "this sentence is true", refers to the overall sentence, while B is "Germany borders China". So, 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". Therefore, B is true, by [[modus ponens]], and we have proven "If this sentence is true, then 'Germany borders China' is true." in the usual way, by assuming the hypothesis and deriving the conclusion. |
To produce Curry's paradox, as described in the two steps above, apply this method to the sentence "if this sentence is true, then Germany borders China". Here ''A'', "this sentence is true", refers to the overall sentence, while ''B'' is "Germany borders China". So, 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''". Therefore, ''B'' is true, by [[modus ponens]], and we have proven "If this sentence is true, then 'Germany borders China' is true." in the usual way, by assuming the hypothesis and deriving the conclusion. |
||
Now, because we have proved "If this sentence is true, then 'Germany borders China' is true", then |
Now, because we have proved "If this sentence is true, then 'Germany borders China' is true", then we can again apply modus ponens, because we know that the claim "this sentence is true" is correct. In this way, we can deduce that Germany borders China. |
||
we can again apply modus ponens, because we know that the claim "this sentence is true" is correct. In this way, we can deduce that Germany borders China. |
|||
== |
== In formal logics == |
||
===Sentential logic=== |
===Sentential logic=== |
||
The example in the previous section used unformalized, natural-language reasoning. Curry's paradox also occurs in some varieties of [[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 an 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 some varieties of [[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 an explanation of the logic notation used in this section, refer to the [[Logic notation|list of logic symbols]]. |
||
# X := (X → Y)<br>{{block indent| ''assumption'', the starting point, equivalent to "If this sentence is true, then Y"}} |
# ''X'' := (''X'' → ''Y'')<br>{{block indent| ''assumption'', the starting point, equivalent to "If this sentence is true, then ''Y''"}} |
||
# X → X<br>{{block indent|''[[law of identity]]''}} |
# ''X'' → ''X''<br>{{block indent|''[[law of identity]]''}} |
||
# X → (X → Y)<br>{{block indent|''substitute right side of 2'', since X is equivalent to X → Y by 1}} |
# ''X'' → (''X'' → ''Y'')<br>{{block indent|''substitute right side of 2'', since ''X'' is equivalent to ''X'' → ''Y'' by 1}} |
||
# X → Y<br>{{block indent|from 3 by ''[[rule of contraction|contraction]]''}} |
# ''X'' → ''Y''<br>{{block indent|from 3 by ''[[rule of contraction|contraction]]''}} |
||
# X<br>{{block indent|''substitute 4'', by 1}} |
# ''X''<br>{{block indent|''substitute 4'', by 1}} |
||
# Y<br>{{block indent|from 5 and 4 by ''[[modus ponens]]''}} |
# ''Y''<br>{{block indent|from 5 and 4 by ''[[modus ponens]]''}} |
||
An alternative proof is via ''[[Peirce's law]]''. If X = X → Y then (X → Y) → X. This together with Peirce's law ((X → Y) → X) → X and ''[[modus ponens]]'' implies X and subsequently Y (as in above proof). |
An alternative proof is via ''[[Peirce's law]]''. If ''X'' = ''X'' → ''Y'', then (''X'' → ''Y'') → ''X''. This together with Peirce's law ((''X'' → ''Y'') → ''X'') → ''X'' and ''[[modus ponens]]'' implies ''X'' and subsequently ''Y'' (as in above proof). |
||
The above derivation shows that, if ''Y'' is an unprovable statement in a formal system, then there is no statement ''X'' in that system such that ''X'' is equivalent to the implication (''X'' → ''Y''). In other words, step 1 of the previous proof fails. 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. |
|||
# X = (X → Y)<br>{{block indent|assumption}} |
|||
# X = (X → false)<br>{{block indent|substitute known value of Y}} |
|||
# X = (¬X ∨ false)<br>{{block indent|''[[logical implication|implication]]''}} |
|||
# X = ¬X<br>{{block indent|identity}} |
|||
=== Naive set theory === |
=== Naive set theory === |
||
Even if the underlying mathematical logic does not admit any self-referential sentences, certain forms of naive set theory are still vulnerable to Curry's paradox. In set theories that allow [[Axiom schema of specification#Unrestricted comprehension|unrestricted comprehension]], we can |
Even if the underlying mathematical logic does not admit any self-referential sentences, certain forms of naive set theory are still vulnerable to Curry's paradox. In set theories that allow [[Axiom schema of specification#Unrestricted comprehension|unrestricted comprehension]], we can prove any logical statement ''Y'' by examining the set |
||
<math display="block">X \ \stackrel{\mathrm{def}}{=}\ \left\{ x \mid x \in x \to Y \right\}.</math> |
<math display="block">X \ \stackrel{\mathrm{def}}{=}\ \left\{ x \mid (x \in x) \to Y \right\}.</math>One then shows easily that the statement <math>X\in X</math> is equivalent to <math>(X\in X) \to Y</math>. From this, <math>Y</math> may be deduced, similarly to the proofs shown above. ("<math>X\in X</math>" stands for "this sentence".) |
||
Assuming that <math>\in</math> [[order of operations|takes precedence]] over both <math>\to</math> and <math>\leftrightarrow</math>, the proof proceeds as follows: |
|||
# <math> X = \left\{ x \mid x \in x \to Y \right\} </math><br>{{block indent|Definition of X}} |
|||
# <math> x = X \to (x \in x \leftrightarrow X \in X) </math><br>{{block indent|Substitution of equal sets in membership}} |
|||
# <math> x = X \to ( (x \in x \to Y) \leftrightarrow (X \in X \to Y))</math><br>{{block indent|Addition of a consequent to both sides of a biconditional (from 2)}} |
|||
# <math> X \in X \leftrightarrow (X \in X \to Y) </math><br>{{block indent|Law of concretion (from 1 and 3)}} |
|||
# <math> X \in X \to (X \in X \to Y) </math><br>{{block indent|Biconditional elimination (from 4)}} |
|||
# <math> X \in X \to Y </math><br>{{block indent|Contraction (from 5)}} |
|||
# <math>(X \in X \to Y) \to X \in X </math><br>{{block indent|Biconditional elimination (from 4)}} |
|||
# <math> X \in X </math><br>{{block indent|Modus ponens (from 6 and 7)}} |
|||
# <math> Y </math><br>{{block indent|Modus ponens (from 8 and 6)}} |
|||
Step 4 is the only step invalid in a consistent set theory. In [[Zermelo–Fraenkel set theory]], an extra hypothesis stating ''X'' is a set would be required, which is not provable in ZF or in its extension ZFC (with the [[axiom of choice]]). |
|||
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. |
||
=== Lambda calculus === |
=== Lambda calculus with restricted minimal logic === |
||
Curry's paradox may be expressed in untyped [[lambda calculus]], enriched by |
Curry's paradox may be expressed in untyped [[lambda calculus]], enriched by [[implicational propositional calculus]]. To cope with the lambda calculus's syntactic restrictions, <math>m</math> shall denote the implication function taking two parameters, that is, the lambda term <math>((m A) B)</math> shall be equivalent to the usual [[infix notation]] <math>A \to B</math>. |
||
To cope with the lambda calculus's syntactic restrictions, <math>m</math> shall denote the implication function taking two parameters, that is, the lambda term <math>((m A) B)</math> shall be equivalent to the usual [[infix notation]] <math>A \to B</math>. |
|||
An arbitrary formula <math>Z</math> can be proved by defining a lambda function <math>N := \lambda p.((m p) Z)</math>, and <math>X := (\textsf{Y} N)</math>, where <math>\textsf{Y}</math> denotes Curry's [[fixed-point combinator]]. Then <math>X = (N X) = ((m X) Z)</math> by definition of <math>\textsf{Y}</math> and <math>N</math>, hence the [[#Sentential logic|above]] sentential logic proof can be duplicated in the calculus:<ref>The naming here follows the sentential logic proof, except that "''Z''" is used instead of "''Y''" to avoid confusion with Curry's fixed-point combinator <math>\textsf{Y}</math>.</ref><ref>{{cite book | url=http://yquem.inria.fr/~huet/PUBLIC/Formal_Structures.ps.gz | author=Gérard Huet | author-link=Gérard Huet |title=Formal Structures for Computation and Deduction | location=Marktoberdorf | series=International Summer School on Logic of Programming and Calculi of Discrete Design | date=May 1986 | archive-url=https://web.archive.org/web/20140714171331/http://yquem.inria.fr/~huet/PUBLIC/Formal_Structures.ps.gz | archive-date=2014-07-14 }} Here: p.125</ref><ref>{{cite book | author1=Haskell B. Curry | author2=Robert Feys | author1-link=Haskell B. Curry | author2-link=Robert Feys |title=Combinatory Logic I | location=Amsterdem | publisher=North Holland | series=Studies in Logic and the Foundations of Mathematics | volume=22 | year=1958 }}{{page needed|date=May 2019}}</ref> |
An arbitrary formula <math>Z</math> can be proved by defining a lambda function <math>N := \lambda p.((m p) Z)</math>, and <math>X := (\textsf{Y} N)</math>, where <math>\textsf{Y}</math> denotes Curry's [[fixed-point combinator]]. Then <math>X = (N X) = ((m X) Z)</math> by definition of <math>\textsf{Y}</math> and <math>N</math>, hence the [[#Sentential logic|above]] sentential logic proof can be duplicated in the calculus:<ref>The naming here follows the sentential logic proof, except that "''Z''" is used instead of "''Y''" to avoid confusion with Curry's fixed-point combinator <math>\textsf{Y}</math>.</ref><ref>{{cite book | url=http://yquem.inria.fr/~huet/PUBLIC/Formal_Structures.ps.gz | author=Gérard Huet | author-link=Gérard Huet |title=Formal Structures for Computation and Deduction | location=Marktoberdorf | series=International Summer School on Logic of Programming and Calculi of Discrete Design | date=May 1986 | archive-url=https://web.archive.org/web/20140714171331/http://yquem.inria.fr/~huet/PUBLIC/Formal_Structures.ps.gz | archive-date=2014-07-14 }} Here: p.125</ref><ref>{{cite book | author1=Haskell B. Curry | author2=Robert Feys | author1-link=Haskell B. Curry | author2-link=Robert Feys |title=Combinatory Logic I | location=Amsterdem | publisher=North Holland | series=Studies in Logic and the Foundations of Mathematics | volume=22 | year=1958 }}{{page needed|date=May 2019}}</ref> |
||
Line 119: | Line 101: | ||
== Discussion == |
== Discussion == |
||
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. Two mechanisms that support the construction of the paradox are self-reference (the ability to refer to "this sentence" from within a sentence) and [[unrestricted comprehension]] in naive set theory. Natural languages nearly always contain many features that could be used to construct the paradox, as do many other languages. Usually the addition of |
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. Two mechanisms that support the construction of the paradox are self-reference (the ability to refer to "this sentence" from within a sentence) and [[unrestricted comprehension]] in naive set theory. Natural languages nearly always contain many features that could be used to construct the paradox, as do many other languages. Usually, the addition of metaprogramming capabilities to a language will add the features needed. Mathematical logic generally does not allow explicit reference to its own sentences; however, the heart of [[Gödel's incompleteness theorems]] is the observation that a different form of self-reference can be added—see [[Gödel number]]. |
||
The rules used in the construction of the proof are the [[natural deduction|rule of assumption]] for conditional proof, the rule of [[rule of contraction|contraction]], and [[modus ponens]]. These are included in most common logical systems, such as first-order logic. |
|||
The axiom of 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]]. |
|||
The logic rules used in the construction of the proof are the [[natural deduction|rule of assumption]] for conditional proof, the rule of [[rule of contraction|contraction]], and [[modus ponens]]. These are included in the most common logical systems, such as first-order logic. |
|||
=== Consequences for some formal logic === |
=== 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 |
In the 1930s, Curry's paradox and the related [[Kleene–Rosser paradox]], from which Curry's paradox was developed,<ref>{{cite journal |last=Curry |first=Haskell B. |date=Jun 1942 |title=The Combinatory Foundations of Mathematical Logic |journal=Journal of Symbolic Logic |volume=7 |pages=49–64 |doi=10.2307/2266302 |jstor=2266302 |s2cid=36344702 |number=2}}</ref><ref name=":0">{{cite journal |last=Curry |first=Haskell B. |date=Sep 1942 |title=The Inconsistency of Certain Formal Logics |journal=The Journal of Symbolic Logic |volume=7 |issue=3 |pages=115–117 |doi=10.2307/2269292 |jstor=2269292 |s2cid=121991184}}</ref> played a major role in showing that various formal logic systems allowing self-recursive expressions are [[Consistency|inconsistent]]. |
||
These include some versions of [[lambda calculus]] and [[combinatory logic]]. |
|||
Curry began with the Kleene–Rosser paradox<ref>{{Cite journal |first1=S. C. |last1=Kleene |name-list-style=amp |first2=J. B. |last2=Rosser |title=The inconsistency of certain formal logics |journal=[[Annals of Mathematics]] |volume=36 |issue=3 |pages=630–636 |year=1935 |doi=10.2307/1968646 |jstor=1968646 }}</ref> and deduced that the core problem could be expressed in this simpler Curry's paradox.<ref>{{cite journal | jstor = 2266302 | first=Haskell B. | last=Curry | title=The Combinatory Foundations of Mathematical Logic | journal=Journal of Symbolic Logic | volume=7 | number=2 | pages=49–64 | date=Jun 1942 | doi=10.2307/2266302 | s2cid=36344702 }}</ref><ref>{{cite journal |title=The Inconsistency of Certain Formal Logics |first=Haskell B. |last=Curry |journal=The Journal of Symbolic Logic |volume=7 |issue=3 |date=Sep 1942 |pages=115–117 |jstor=2269292 |doi=10.2307/2269292|s2cid=121991184 }}</ref> His conclusion may be stated as saying that combinatory logic and lambda calculus cannot be made consistent as deductive languages, while still allowing recursion. |
|||
In the study of illative (deductive) [[combinatory logic]], Curry in 1941<ref>{{cite journal |last=Curry |first=Haskell B. |author-link=Haskell Curry |title=The Paradox of Kleene and Rosser |journal=Transactions of the American Mathematical Society |year=1941 |volume=50 |issue=3 |pages=454–516 |doi=10.1090/S0002-9947-1941-0005275-6 |mr=0005275 |url=https://www.ams.org/journals/tran/1941-050-03/S0002-9947-1941-0005275-6/ |access-date=24 January 2013|doi-access=free }}</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== |
|||
{{Unreferenced section|date=August 2019}} |
|||
{{Disputed section|date=August 2019}} |
|||
Note that unlike the [[liar paradox]] or Russell's paradox, Curry's 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 paradox, even if they are immune to the liar paradox. |
|||
=== No resolution in lambda calculus === |
|||
The origin of [[Alonzo Church]]'s [[lambda calculus]] may have been, "How can you solve an equation, to provide a definition of a function?". This is expressed in this equivalence, |
|||
<math display="block">f\ x = y \iff f = \lambda x.y. </math> |
|||
This definition is valid if there is one and only one function <math>f</math> that satisfies the equation <math>f\ x = y </math>, but invalid otherwise. This is the core of the problem that [[Stephen Cole Kleene]] and then [[Haskell Curry]] discovered with combinatory logic and Lambda calculus. |
|||
The situation may be compared to defining |
|||
<math display="block">y = x^2 \iff x = \sqrt{y}. </math> |
|||
This definition is fine as long as only positive values are allowed for the square root. In mathematics an [[Existential quantification|existentially quantified]] variable may represent multiple values, but only one at a time. Existential quantification is the [[Logical disjunction|disjunction]] of many instances of an equation. In each equation is one value for the variable. |
|||
However, in mathematics, an expression with no [[Free variables and bound variables|free variables]] must have one and only one value. So <math> \sqrt{4} </math> can only represent <math>+2</math>. However, there is no convenient way to restrict the lambda abstraction to one value or to assure that there is a value. |
|||
Lambda calculus allows recursion by passing the same function that is called as a parameter. This allows situations where <math>f\ x = y </math> has multiple or no solutions for <math>f</math>. |
|||
Lambda calculus may be considered as part of mathematics if only lambda abstractions that represent a single solution to an equation are allowed. Other lambda abstractions are incorrect in mathematics. |
|||
Curry's paradox and other paradoxes arise in Lambda calculus because of the inconsistency of Lambda calculus considered as a [[deductive system]]. See also [[deductive lambda calculus]]. |
|||
====Domain of lambda calculus terms==== |
|||
Lambda calculus is a consistent theory in its [[Deductive lambda calculus#Domain of lambda calculus|own domain]]. However, it is not consistent to add the lambda abstraction definition to [[mathematics|general mathematics]]. Lambda terms describe values from the lambda calculus domain. Each lambda term has a value in that domain. |
|||
When translating expressions from mathematics to lambda calculus, the domain of lambda calculus terms is not always [[isomorphism|isomorphic]] to the domain of the mathematical expressions. This lack of isomorphism is the source of the apparent contradictions. |
|||
=== Resolution in unrestricted languages === |
|||
There are many language constructs that implicitly invoke an equation that may have none or many solutions. The sound resolution to this problem is to syntactically link these expressions to an existentially quantified variable. The variable represents the multiple values in a way that is meaningful in common human reasoning, but is also valid in mathematics. |
|||
For example, a natural language that allows the ''Eval'' function is not mathematically consistent. But each call to ''Eval'' in that natural language may be translated into mathematics in a way that is consistent. The translation of ''Eval(s)'' into mathematics is |
|||
{{block indent|1=let x = Eval(s) in x.}} |
|||
So where s = "Eval(s) → y", |
|||
{{block indent|1=let x = x → y in x.}} |
|||
If y is false, then the x = x → y is false, but this is a falsehood, not a paradox. |
|||
The existence of the variable x was implicit in the natural language. The variable x is created when the natural language is translated into mathematics. This allows us to use natural language, with natural semantics, while maintaining mathematical integrity. |
|||
=== 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 display="block"> \forall A, \exists X, X = A. </math> |
|||
In the above statement the formula A is named as X. Now attempt to [[Universal instantiation|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 display="block"> \exists f, \forall A, f(A) = A. </math> |
|||
However, now instantiation gives |
|||
<math display="block"> 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 for A that lead to the starting point of the paradox. |
|||
===Resolution in set theory=== |
|||
The axiom of unrestricted comprehension is not supported by [[Zermelo–Fraenkel set theory|modern set theory]], and Curry's paradox is thus avoided. |
|||
==See also== |
==See also== |
||
Line 207: | Line 118: | ||
* [[Zermelo–Fraenkel set theory]] |
* [[Zermelo–Fraenkel set theory]] |
||
* [[Fixed-point combinator]] |
* [[Fixed-point combinator]] |
||
* [[Deductive lambda calculus]] |
|||
* [[Let expression]] |
|||
==References== |
==References== |
||
Line 218: | Line 127: | ||
*[https://web.archive.org/web/20150710154838/http://xeny.net/PenguinsRuleTheUniverse Penguins Rule the Universe: A Proof that Penguins Rule the Universe], a brief and entertaining discussion of Curry's paradox. |
*[https://web.archive.org/web/20150710154838/http://xeny.net/PenguinsRuleTheUniverse Penguins Rule the Universe: A Proof that Penguins Rule the Universe], a brief and entertaining discussion of Curry's paradox. |
||
{{Haskell Curry}} |
|||
{{Paradoxes}} |
{{Paradoxes}} |
||
Latest revision as of 14:13, 27 June 2024
Curry's paradox is a paradox in which an arbitrary claim F is proved from the mere existence of a sentence C that says of itself "If C, then F". The paradox requires only a few apparently-innocuous logical deduction rules. Since F is arbitrary, any logic having these rules allows one to prove everything. The paradox may be expressed in natural language and in various logics, including certain forms of set theory, lambda calculus, and combinatory logic.
The paradox is named after the logician Haskell Curry, who wrote about it in 1942.[1] It has also been called Löb's paradox after Martin Hugo Löb,[2] due to its relationship to Löb's theorem.
In natural language
[edit]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:
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. The analysis consists of two steps. First, common natural-language proof techniques can be used to prove that the example sentence is true [steps 1–4 below]. Second, the truth of the sentence can be used to prove that Germany borders China [steps 5–6]:
- The sentence reads "If this sentence is true, then Germany borders China" [repeat definition to get step numbering compatible to the formal proof]
- If the sentence is true, then it is true. [obvious, i.e., a tautology]
- If the sentence is true, then: if the sentence is true, then Germany borders China. [replace "it is true" by the sentence's definition]
- If the sentence is true, then Germany borders China. [contract repeated condition]
- But 4. is what the sentence says, so it is indeed true.
- The sentence is true [by 5.], and [by 4.]: if it is true, then Germany borders China.
So, Germany borders China. [modus ponens]
Because Germany does not border China, this suggests that there has been an error in one of the proof steps. 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.[3]
Informal proof
[edit]The standard method for proving conditional sentences (sentences of the form "if A, then B") is called "conditional proof". In this method, in order to prove "if A, then B", first A is assumed and then with that assumption B is shown to be true.
To produce Curry's paradox, as described in the two steps above, apply this method to the sentence "if this sentence is true, then Germany borders China". Here A, "this sentence is true", refers to the overall sentence, while B is "Germany borders China". So, 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". Therefore, B is true, by modus ponens, and we have proven "If this sentence is true, then 'Germany borders China' is true." in the usual way, by assuming the hypothesis and deriving the conclusion.
Now, because we have proved "If this sentence is true, then 'Germany borders China' is true", then we can again apply modus ponens, because we know that the claim "this sentence is true" is correct. In this way, we can deduce that Germany borders China.
In formal logics
[edit]Sentential logic
[edit]The example in the previous section used unformalized, natural-language reasoning. Curry's paradox also occurs in some varieties of 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 an explanation of the logic notation used in this section, refer to the list of logic symbols.
- X := (X → Y)assumption, the starting point, equivalent to "If this sentence is true, then Y"
- X → X
- X → (X → Y)substitute right side of 2, since X is equivalent to X → Y by 1
- X → Yfrom 3 by contraction
- Xsubstitute 4, by 1
- Yfrom 5 and 4 by modus ponens
An alternative proof is via Peirce's law. If X = X → Y, then (X → Y) → X. This together with Peirce's law ((X → Y) → X) → X and modus ponens implies X and subsequently Y (as in above proof).
The above derivation shows that, if Y is an unprovable statement in a formal system, then there is no statement X in that system such that X is equivalent to the implication (X → Y). In other words, step 1 of the previous proof fails. 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".
Naive set theory
[edit]Even if the underlying mathematical logic does not admit any self-referential sentences, certain forms of naive set theory are still vulnerable to Curry's paradox. In set theories that allow unrestricted comprehension, we can prove any logical statement Y by examining the set One then shows easily that the statement is equivalent to . From this, may be deduced, similarly to the proofs shown above. ("" stands for "this sentence".)
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.
Lambda calculus with restricted minimal logic
[edit]Curry's paradox may be expressed in untyped lambda calculus, enriched by implicational propositional calculus. To cope with the lambda calculus's syntactic restrictions, shall denote the implication function taking two parameters, that is, the lambda term shall be equivalent to the usual infix notation .
An arbitrary formula can be proved by defining a lambda function , and , where denotes Curry's fixed-point combinator. Then by definition of and , hence the above sentential logic proof can be duplicated in the calculus:[4][5][6]
In simply typed lambda calculus, fixed-point combinators cannot be typed and hence are not admitted.
Combinatory logic
[edit]Curry's paradox may also be expressed in combinatory logic, which 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.
The above term translates to in combinatory logic, where hence[7]
Discussion
[edit]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. Two mechanisms that support the construction of the paradox are self-reference (the ability to refer to "this sentence" from within a sentence) and unrestricted comprehension in naive set theory. Natural languages nearly always contain many features that could be used to construct the paradox, as do many other languages. Usually, the addition of metaprogramming capabilities to a language will add the features needed. Mathematical logic generally does not allow explicit reference to its own sentences; however, the heart of Gödel's incompleteness theorems is the observation that a different form of self-reference can be added—see Gödel number.
The rules used in the construction of the proof are the rule of assumption for conditional proof, the rule of contraction, and modus ponens. These are included in most common logical systems, such as first-order logic.
Consequences for some formal logic
[edit]In the 1930s, Curry's paradox and the related Kleene–Rosser paradox, from which Curry's paradox was developed,[8][1] played a major role in showing that various formal logic systems allowing self-recursive expressions are inconsistent.
The axiom of unrestricted comprehension is not supported by modern set theory, and Curry's paradox is thus avoided.
See also
[edit]- Girard's paradox
- List of paradoxes
- Richard's paradox
- Zermelo–Fraenkel set theory
- Fixed-point combinator
References
[edit]- ^ a b Curry, Haskell B. (Sep 1942). "The Inconsistency of Certain Formal Logics". The Journal of Symbolic Logic. 7 (3): 115–117. doi:10.2307/2269292. JSTOR 2269292. S2CID 121991184.
- ^ 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.
- ^ A parallel example is explained in the Stanford Encyclopedia of Philosophy. See Shapiro, Lionel; Beall, Jc (2018). "Curry's Paradox". In Zalta, Edward N. (ed.). Stanford Encyclopedia of Philosophy.
- ^ The naming here follows the sentential logic proof, except that "Z" is used instead of "Y" to avoid confusion with Curry's fixed-point combinator .
- ^ Gérard Huet (May 1986). Formal Structures for Computation and Deduction. International Summer School on Logic of Programming and Calculi of Discrete Design. Marktoberdorf. Archived from the original on 2014-07-14.
{{cite book}}
: CS1 maint: location missing publisher (link) Here: p.125 - ^ Haskell B. Curry; Robert Feys (1958). Combinatory Logic I. Studies in Logic and the Foundations of Mathematics. Vol. 22. Amsterdem: North Holland.[page needed]
- ^
- ^ Curry, Haskell B. (Jun 1942). "The Combinatory Foundations of Mathematical Logic". Journal of Symbolic Logic. 7 (2): 49–64. doi:10.2307/2266302. JSTOR 2266302. S2CID 36344702.
External links
[edit]- Beall, J. C. "Curry's paradox". In Zalta, Edward N. (ed.). Stanford Encyclopedia of Philosophy.
- Cantini, Andrea. "Paradoxes and Contemporary Logic". In Zalta, Edward N. (ed.). Stanford Encyclopedia of Philosophy.
- Penguins Rule the Universe: A Proof that Penguins Rule the Universe, a brief and entertaining discussion of Curry's paradox.