PlanetMath (more info)
 Math for the people, by the people.
Encyclopedia | Requests | Forums | Docs | Wiki | Random | RSS  
Login
create new user
name:
pass:
forget your password?
Main Menu
Owner confidence rating: Very low Entry average rating: No information on entry rating
combinatory logic (Definition)

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

$\displaystyle f g x y = (f g) x y = ((f g) x) y $

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


$\displaystyle S f g x$ $\displaystyle =$ $\displaystyle f x (g x)$  
$\displaystyle K x y$ $\displaystyle =$ $\displaystyle x$  

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

$\displaystyle I x = S K K x = 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, $ S f g x = f x (g x)$ in combinatory logic is equivalent to $ S = (\lambda f (\lambda g (\lambda x ((f x) (g x)))))$, and $ K x y = x$ is equivalent to $ K = (\lambda x (\lambda y x))$.



"combinatory logic" is owned by Logan.
(view preamble)

View style:

See Also: lambda calculus

Also defines:  combinator, combination, free variable, pure combinatory logic
Log in to rate this entry.
(view current ratings)

Cross-references: size, expression, lambda calculus, associativity, juxtaposition, simple, parameter, variable, function, operations, terms, logic, Haskell
There are 17 references to this entry.

This is version 2 of combinatory logic, born on 2002-03-09, modified 2002-05-03.
Object id is 2784, canonical name is CombinatoryLogic.
Accessed 15583 times total.

Classification:
AMS MSC03B40 (Mathematical logic and foundations :: General logic :: Combinatory logic and lambda-calculus)

Pending Errata and Addenda
None.
Discussion
Style: Expand: Order:
forum policy

No messages.

Interact
post | correct | update request | add derivation | add example | add (any)