Bonne projection: Difference between revisions
en>EdwardLane m →External links: added map projection template |
en>Chienlit →References: ==See also== {{Portal|Atlas}} * List of map projections |
||
Line 1: | Line 1: | ||
In [[mathematical logic]] and [[theoretical computer science]], a [[rewrite system]] has the '''strong normalization property''' (in short: the '''normalization property''') if every term is ''strongly normalizing''; that is, if every sequence of rewrites eventually terminates to a term in [[Normal form (term rewriting)|normal form]]. A rewrite system may also have the '''weak normalization property''', meaning that for every term, there exists at least one particular sequence of rewrites that eventually yields a normal form. | |||
== Lambda calculus == | |||
=== Untyped lambda calculus === | |||
The ''pure'' untyped [[lambda calculus]] does not satisfy the strong normalization property, and not even the weak normalization property. Consider the term <math>\lambda x . x x x</math>. It has the following rewrite rule: For any term <math>t</math>, | |||
: <math>(\mathbf{\lambda} x . x x x) t \rightarrow t t t</math> | |||
But consider what happens when we apply <math>\lambda x . x x x</math> to itself: | |||
{| | |||
| <math>(\mathbf{\lambda} x . x x x) (\lambda x . x x x)</math> | |||
| <math> \rightarrow (\mathbf{\lambda} x . x x x) (\lambda x . x x x) (\lambda x . x x x)</math> | |||
|- | |||
| | |||
| <math> \rightarrow (\mathbf{\lambda} x . x x x) (\lambda x . x x x) (\lambda x . x x x) (\lambda x . x x x)</math> | |||
|- | |||
| | |||
| <math> \rightarrow (\mathbf{\lambda} x . x x x) (\lambda x . x x x) (\lambda x . x x x) (\lambda x . x x x) (\lambda x . x x x)</math> | |||
|- | |||
| | |||
| <math>\rightarrow \ \ldots\,</math> | |||
|} | |||
Therefore the term <math>(\lambda x . x x x) (\lambda x . x x x)</math> is neither strongly nor weakly normalizing. | |||
=== Typed lambda calculus === | |||
Various systems of [[typed lambda calculus]] including the | |||
[[simply typed lambda calculus]], [[Jean-Yves Girard]]'s [[System F]], and [[Thierry Coquand]]'s [[calculus of constructions]] are strongly normalizing. | |||
A lambda calculus system with the '''normalization property''' can be viewed as a programming language with the property that every program [[termination analysis|terminates]]. Although this is a very useful property, it has a drawback: a programming language with the normalization property cannot be [[turing completeness|Turing complete]]. That means that there are computable functions that cannot be defined in the simply typed lambda calculus (and similarly there are computable functions that cannot be computed in the calculus of constructions or System F). As an example, it is impossible to define a [[self-interpreter]] in any of the calculi cited above.<ref>Conor McBride (May 2003), [http://www.haskell.org/pipermail/haskell-cafe/2003-May/004343.html "on termination"] (posted to the Haskell-Cafe mailing list).</ref> | |||
==See also== | |||
* [[Typed lambda calculus]] | |||
* [[Rewriting]] | |||
* [[Total functional programming]] | |||
* [[Barendregt–Geuvers–Klop conjecture]] | |||
==References== | |||
*{{cite book|first1=Franz|last1=Baader|authorlink1=Franz Baader|first2=Tobias|last2=Nipkow|authorlink2=Tobias Nipkow|title=Term rewriting and all that|publisher=Cambridge University Press |isbn=0-521-77920-0|year=1999 | |||
|url=http://books.google.com/books?id=N7BvXVUCQk8C&dq}} 316 pages. | |||
{{Reflist}} | |||
{{DEFAULTSORT:Normalization Property (Lambda-Calculus)}} | |||
[[Category:Lambda calculus]] | |||
[[Category:Logic in computer science]] |
Latest revision as of 18:34, 22 December 2013
In mathematical logic and theoretical computer science, a rewrite system has the strong normalization property (in short: the normalization property) if every term is strongly normalizing; that is, if every sequence of rewrites eventually terminates to a term in normal form. A rewrite system may also have the weak normalization property, meaning that for every term, there exists at least one particular sequence of rewrites that eventually yields a normal form.
Lambda calculus
Untyped lambda calculus
The pure untyped lambda calculus does not satisfy the strong normalization property, and not even the weak normalization property. Consider the term . It has the following rewrite rule: For any term ,
But consider what happens when we apply to itself:
Therefore the term is neither strongly nor weakly normalizing.
Typed lambda calculus
Various systems of typed lambda calculus including the simply typed lambda calculus, Jean-Yves Girard's System F, and Thierry Coquand's calculus of constructions are strongly normalizing.
A lambda calculus system with the normalization property can be viewed as a programming language with the property that every program terminates. Although this is a very useful property, it has a drawback: a programming language with the normalization property cannot be Turing complete. That means that there are computable functions that cannot be defined in the simply typed lambda calculus (and similarly there are computable functions that cannot be computed in the calculus of constructions or System F). As an example, it is impossible to define a self-interpreter in any of the calculi cited above.[1]
See also
References
- 20 year-old Real Estate Agent Rusty from Saint-Paul, has hobbies and interests which includes monopoly, property developers in singapore and poker. Will soon undertake a contiki trip that may include going to the Lower Valley of the Omo.
My blog: http://www.primaboinca.com/view_profile.php?userid=5889534 316 pages.
43 year old Petroleum Engineer Harry from Deep River, usually spends time with hobbies and interests like renting movies, property developers in singapore new condominium and vehicle racing. Constantly enjoys going to destinations like Camino Real de Tierra Adentro.
- ↑ Conor McBride (May 2003), "on termination" (posted to the Haskell-Cafe mailing list).