 ##  [Lambda Calculus](/lambda-calculus-1) 

 Definition

A formal system for expressing computation based on function abstraction (λx. M), application (M N), variable binding and substitution, with operational rules such as alpha-equivalence and beta-reduction; it serves as a foundational model of computation.

 

 

 

 

 

 





## Principle

Principle

Computation as substitution: evaluating a computation corresponds to replacing bound variables with argument terms (beta-reduction) under rules that avoid capture (alpha-conversion).

 

 

 

 

 





## Demonstration

Demonstration

Representing natural numbers as Church numerals and defining addition as a lambda term: add = λm.λn.λf.λx. m f (n f x); reducing add 2 3 yields the church numeral for 5 via successive beta-reductions.

 

 

 

 

## Misapplication

Misapplication

Confusing a lambda term with a mutable function closure in an imperative language or treating free variables as implicitly global, which misrepresents the scoping and substitution semantics and leads to incorrect program reasoning.

 

 

 

 

 





## Consequence

Consequence

Provides a simple, compositional account of computation that underlies functional programming languages, compiler transformations (inlining, lambda lifting), and theoretical results about computability and program equivalence.

 

 

 

 

## Reversal

Reversal

An operational, state-transition view of computation (imperative machines) that emphasizes mutable state, commands, and explicit steps rather than substitution-based reduction.

 

 

 

 

 





## Boundary

Boundary

Pertains to syntactic expressions, binding, and reduction; untyped lambda calculus is Turing-complete but omits static guarantees, while typed variants integrate typing rules—operational aspects like I/O or side effects require extensions or embeddings.

 

 

 

 

 





## Semantic Tension

Semantic Tension

Tension between intensional syntactic reduction (how terms reduce) and extensional function equality (behavior on all inputs), and between untyped expressiveness and typed safety constraints (e.g., simply typed vs. polymorphic vs. dependent systems).

 

 

 

 

 





## Synthesis

Synthesis

The lambda calculus is a minimal, substitution-centered formalism that models computation by treating functions as first-class terms and evaluation as variable replacement under binding discipline; it forms the theoretical core of functional programming and of many equivalence and normalization results.