HOME





Church–Rosser Theorem
In lambda calculus, the Church–Rosser theorem states that, when applying reduction rules to terms, the ordering in which the reductions are chosen does not make a difference to the eventual result. More precisely, if there are two distinct reductions or sequences of reductions that can be applied to the same term, then there exists a term that is reachable from both results, by applying (possibly empty) sequences of additional reductions. The theorem was proved in 1936 by Alonzo Church and J. Barkley Rosser, after whom it is named. The theorem is symbolized by the adjacent diagram: If term ''a'' can be reduced to both ''b'' and ''c'', then there must be a further term ''d'' (possibly equal to either ''b'' or ''c'') to which both ''b'' and ''c'' can be reduced. Viewing the lambda calculus as an abstract rewriting system, the Church–Rosser theorem states that the reduction rules of the lambda calculus are confluent. As a consequence of the theorem, a term in the lambda cal ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


picture info

Confluence
In geography, a confluence (also ''conflux'') occurs where two or more watercourses join to form a single channel (geography), channel. A confluence can occur in several configurations: at the point where a tributary joins a larger river (main stem); or where two streams meet to become the river source, source of a river of a new name (such as the confluence of the Monongahela River, Monongahela and Allegheny River, Allegheny rivers, forming the Ohio River); or where two separated channels of a river (forming a river island) rejoin downstream from their point of separation. Scientific study Confluences are studied in a variety of sciences. Hydrology studies the characteristic flow patterns of confluences and how they give rise to patterns of erosion, bars, and scour pools. The water flows and their consequences are often studied with mathematical models. Confluences are relevant to the distribution of living organisms (i.e., ecology) as well; "the general pattern [downstream o ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


Simply Typed Lambda Calculus
The simply typed lambda calculus (), a form of type theory, is a typed interpretation of the lambda calculus with only one type constructor () that builds function types. It is the canonical and simplest example of a typed lambda calculus. The simply typed lambda calculus was originally introduced by Alonzo Church in 1940 as an attempt to avoid paradoxical use of the untyped lambda calculus. The term ''simple type'' is also used to refer to extensions of the simply typed lambda calculus with constructs such as products, coproducts or natural numbers ( System T) or even full recursion (like PCF). In contrast, systems that introduce polymorphic types (like System F) or dependent types (like the Logical Framework) are not considered ''simply typed''. The simple types, except for full recursion, are still considered ''simple'' because the Church encodings of such structures can be done using only \to and suitable type variables, while polymorphism and dependency cannot. ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


Transactions Of The American Mathematical Society
The ''Transactions of the American Mathematical Society'' is a monthly peer-reviewed scientific journal of pure and applied mathematics published by the American Mathematical Society. It was established in 1900. As a requirement, all articles must be more than 15 printed pages. Its ISSN number is 0002-9947. See also * ''Bulletin of the American Mathematical Society'' * ''Journal of the American Mathematical Society'' * '' Memoirs of the American Mathematical Society'' * '' Notices of the American Mathematical Society'' * ''Proceedings of the American Mathematical Society'' References External links * ''Transactions of the American Mathematical Society''on JSTOR JSTOR ( ; short for ''Journal Storage'') is a digital library of academic journals, books, and primary sources founded in 1994. Originally containing digitized back issues of academic journals, it now encompasses books and other primary source ... American Mathematical Society academic journals Mathematics jo ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


picture info

Subset
In mathematics, a Set (mathematics), set ''A'' is a subset of a set ''B'' if all Element (mathematics), elements of ''A'' are also elements of ''B''; ''B'' is then a superset of ''A''. It is possible for ''A'' and ''B'' to be equal; if they are unequal, then ''A'' is a proper subset of ''B''. The relationship of one set being a subset of another is called inclusion (or sometimes containment). ''A'' is a subset of ''B'' may also be expressed as ''B'' includes (or contains) ''A'' or ''A'' is included (or contained) in ''B''. A ''k''-subset is a subset with ''k'' elements. When quantified, A \subseteq B is represented as \forall x \left(x \in A \Rightarrow x \in B\right). One can prove the statement A \subseteq B by applying a proof technique known as the element argument:Let sets ''A'' and ''B'' be given. To prove that A \subseteq B, # suppose that ''a'' is a particular but arbitrarily chosen element of A # show that ''a'' is an element of ''B''. The validity of this technique ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


Eager Evaluation
In a programming language, an evaluation strategy is a set of rules for evaluating expressions. The term is often used to refer to the more specific notion of a ''parameter-passing strategy'' that defines the kind of value that is passed to the function for each parameter (the ''binding strategy'') and whether to evaluate the parameters of a function call, and if so in what order (the ''evaluation order''). The notion of reduction strategy is distinct, although some authors conflate the two terms and the definition of each term is not widely agreed upon. A programming language's evaluation strategy is part of its high-level semantics. Some languages, such as PureScript, have variants with different evaluation strategies. Some declarative languages, such as Datalog, support multiple evaluation strategies. The calling convention consists of the low-level platform-specific details of parameter passing. Example To illustrate, executing a function call f(a,b) may first evaluat ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  




Lazy Evaluation
In programming language theory, lazy evaluation, or call-by-need, is an evaluation strategy which delays the evaluation of an Expression (computer science), expression until its value is needed (non-strict evaluation) and which avoids repeated evaluations (by the use of Sharing (computer science), sharing). The benefits of lazy evaluation include: * The ability to define control flow (structures) as abstractions instead of Language primitive, primitives. * The ability to define actual infinity, potentially infinite data structures. This allows for more straightforward implementation of some algorithms. * The ability to define partly-defined data structures where some elements are errors. This allows for rapid prototyping. Lazy evaluation is often combined with memoization, as described in Jon Bentley (computer scientist), Jon Bentley's ''Writing Efficient Programs''. After a function's value is computed for that Parameter (computer programming), parameter or set of parameters, th ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


Functional Program
In computer science, functional programming is a programming paradigm where programs are constructed by applying and composing functions. It is a declarative programming paradigm in which function definitions are trees of expressions that map values to other values, rather than a sequence of imperative statements which update the running state of the program. In functional programming, functions are treated as first-class citizens, meaning that they can be bound to names (including local identifiers), passed as arguments, and returned from other functions, just as any other data type can. This allows programs to be written in a declarative and composable style, where small functions are combined in a modular manner. Functional programming is sometimes treated as synonymous with purely functional programming, a subset of functional programming that treats all functions as deterministic mathematical functions, or pure functions. When a pure function is called with ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


Gordon Plotkin
Gordon David Plotkin (born 9 September 1946) is a theoretical computer scientist in the School of Informatics at the University of Edinburgh. Plotkin is probably best known for his introduction of structural operational semantics (SOS) and his work on denotational semantics. In particular, his notes on ''A Structural Approach to Operational Semantics'' were very influential. He has contributed to many other areas of computer science. Education Plotkin was educated at the University of Glasgow and the University of Edinburgh, gaining his Bachelor of Science degree in 1967 and PhD in 1972 supervised by Rod Burstall. Career and research Plotkin has remained at Edinburgh, and was, with Burstall and Robin Milner, a co-founder of the Laboratory for Foundations of Computer Science (LFCS). His former doctoral students include Luca Cardelli, Philippa Gardner, Doug Gurr, Eugenio Moggi, and Lǐ Wèi. Awards and honours Plotkin was elected a Fellow of the Royal Society (FRS) in 1 ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


Type System
In computer programming, a type system is a logical system comprising a set of rules that assigns a property called a ''type'' (for example, integer, floating point, string) to every '' term'' (a word, phrase, or other set of symbols). Usually the terms are various language constructs of a computer program, such as variables, expressions, functions, or modules. A type system dictates the operations that can be performed on a term. For variables, the type system determines the allowed values of that term. Type systems formalize and enforce the otherwise implicit categories the programmer uses for algebraic data types, data structures, or other data types, such as "string", "array of float", "function returning boolean". Type systems are often specified as part of programming languages and built into interpreters and compilers, although the type system of a language can be extended by optional tools that perform added checks using the language's original type synta ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


picture info

Per Martin-Löf
Per Erik Rutger Martin-Löf (; ; born 8 May 1942) is a Sweden, Swedish logician, philosopher, and mathematical statistics, mathematical statistician. He is internationally renowned for his work on the foundations of probability, statistics, mathematical logic, and computer science. Since the late 1970s, Martin-Löf's publications have been mainly in logic. In philosophical logic, Martin-Löf has wrestled with the philosophy of logical consequence and Edmund Husserl#Philosophy of logic and mathematics, judgment, partly inspired by the work of Franz Brentano, Brentano, Gottlob Frege, Frege, and Edmund Husserl, Husserl. In mathematical logic, Martin-Löf has been active in developing intuitionistic type theory as a constructive foundation of mathematics; Martin-Löf's work on type theory has influenced computer science. Until his retirement in 2009, Per Martin-Löf held a joint chair for Mathematics and Philosophy at Stockholm University.
[...More Info...]       [...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  




Lambda Calculus
In mathematical logic, the lambda calculus (also written as ''λ''-calculus) is a formal system for expressing computability, computation based on function Abstraction (computer science), abstraction and function application, application using variable Name binding, binding and Substitution (algebra), substitution. Untyped lambda calculus, the topic of this article, is a universal machine, a model of computation that can be used to simulate any Turing machine (and vice versa). It was introduced by the mathematician Alonzo Church in the 1930s as part of his research into the foundations of mathematics. In 1936, Church found a formulation which was #History, logically consistent, and documented it in 1940. Lambda calculus consists of constructing #Lambda terms, lambda terms and performing #Reduction, reduction operations on them. A term is defined as any valid lambda calculus expression. In the simplest form of lambda calculus, terms are built using only the following rules: # x: A ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


William W
William is a masculine given name of Germanic origin. It became popular in England after the Norman conquest in 1066,All Things William"Meaning & Origin of the Name"/ref> and remained so throughout the Middle Ages and into the modern era. It is sometimes abbreviated "Wm." Shortened familiar versions in English include Will or Wil, Wills, Willy, Willie, Bill, Billie, and Billy. A common Irish form is Liam. Scottish diminutives include Wull, Willie or Wullie (as in Oor Wullie). Female forms include Willa, Willemina, Wilma and Wilhelmina. Etymology William is related to the German given name ''Wilhelm''. Both ultimately descend from Proto-Germanic ''*Wiljahelmaz'', with a direct cognate also in the Old Norse name ''Vilhjalmr'' and a West Germanic borrowing into Medieval Latin ''Willelmus''. The Proto-Germanic name is a compound of *''wiljô'' "will, wish, desire" and *''helmaz'' "helm, helmet".Hanks, Hardcastle and Hodges, ''Oxford Dictionary of First Names'', Oxfor ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]