![]() z is the input, x is the parameter name, xy is the output. Take (λx.xy)z, the second half of (λx.xy), everything after the period, is output, you keep the output, but substitute the variable (named before the period) with the provided input. A lambda expression is like a function, you call the function by substituting the input throughout the expression. This is the process of calling the lambda expression with input, and getting the output. The result is equivalent to what you start out with, just with different variable names.Ģ) Beta Reduction - Basically just substitution. For example (λx.xx)(λx.x) becomes something like (λx.xx)(λy.y) or (λx.xx)(λx'.x') after reduction. There are basically two and a half processes in lambda calculus:ġ) Alpha Conversion - if you are applying two lambda expressions with the same variable name inside, you change one of them to a new variable name. Lambdas are like a function or a method - if you are familiar with programming, they are functions that take a function as input, and return a new function as output. In lambda calculus, there are only lambdas, and all you can do with them is substitution. HP-complete theories correspond to maximum consistent theories in theory of models for the first-order logic.Lambda calculus has a way of spiraling into a lot of steps, making solving problems tedious, and it can look real hard, but it isn't actually that bad. Then, either $\lambda\eta \vdash M = N$, or $\lambda\eta + M = N$ is inconsistent… One of the reasons to consider the system $\lambda\eta$ is that it has a certain property of completeness… The point of introducing of $\beta\eta$-reduction is to provide an axiom for provable statements in extensional $\lambda$-calculus However, since I have access only to its Russian translation at the moment, I have to translate it back to English. Its Syntax and Semantics“ (Barendregt, 1981). Yet another way to answer this question is to provide the following quotation from “Lambda Calculus. ![]() For example, the combinators $(\lambda y.\lambda x.y x)$ and $(\lambda y.y)$ are observationally equivalent - but how can we show that? Simply noting that they are $\eta$-equivalent packs a somewhat subtle and long-winded argument into an easily reusable concept. The availability of eta-reduction does not change whether a term has a normal form, for example.Įta is, however, sometimes useful as an auxiliary reasoning concept. ![]() So in that sense, eta equivalence does not add anything fundamentally new to the calculus. The eta conversion is intuitively justified by the fact that in the end the only thing you can really do with a lambda term is to apply it to something, so at that point it's not going to matter whether you've already eta reduced or not. $$ (\lambda x.M x) N \rightsquigarrow M N $$Ĭan be justified either as a beta or an eta reduction, but the eta reduction could happen before there's even an $N$ there. You could say that it anticipates the beta redex that will arise if and when the left-hand side is applied to something. Beta conversion is the familiar $(\lambda x.M)N \rightsquigarrow M$.Įta conversion is $\lambda x.M x \rightsquigarrow M$ when $M$ does not contain $x$ free.Įta is not a special case of beta, because there is no beta redex anywhere yet.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |