Computable topology is a discipline in mathematics that studies the topological and algebraic structure of computation . Computable topology is computational topology , which studies the application of computation to topology.
Topology of lambda calculus
As shown by Alan Turing and Alonzo Church , the λcalculus is strong enough to describe all mechanically computable functions (see ChurchTuring thesis ). ^{[1] }^{[2] }^{[3]} Lambdacalculus is thus effectively a programming language, from which other languages can be built. For this reason when considering the topology of computation it is common to focus on the topology of λcalculus. Note that this is not necessarily a complete description of the topology of computation, since these functions are equivalent in the ChurchTuring sense may still have different topologies.
The topology of λcalculus is the Scott topology , and when restricted to continuous functions the free type λcalculus amounts to a topological space linking on the tree topology . Both the Scott and Tree topologies and the way in which they are applied to the binary operators of application ( fxed to a = fa) and abstraction ((λx.t (x)) a = t (a)) with a modular equivalence relation based on a congruency . The λalgebra describing the algebraic structure of the lambdacalculus is found to be an extension of the combinatory algebra , with an element introduced to accommodate abstraction.
Type free λcalculus treats functions as rules and does not differentiate functions and the objects they are applied to, meaning λcalculus is type free. A byproduct of type free λcalculus is an effective computability equivalent to general recursion and Turing machines . ^{[4]} The set of λterms can be considered a functional space can be embedded , meaning λ mappings within the space X are such that λ: X → X. ^{[4] }^{[5]} Introduced November 1969, Dana Scott’s untyped set theoretic model constructed a proper topology for any λcalculus model whose function space is limited to continuous functions. ^{[4] }^{[5]} The result of a Scott continuous λcalculus is a combinatorial , and combined data type. ^{[6] }^{[7]} By 1971, λcalculus was able to define any sequential computation and could be adapted to parallel computations. ^{[8]} The reducibility of all computations to λcalculus allows these λtopological properties to be adopted by all programming languages. ^{[4]}
Computational algebra from λcalculus algebra
Based on the operators Within lambda calculus , enforcement and abstraction, it is feasible to Develop year algebra Whose group structure and implementation uses abstraction as binary operators. Application is defined as an operation between lambda terms producing a λterm, eg the application of λ onto the lambda term a produces the lambda term λa . Incorporates Abstraction undefined variables by denoting λx.t (x) as the function Assigning the variable has to the lambda term with value t (a) via the operation ((λ xt (x)) a = t (a)). Lastly, an equivalence relation Emerges qui identified λterms modulo convertible terms, an example being white normal beta form.
Scott topology
The Scott topology is essential in understanding the topological structure of computation as expressed by the λcalculus. Scott found that after constructing a function space using λcalculus one obtains a Kolmogorov space , a{\ displaystyle T_ {o}}topological space which exhibits pointwise convergence , in short the product topology . ^{[9]} It is the ability of selfhomeownership, as it is the ability to selfmeasure, as opposed to Scott’s concept of continuous recourse . Scott approaches his derivation using a complete lattice , resulting in a topology dependent on the lattice structure. It is possible to generalize Scott’s theory with the use of complete partial orders. This is a general understanding of the computational topology is provided through complete partial orders. We will reiterate to familiarize ourselves with the notation to be used during the discussion of Scott topology.
Complete partial orders are defined as follows:
First, Given the Partially ordered set D = (D, ≤) a nonempty subset X ⊆ D is directed if ∀ x, y ∈ X ∃ z ∈ X Where x ≤ z & y ≤ z .
D is a complete partial order (cpo) if:

 · Every directed X ⊆D has a supremum , and:

 ∃ bottom element ⊥ such that ⊥ ∈ D ∀ x ∈ D ⊥ ≤ x .
We are now able to define the Scott topology over a cpo (D, ≤).
O ⊆ D is open if:


 for x ∈ O, and x ≤ y, then y ∈ O, ie O is an upper set .
 for a directed set X ⊆ D, and supremum (X) ∈ O, then X ∩ O ≠ ∅.

Using the Scott’s topological definition of open it is apparent that all topological properties are met.

 · ∅ and D, ie the empty set and the whole space, are open.

 · Arbitrary unions of open sets are open:

 Proof : Assume{\ displaystyle U_ {i}}is open where i ∈ I, I being the index set. We define U = ∪ {{\ displaystyle U_ {i}} ; i ∈ I}. Take b as an element of the upper set of U, therefore a ≤ b for Some had ∈ U It Must Be That has ∈{\ displaystyle U_ {i}}for some i, likewise b ∈ upset ({\ displaystyle U_ {i}}). U must be higher{\ displaystyle U_ {i}} ∈ U.

 · Arbitrary unions of open sets are open:



 Likewise, if D is a directed set with a supremum in U, then by assumption sup (D) ∈ {\ displaystyle U_ {i}}Where {\ displaystyle U_ {i}}is open. Thus there is a b ∈ where b ∈{\ displaystyle U_ {i} \ cap D \ subseteq U \ cap D}. The union of open sets{\ displaystyle U_ {i}}is therefore open.



 · Open sets under the intersection are open:

 Proof : Given two sets open, U and V , we define W = U ∩ V . If W = ∅ then W is open. If notsay say b ∈ upset (W) (the upper set of W), then for some a ∈ W , a ≤ b . Since a ∈ U ∩ V , and b an element of the upper set of Both U and V , Then b ∈ W .

 · Open sets under the intersection are open:



 Finally, if D is a directed set with a supremum in W , then by assumption sup ( D ) ∈{\ displaystyle U \ cap V}. So there is a ∈{\ displaystyle U \ cap D}and b ∈{\ displaystyle V \ cap D}. Since D is directed there is c ∈ D with{\ displaystyle a \ leqc, b \ leqc}; and since U and V are upper sets, c ∈{\ displaystyle U \ cap V} as well.


Though not shown here, it is the case that the map {\ displaystyle f: D \ rightarrow D ^ {‘}}is continuous if f (sup ( X )) = sup ( f ( X )) for all directed X ⊆ D , where f ( X ) = { f ( x )  x ∈ X } and the second supremum in{\ displaystyle D ^ {‘}}. ^{[4]}
Wewe的 beginBeforeBeforeBeforeBeforeBeforeBeforeBeforeBeforeBeforenamelynamelynamelynamelynamelynamelynamelynamelynamelynamelynamely

 with {\displaystyle {f_{i}}_{i}\subseteq [D\rightarrow D^{‘}]} be a directed family of maps, then {\ displaystyle f (x) = \ cup _ {i} f_ {i} (x)} if well defined and continuous.
 If F {\ displaystyle \ subseteq [D \ rightarrow D ^ {‘}]} is directed and cpo and {\ displaystyle [D \ rightarrow D ^ {‘}]}where sup ({ f ( x )  f ∈ F }).
We now show the continuity of application . Using the definition of application as follows:


 Ap: {\ displaystyle [D \ rightarrow D ^ {‘}] \ times D \ rightarrow D ^ {‘}}where Ap ( f , x ) = f ( x ).

Ap is continuous with respect to the Scott topology on the product ({\ displaystyle [D \ rightarrow D ^ {‘}] \ times D \ rightarrow D ^ {‘}}):

 Proof : λx.f (x) = f is continuous. Let h = λ ff (x). For directed F{\ displaystyle \ subseteq [D \ rightarrow D ^ {‘}]}

 h (sup ( F )) = sup ( F ) ( x )



 = sup ({ f ( x )  f ∈ F })





 = sup ({ h ( f )  f ∈ F })





 = sup ( h ( F ))



 By definition of continuity Scott h hasbeen shown continuous. All that is now required To Prove Is That implementation is continuous When It’s separate arguments are continuous, ie{\ displaystyle [D \ rightarrow D ^ {‘}]}and {\ displaystyle D \ rightarrow D ^ {‘}}are continuous, in our case f and h .

 Now abstracting our argument to show {\ displaystyle f: D \ times D ^ {‘} \ rightarrow D ^ {‘ ‘}} with {\ displaystyle g = \ lambda xf (x, x_ {0})} and {\ displaystyle d = \ lambda x ^ {‘}. f (x_ {0}, x ^ {‘}}}as the arguments for D and{\ displaystyle D ^ {‘}} respectively, then for a directed X ⊆ D

 {\ displaystyle g (\ sup (X)) = f (\ sup (X), x_ {0} ^ {‘}))}



 = f (sup ((x,{\ displaystyle x_ {0} ^ {‘}})  x ∈ X}))





 (since f is continuous and {(x,{\ displaystyle x_ {0} ^ {‘}})  x ∈ X}) is directed):





 = sup ({f (x,{\ displaystyle x_ {0} ^ {‘}})  x ∈ X})





 = sup (g (X))



 g is continuous time. The same process can be taken to show d is continuous.
 It has been shown here is continuous under the Scott topology.
In order to Demonstrate the Scott topology is a suitable fit for λcalculus it is Necessary To Prove abstraction remains continuous over the Scott topology. It has been shown that the mathematical foundation of λcalculus is a well defined and suitable candidate for the Scott topology.
with {\ displaystyle f \ in [D \ times D ^ {‘} \ rightarrow D ^ {‘ ‘}]} we define {\ displaystyle {\ check {f}}} (x) = λ y ∈ {\ displaystyle D ^ {‘}}f (x, y) We will show:
 (I) {\ displaystyle {\ check {f}}} is continuous, meaning {\ displaystyle {\ check {f}}} ∈ {\ displaystyle [D \ rightarrow] [D ^ {‘} \ rightarrow D ^ {‘ ‘}]}
 (ii) λ {\ displaystyle f. {\ check {f}}: [D \ times D ^ {‘} \ rightarrow D ^ {‘ ‘}] \ rightarrow [D \ rightarrow [D ^ {‘} \ rightarrow D ^ {” }]} is continuous.

 Proof (i): Let X ⊆ D be directed, then

 {\ displaystyle {\ check {f}}}(sup (X)) = λ yf (sup (X), y)



 = λ y.{\ displaystyle \ sup _ {x \ in X}}(f (x, y))





 = {\ displaystyle \ sup _ {x \ in X}}( λy.f(x,y) )





 = sup ({\ displaystyle {\ check {f}}}(X))



 Proof (ii): Defining L = λ{\ displaystyle f. {\ check {f}}} then for F {\ displaystyle \ subsetq [D \ times D ^ {‘} \ rightarrow D ^ {‘ ‘}]} directed

 L (sup (F)) = λ x λ y. (Sup (F)) (x, y))



 = λ x λ y. {\ displaystyle \ sup _ {y \ in F}}f (x, y)





 = {\ displaystyle \ sup _ {y \ in F}}λx λy.f (x, y)





 = sup (L (F))


It has not been shown how and why the λcalculus defines the Scott topology.
Böhm trees and computational topology
Böhm trees , easily represented graphically, express the computational behavior of a lambda term . It is possible to predict the functionality of a given lambda expression from reference to its correlating Böhm tree. ^{[4]} Böhm trees can be seen somewhat analogous to{\ displaystyle \ mathbb {R}}where the Böhm tree of a given set is similar to the following one of a real number, and what is more, the Böhm tree corresponds to a sequence in normal form is finite, similar to the rational subset of the Reals.
Böhm trees are defined by a mapping of elements within a sequence of numbers with ordering (≤, lh) and a binary operator * to a set of symbols. The Böhm tree is then a relation among a set of symbols through a partial mapping ψ.
Informally Böhm trees can be conceptualized as follows:
 Given: Σ = {\ displaystyle \ perp \ cup} {λ x_ {1} {\ displaystyle \ cdots}x_ {n}. y  n ∈{\ displaystyle \ mathbb {N}, x_ {1} … x_ {n}}There are variables and denoting BT (M) as the Böhm tree for a lambda term M we then have:
 BT (M) = ⊥ if M is unsolvable (hence a single node)
BT (M) = λ{\ displaystyle {\ vec {x}}}.y
/ \
BT ({\ displaystyle M_ {1})} BT ({\ displaystyle M_ {m}}); if M is solvent
More formally:
Defined is defined as a set of symbols. The Böhm tree of a λ term M, denoted BT (M), is the Σ labeled tree defined as follows:

 If M is unsolvable:

 {\ displaystyle BT (M) (\ langle \ \ rangle) = \ perp,}

 BT (M) ({\ displaystyle \ langle k \ rangle * \ alpha}) is unsolvable {\ displaystyle \ forall k, \ alpha}
If M is solvable, where M = λ x_ {1}{\ displaystyle \ cdots x_ {n} .yM_ {0} \ cdots M_ {m1}}:

 BT (M) (<>) = λ x_ {1} {\ displaystyle \ cdots x_ {n} .y}

 BT (M) ({\ displaystyle \ langle k \ rangle * \ alpha}) = BT (M_k) ({\ displaystyle \ alpha}) {\ displaystyle \ forall \ alpha} and k <m




 = undefined {\ displaystyle \ forall \ alpha} and k ≥ m



We can now move on to show that we are doing the right thing. Allowing one to see computational constructs, be it within the Scott or tree topology, as Böhm tree formations.
Böhm tree and tree topology
It is found that Böhm tree ‘s allow for a continuous mapping from the topology tree to the Scott topology. More specifically:
We begin with the cpo B = (B, ⊆) on the Scott topology, with ordering of Böhm tree denoted M⊆ N, meaning M, N are trees and M results from N. The tree topology on the set Γ is the smallest set allowing for a continuous map

 BT:{\ displaystyle \ Gamma \ rightarrow}B .
An equivalent definition would be the open sets of the image of the reverse Böhm tree {\ displaystyle BT ^ { 1}}(O) where O is open in Scott B .
The applicability of the Bömh trees and the topology has many interesting consequences to λterms expressed topologically:
 Normal forms are found to exist as isolated points.
 Unsolvable λterms are compactification points.
 Application and abstraction, similar to the Scott topology, are continuous on the tree topology.
Algebraic structure of computation
New methods of interpretation of the λcalculus are not only interesting in themselves, but they are also relevant to the behavior of computer science. The binary operator within the λalgebra A is application. Application is denoted and is said to give structure{\ displaystyle A = (X, \ cdot)}. A combinatory algebra allows for the application operator and acts as a starting point for the abstraction. The λ algebra becomes a combinatory algebra M combined with a syntactic operator λ * that transforms a term B (x, y) , with constants in M , into C ({\ displaystyle {\ hat {y}}}) ≡ λ * xB (x,{\ displaystyle {\ hat {y}}}). It is also possible to define an expansion model to circumvent the need for the λ * operator by allowing ∀x (fx = gx) ⇒ f = g. The construction of the λalgebra through the introduction of an abstraction operator
We must construct an algebra that allows for solutions to such equations that it is necessary for the combinatory algebra. Relevant attributes of the combinatory algebra are:
Within combinatory algebra there is application structures . An application structure W is a combinatory algebra provided:

 · W is nontrival, meaning W has cardinality > 1
 · W exhibits combinatory completeness (see completeness of the SK basis ). More specifically: for every term{\ displaystyle x_ {1}, …, x_ {n}} with the free variables of A within {\ displaystyle {x_ {1}, …, x_ {n}}} Then:
 {\ displaystyle \ exists f \ forall x_ {1} \ cdot \ cdot \ cdot x_ {n}} Where {\ displaystyle fx_ {1} \ cdot \ cdot \ cdot x_ {n} = A}
The combinatory algebra is:
 Never commutative
 Not associative.
 Never finish.
 Never recursive.
Combinatory algebras will not be able to work with the algebraic structure for λcalculus, the lack of recursion being a major disadvantage. However, the existence of an applicative term{\ displaystyle A (x, {\ vec {y}}}provides a good starting point to build a λcalculus algebra. What is needed is the introduction of a lambda term , ie include λx.A (x,{\ displaystyle {\ vec {y}}}).
We begin by exploiting the fact that within a combinatory algebra M, with A (x, {\ displaystyle {\ vec {y}}}) within the set of terms, then:

 {\ displaystyle \ forall {\ vec {y}}} {\ displaystyle \ exists b} st bx = A (x, {\ displaystyle {\ vec {y}}}).
We then need to have a dependence on {\ displaystyle {\ vec {y}}} resulting in:


 {\ displaystyle \ forall x} B ({\ displaystyle {\ vec {y}}}) x = A (x, {\ displaystyle {\ vec {y}}}).

B ({\ displaystyle {\ vec {y}}}becomes equivalent to a λ term, and is therefore suitably defined as follows: B ({\ displaystyle {\ vec {y}}) \ equiv} λ *.
A preλalgebra (pλA) can now be defined.

 pλA is an applicative structure W = (X, ·) such that for each term A within the set of terms within W and for every x there is a λ * xA ∈ T (W) (T (W) ≡ the terms of Where the set of free variables of λ * xA) = (the set of free variables of A) – {x}. W must also demonstrate:
 {\ displaystyle (\ beta)} (λ * xA) x = A
 {\ displaystyle \ alpha _ {1}}λ * xA≡ λ * xA [x: = y] provided is a free variable of A
 {\ displaystyle \ alpha _ {2}}(λ * xA) [y: = z] ≡λ * xA [x: = y] provided y, z ≠ x and z is not a free variable of A
Before defining the full λalgebra we must introduce the following definition of the set of λterms within W denoted {\ displaystyle \ Gamma (W)} with the following requirements:

 a ∈ W {\ displaystyle \ Rightarrow c_ {a} \ in \ Gamma (W)}
 x ∈ {\ displaystyle \ Gamma (W)} for x ∈ ({\ displaystyle v_ {0}, v_ {1}, …})
 M, N ∈ {\ displaystyle \ Gamma (W) \ Rightarrow} (MN) ∈ {\ displaystyle \ Gamma (W)}
 M ∈ {\ displaystyle \ Gamma (W) \ Rightarrow} (λx.M) ∈ {\ displaystyle \ Gamma (W)}
A mapping from the terms within {\ displaystyle \ Gamma (W)}to all λ terms within W, denoted * :\ \ displaystyle \ Gamma (W) \ rightarrow \ mathrm {T} (W)}, can then be designed as follows:

 {\ displaystyle v_ {i} ^ {*} = w_ {i}, c_ {a} ^ {*} = c_ {a}}
 (MN) * = M * N *
 (λx.M) * = λ * x * .M *
We now define λ (M) to denote the extension after evaluating the terms within{\ displaystyle \ Gamma (W)}.

 λx. (λy.yx){\ displaystyle c_ {a}} = λx.{\ displaystyle c_ {a}}x in λ (W).
Finally we obtain the full λalgebra through the following definition:

 (1) A λalgebra is a pλA W such that for M, N ∈ Γ (W):
 λ (W) ⊢ M = N ⇒ W ⊨ M = N.
 (1) A λalgebra is a pλA W such that for M, N ∈ Γ (W):
Though arduous, the foundation has been set for a proper algebraic framework for which the λcalculus, and therefore computation, can be investigated in a group theoretic manner.
References
 Jump up^ Church 1934: 90 footnote in Davis 1952
 Jump up^ Turing 19367 in Davis 1952: 149
 Jump up^ Barendregt, HP, The Lambda Calculus Syntax and Semantics. NorthHolland Publishing Company. nineteen eighty one
 ^ Jump up to:^{a }^{b }^{c }^{d }^{e }^{f} Barendregt, HP, The Lambda Calculus Syntax and Semantics. NorthHolland Publishing Company. nineteen eighty one.
 ^ Jump up to:^{a }^{b} D. S. Scott. Models for the λcalculus. Informally distributed, 1969. Notes, December 1969, Oxford Univ.
 Jump up^ Gordon, MJC, Denotational Description of Programming Languages. Springer Verlag, Berlin. 1979.
 Jump up^ Scott, DS and Strachey, C. Toward a Mathematical Semantics for Computer Languages, Proc. Symp. on Computers and Automata, Polytechnic Institute of Brooklyn, 21, pp. 19 46. 1971.
 Jump up^ G. Berry, Sequential algorithms on concrete data structures, Theoretical Computer Science 20, 265321 (1982).
 Jump up^ DS Scott. “Continuous Lattices.” Oxford University Computing Laboratory August, 1971.