In mathematical logic, the Scott–Curry theorem is a result in lambda calculus stating that if two non-empty sets of lambda terms A and B are closed under beta-convertibility then they are recursively inseparable.[1]
A set A of lambda terms is closed under beta-convertibility if for any lambda terms X and Y, if
X\inA
Y\inA
f:N → \{0,1\}
f(a)=0
a\inA
f(b)=1
b\inB
The Scott–Curry theorem applies equally to sets of terms in combinatory logic with weak equality. It has parallels to Rice's theorem in computability theorem, which states that all non-trivial semantic properties of programs are undecidable.
The theorem has the immediate consequence that it is an undecidable problem to determine if two lambda terms are β-equivalent.
The proof is adapted from Barendregt in The Lambda Calculus.[2]
Let A and B be closed under beta-convertibility and let a and b be lambda term representations of elements from A and B respectively. Suppose for a contradiction that f is a lambda term representing a computable function such that
fx=0
x\inA
fx=1
x\inB
G\equivλx.if (zero? (fx))ab
zero?
if
if bxy
Then
x\inC\impliesGx=a
x\notinC\impliesGx=b
X\inC
X=G(X')=b
X\notinC
X\notinC
X=G(X')=a
X\inC
Dana Scott first proved the theorem in 1963. The theorem, in a slightly less general form, was independently proven by Haskell Curry.[3] It was published in Curry's 1969 paper "The undecidability of λK-conversion".[4]