Questions tagged [lambda-calculus]

For questions on the formal system in mathematical logic for expressing computation using abstract notions of functions and combining them through binding and substitution.

Lambda calculus (also written as λ-calculus) is a formal system in mathematical and theoretical for expressing computation based on function abstraction and application using variable binding and substitution. Its namesake, the Greek letter lambda (λ), is used in lambda expressions and lambda terms to denote binding a variable in a function.

It was first introduced by mathematician Alonzo Church in the 1930s as part of his research of the of mathematics. The original system was shown to be logically inconsistent because of the Kleene–Rosser paradox. Subsequently, in 1936 Church isolated and published just the portion relevant to computation, what is now called the untyped lambda calculus.

Untyped lambda calculus is Turing complete, that is, it is a universal model of computation that can be used to simulate any (see ). It may be used to model booleans, arithmetic, data structures and recursion.

Lambda calculus may be untyped or typed. In typed lambda calculus (see ), functions can be applied only if they are capable of accepting the given input's "type" of data. Typed lambda calculi are weaker than the untyped lambda calculus, in the sense that typed lambda calculi can express less than the untyped calculus can, but on the other hand typed lambda calculi allow more things to be proved; in the simply typed lambda calculus it is for example a theorem that every evaluation strategy terminates for every simply typed lambda-term, whereas evaluation of untyped lambda-terms need not terminate. One reason there are many different typed lambda calculi has been the desire to do more (of what the untyped calculus can do) without giving up on being able to prove strong theorems about the calculus.

Typed lambda calculi are closely related to mathematical and via the Curry–Howard isomorphism: types correspond to logic formulas, lambda-terms correspond to derivations in a logic system (depending on the kind of typed lambda calculus) and computation steps in the lambda calculus correspond to normalization (i.e. cut-elimination) steps for derivations.

Lambda calculus has applications in many different areas in mathematics, philosophy, linguistics, and computer science. Lambda calculus has played an important role in the development of the theory of languages, since functional programming languages implement the lambda calculus. Lambda calculus also is a current research topic in .

655 questions
0
votes
1 answer

Encoding of booleans in lambda calculus

The encoding of booleans in pure lambda calculus: true := λx.λy.x false := λx.λy.y cond := λb.λx.λy.b x y So if "cond" re-defined as cond := λx.x and assume "true" and "false" are keep same as before, does this result in a valid encoding of…
Student
  • 119
0
votes
1 answer

Can a lambda term with only a free variable be reduced further

From what I understand, a normal form is a $\lambda$-term with one of the following properties: $\lambda x.M$ with $M$ in normal form $xM_1...M_n$ with $n \geq 0$ and $M_1,...,M_n$ in normal form Now say I have the term $\lambda x.y$, which…
0
votes
1 answer

Which definition to use in the $\lambda$-calculus problem

Compute the result by using $\lambda$-calculus: $$+ (+ 2\,4) 1.$$ My question is: should I use definition of outer $+$ and then by $\beta$-reduction proceed until I am left with no $\beta$-redex any more. Then, again, use definition of next term…
Nemanja Beric
  • 688
  • 3
  • 10
0
votes
1 answer

Reduce lambda term to normal form

I'm supposed to find normal form (if it exists) of following lambda term (λy.y x (λx. y (λy.z) x)) v w I understand first step of the process, which returns (v x (λx.v (λy.z) x) w) but i don't understand why this is given as final result of…
0
votes
0 answers

Are two $\alpha$-equivalent terms syntatically equivalent?

I am reading "Type Theory and Formal Proof: An Introduction" by Rob Nederpelt. On page 6, $M \equiv N$ is defined to mean that the $\lambda$-terms $M$ and $N$ are identical. On page 10, $\alpha$-equivalence is defined to be: $\lambda x. N =_\alpha…
user80458
0
votes
1 answer

What is the least general computable property that all non-terminating redexes have in common?

The simplest example of a non-terminating reducible expression is ((λx. x x) (λx. x x)), which $\beta$-reduces to itself in one step and is therefore non-terminating. This also highlights a class of non-terminating redexes: those that…
0
votes
1 answer

On $\eta$-reduction

NB: This is a full reworking of an earlier post of mine (which I have now deleted). That earlier post was flawed due to a technicality (applying $\eta$-reduction without considering the question of free variables) that clouded issue. This version…
kjo
  • 14,334
0
votes
1 answer

lambda expression reduces to x but how?

I must be missing a rule to beta reduction, because I don't understand the following reduction. (\y.x) z This reduces to x. Why? (\x.x) z This reduces to z. Why does the above expression reduce to x?
Chris
  • 151
0
votes
1 answer

lambda calculus beta reduction and normalisation

I have a question that asks me whether the following expression is weakly and/or stronly beta normalised. (λz.y)((λx.xx)(λx.xx)) ____________________ Apparently this expression beta reduces to y. How so? and how does that make it weakly…
Chris
  • 151
0
votes
1 answer

How to apply a Church numeral to a $n$-ary function?

I was reading about Church encoding, and couldn't figure out some of the grammar of function applications (in terms of Church numerals). In particular, the examples I've seen thus far apply to unary functions $f$, i.e. something like $n \space f…
tinlyx
  • 1,534
0
votes
1 answer

Proving combinator identity KMN=M

Have a problem proving K MN=M By the K combinator definition $ (\lambda x y.x) M N $ Parenthesized $ ((\lambda x. (\lambda y.x)) M) N $ By the principal axiom of lambda calculus $ (\lambda y.M) N $ Second application of the principal axiom $ M[y:=…
0
votes
1 answer

How to prove Y Y = Y (Y(Y))

I found a prove online, but I can not fully understand it. The prove is like this: let Y = lambda y . (lambda x . y (x x)) (lambda x . y (x x)) Y Y Expand the first Y: (lambda y . (lambda x . y (x x)) (lambda x . y (x x))) Y beta: (lambda x . Y (x…
TRX
  • 101
0
votes
1 answer

Lambda calculus Beta reduction

When applying Beta reduction does the function also affect on the $\lambda$ term? (If same value) For example $\lambda$ z.$\lambda$ z (z z) t What is the correct reduction? $\lambda$z (t t) or $\lambda$t (t t)
0
votes
1 answer

Simple Problem with Lambda Calculus and Y Combinator

I am currently reading about the lambda calculus as well as the Y combinator. I know that for any function $f$, $Yf$ is a fixed-point of $f$, that is $f(Yf) = Yf$. In order to wrap my head around this, I came up with the following example: $Y :=…
user240541
0
votes
1 answer

question about lambda calculus

I'm triyng to understanding lambda calculus but I have some difficulty espacially when websites or books I search starts to make things a bit more complicated. what I've understood by now is: given (λa.abc)(x)(y) we "solve" it substituting the…
1 2 3
15
16