## You are here

Homecombinatory logic

## Primary tabs

# combinatory logic

*Combinatory logic* was invented by Moses Schönfinkel in the early 1920s, and was mostly developed by Haskell Curry. The idea was to reduce the notation of logic to the simplest terms possible. As such, combinatory logic consists only of *combinators*, *combination* operations, and no *free variables*.

A *combinator* is simply a function with no *free variables*. A *free variable* is any variable referred to in a function that is not a parameter of that function. The operation of *combination* is then simply the application of a combinator to its parameters. Combination is specified by simple juxtaposition of two terms, and is left-associative. Parentheses may also be present to override associativity. For example

$fgxy=(fg)xy=((fg)x)y$ |

All combinators in combinatory logic can be derived from two basic combinators, $S$ and $K$. They are defined as

$\displaystyle Sfgx$ | $\displaystyle=$ | $\displaystyle fx(gx)$ | ||

$\displaystyle Kxy$ | $\displaystyle=$ | $\displaystyle x$ |

Reference is sometimes made to a third basic combinator, $I$, which can be defined in terms of $S$ and $K$.

$Ix=SKKx=x$ |

Combinatory logic where $I$ is considered to be derived from $S$ and $K$ is sometimes known as *pure combinatory logic*.

Combinatory logic and lambda calculus are equivalent. However, lambda calculus is more concise than combinatory logic; an expression of size $\mathcal{O}(n)$ in lambda calculus is equivalent to an expression of size $\mathcal{O}(n^{2})$ in combinatory logic.

For example, $Sfgx=fx(gx)$ in combinatory logic is equivalent to $S=(\lambda f(\lambda g(\lambda x((fx)(gx)))))$, and $Kxy=x$ is equivalent to $K=(\lambda x(\lambda yx))$.

## Mathematics Subject Classification

03B40*no label found*

- Forums
- Planetary Bugs
- HS/Secondary
- University/Tertiary
- Graduate/Advanced
- Industry/Practice
- Research Topics
- LaTeX help
- Math Comptetitions
- Math History
- Math Humor
- PlanetMath Comments
- PlanetMath System Updates and News
- PlanetMath help
- PlanetMath.ORG
- Strategic Communications Development
- The Math Pub
- Testing messages (ignore)

- Other useful stuff

## Recent Activity

new question: Prove a formula is part of the Gentzen System by LadyAnne

Mar 30

new question: A problem about Euler's totient function by mbhatia

new problem: Problem: Show that phi(a^n-1), (where phi is the Euler totient function), is divisible by n for any natural number n and any natural number a >1. by mbhatia

new problem: MSC browser just displays "No articles found. Up to ." by jaimeglz

Mar 26

new correction: Misspelled name by DavidSteinsaltz

Mar 21

new correction: underline-typo by Filipe

Mar 19

new correction: cocycle pro cocyle by pahio

Mar 7

new image: plot W(t) = P(waiting time <= t) (2nd attempt) by robert_dodier

new image: expected waiting time by robert_dodier

new image: plot W(t) = P(waiting time <= t) by robert_dodier