Computable topology

Last updated

Computable topology is a discipline in mathematics that studies the topological and algebraic structure of computation. Computable topology is not to be confused with algorithmic or computational topology , which studies the application of computation to topology.

Computation is any type of calculation that includes both arithmetical and non-arithmetical steps and follows a well-defined model, for example an algorithm.

Algorithmic topology, or computational topology, is a subfield of topology with an overlap with areas of computer science, in particular, computational geometry and computational complexity theory.

Contents

Topology of lambda calculus

As shown by Alan Turing and Alonzo Church, the λ-calculus is strong enough to describe all mechanically computable functions (see Church–Turing thesis). [1] [2] [3] Lambda-calculus 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 functions which are equivalent in the Church-Turing sense may still have different topologies.

Alan Turing mathematician and computer scientist

Alan Mathison Turing was an English mathematician, computer scientist, logician, cryptanalyst, philosopher and theoretical biologist. Turing was highly influential in the development of theoretical computer science, providing a formalisation of the concepts of algorithm and computation with the Turing machine, which can be considered a model of a general-purpose computer. Turing is widely considered to be the father of theoretical computer science and artificial intelligence. Despite these accomplishments, he was never fully recognised in his home country during his lifetime, due to his homosexuality, which was then a crime in the UK.

Alonzo Church American mathematician

Alonzo Church was an American mathematician and logician who made major contributions to mathematical logic and the foundations of theoretical computer science. He is best known for the lambda calculus, Church–Turing thesis, proving the undecidability of the Entscheidungsproblem, Frege–Church ontology, and the Church–Rosser theorem. He also worked on philosophy of language.

In computability theory, the Church–Turing thesis is a hypothesis about the nature of computable functions. It states that a function on the natural numbers is computable by a human being following an algorithm, ignoring resource limitations, if and only if it is computable by a Turing machine. The thesis is named after American mathematician Alonzo Church and the British mathematician Alan Turing. Before the precise definition of computable function, mathematicians often used the informal term effectively calculable to describe functions that are computable by paper-and-pencil methods. In the 1930s, several independent attempts were made to formalize the notion of computability:

The topology of λ-calculus is the Scott topology, and when restricted to continuous functions the type free λ-calculus amounts to a topological space reliant on the tree topology. Both the Scott and Tree topologies exhibit continuity with respect to the binary operators of application ( f applied 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 lambda-calculus is found to be an extension of the combinatory algebra, with an element introduced to accommodate abstraction.

Topology Branch of mathematics

In mathematics, topology is concerned with the properties of space that are preserved under continuous deformations, such as stretching, twisting, crumpling and bending, but not tearing or gluing.

In mathematics, a continuous function is a function for which sufficiently small changes in the input result in arbitrarily small changes in the output. Otherwise, a function is said to be a discontinuous function. A continuous function with a continuous inverse function is called a homeomorphism.

In topology and related branches of mathematics, a topological space may be defined as a set of points, along with a set of neighbourhoods for each point, satisfying a set of axioms relating points and neighbourhoods. The definition of a topological space relies only upon set theory and is the most general notion of a mathematical space that allows for the definition of concepts such as continuity, connectedness, and convergence. Other spaces, such as manifolds and metric spaces, are specializations of topological spaces with extra structures or constraints. Being so general, topological spaces are a central unifying notion and appear in virtually every branch of modern mathematics. The branch of mathematics that studies topological spaces in their own right is called point-set topology or general topology.

Type free λ-calculus treats functions as rules and does not differentiate functions and the objects which they are applied to, meaning λ-calculus is type free. A by-product 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 topology in which a function 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 topology is a function space built upon a programming semantic allowing fixed point combinatorics, such as the Y combinator, and data types. [6] [7] By 1971, λ-calculus was equipped to define any sequential computation and could be easily adapted to parallel computations. [8] The reducibility of all computations to λ-calculus allows these λ-topological properties to become adopted by all programming languages. [4]

Data type classification of data in computer science

In computer science and computer programming, a data type or simply type is an attribute of data which tells the compiler or interpreter how the programmer intends to use the data. Most programming languages support common data types of real, integer and boolean. A data type constrains the values that an expression, such as a variable or a function, might take. This data type defines the operations that can be done on the data, the meaning of the data, and the way values of that type can be stored. A type of value from which an expression may take its value.

In logic, mathematics and computer science, especially metalogic and computability theory, an effective method or effective procedure is a procedure for solving a problem from a specific class. An effective method is sometimes also called a mechanical method or procedure.

In mathematical logic and computer science, the general recursive functions or μ-recursive functions are a class of partial functions from natural numbers to natural numbers that are "computable" in an intuitive sense. In computability theory, it is shown that the μ-recursive functions are precisely the functions that can be computed by Turing machines. The μ-recursive functions are closely related to primitive recursive functions, and their inductive definition (below) builds upon that of the primitive recursive functions. However, not every μ-recursive function is a primitive recursive function—the most famous example is the Ackermann function.

Computational algebra from λ-calculus algebra

Based on the operators within lambda calculus, application and abstraction, it is possible to develop an algebra whose group structure uses application and abstraction as binary operators. Application is defined as an operation between lambda terms producing a λ-term, e.g. the application of λ onto the lambda term a produces the lambda term λa. Abstraction incorporates undefined variables by denoting λx.t(x) as the function assigning the variable a to the lambda term with value t(a) via the operation ((λ x.t(x))a = t(a)). Lastly, an equivalence relation emerges which identifies λ-terms modulo convertible terms, an example being beta normal form.

Lambda calculus is a formal system in mathematical logic for expressing computation based on function abstraction and application using variable binding and substitution. It is a universal model of computation that can be used to simulate any Turing machine. It was first introduced by mathematician Alonzo Church in the 1930s as part of his research of the foundations of mathematics.

Equivalence relation reflexive, symmetric and transitive relation

In mathematics, an equivalence relation is a binary relation that is reflexive, symmetric and transitive. The relation "is equal to" is the canonical example of an equivalence relation, where for any objects a, b, and c:

In the lambda calculus, a term is in beta normal form if no beta reduction is possible. A term is in beta-eta normal form if neither a beta reduction nor an eta reduction is possible. A term is in head normal form if there is no beta-redex in head position.

Scott topology

The Scott topology is essential in understanding the topological structure of computation as expressed through the λ-calculus. Scott found that after constructing a function space using λ-calculus one obtains a Kolmogorov space, a topological space which exhibits pointwise convergence, in short the product topology. [9] It is the ability of self homeomorphism as well as the ability to embed every space into such a space, denoted Scott continuous, as previously described which allows Scott's topology to be applicable to logic and recursive function theory. Scott approaches his derivation using a complete lattice, resulting in a topology dependent on the lattice structure. It is possible to generalise Scott's theory with the use of complete partial orders. For this reason a more general understanding of the computational topology is provided through complete partial orders. We will re-iterate to familiarize ourselves with the notation to be used during the discussion of Scott topology.

In topology and related branches of mathematics, a topological space X is a T0 space or Kolmogorov space (named after Andrey Kolmogorov) if for every pair of distinct points of X, at least one of them has a neighborhood not containing the other. In a T0 space, all points are topologically distinguishable.

In mathematics, pointwise convergence is one of various senses in which a sequence of functions can converge to a particular function. It is weaker than uniform convergence, to which it is often compared.

In topology and related areas of mathematics, a product space is the Cartesian product of a family of topological spaces equipped with a natural topology called the product topology. This topology differs from another, perhaps more obvious, topology called the box topology, which can also be given to a product space and which agrees with the product topology when the product is over only finitely many spaces. However, the product topology is "correct" in that it makes the product space a categorical product of its factors, whereas the box topology is too fine; this is the sense in which the product topology is "natural".

Complete partial orders are defined as follows:

First, given the partially ordered set D=(D,≤), a nonempty subset XD is directed if ∀ x,yXzX where xz & yz.

D is a complete partial order (cpo) if:

· Every directed X ⊆D has a supremum, and:
bottom element ⊥ ∈ D such that ∀ xD ⊥ ≤ x.

We are now able to define the Scott topology over a cpo (D, ≤ ).

OD is open if:

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

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

·∅ and D, i.e. the empty set and whole space, are open.
·Arbitrary unions of open sets are open:
Proof: Assume is open where i ∈ I, I being the index set. We define U = ∪{ ; i ∈ I}. Take b as an element of the upper set of U, therefore a ≤ b for some a ∈ U It must be that a for some i, likewise b ∈ upset(). U must therefore be upper as well since ∈ U.
Likewise, if D is a directed set with a supremum in U, then by assumption sup(D) ∈ where is open. Thus there is a b ∈ D where b ∈ . The union of open sets is therefore open.
·Open sets under intersection are open:
Proof: Given two open sets, U and V, we define W = UV. If W = ∅ then W is open. If non-empty say b ∈ upset(W) (the upper set of W), then for some aW, ab. Since aUV, and b an element of the upper set of both U and V, then bW.
Finally, if D is a directed set with a supremum in W, then by assumption sup(D) ∈ . So there is a and b. Since D is directed there is cD with ; and since U and V are upper sets, c as well.

Though not shown here, it is the case that the map is continuous if and only if f(sup(X)) = sup(f(X)) for all directed XD, where f(X) = {f(x) | xX} and the second supremum in . [4]

Before we begin explaining that application as common to λ-calculus is continuous within the Scott topology we require a certain understanding of the behavior of supremums over continuous functions as well as the conditions necessary for the product of spaces to be continuous namely

  1. With be a directed family of maps, then if well defined and continuous.
  2. If F is directed and cpo and a cpo where sup({f(x) | fF}).

We now show the continuity of application. Using the definition of application as follows:

Ap: where Ap(f,x) = f(x).

Ap is continuous with respect to the Scott topology on the product () :

Proof: λx.f(x) = f is continuous. Let h = λ f.f(x). For directed F
h(sup(F)) = sup(F)(x)
= sup( {f(x) | fF} )
= sup( {h(f) | fF} )
= sup( h(F) )
By definition of Scott continuity h has been shown continuous. All that is now required to prove is that application is continuous when it's separate arguments are continuous, i.e. and are continuous, in our case f and h.
Now abstracting our argument to show with and as the arguments for D and respectively, then for a directed X ⊆ D
= f( sup( (x,) | x ∈ X} ))
(since f is continuous and {(x,) | x ∈ X}) is directed):
= sup( {f(x,) | x ∈ X} )
= sup(g(X))
g is therefore continuous. The same process can be taken to show d is continuous.
It has now been shown application 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. Once completed it will have been shown that the mathematical foundation of λ-calculus is a well defined and suitable candidate functional paradigm for the Scott topology.

With we define (x) =λ y ∈ f(x,y)We will show:

(i) is continuous, meaning
(ii) λ is continuous.
Proof (i): Let X ⊆ D be directed, then
(sup(X)) = λ y.f( sup(X),y )
= λ y.( f(x,y) )
= ( λy.f(x,y) )
= sup((X))
Proof (ii): Defining L = λ then for F directed
L(sup(F)) = λ x λ y. (sup(F))(x,y))
= λ x λ y. f(x,y)
= λx λy.f(x,y)
= sup(L(F))

It has not been demonstrated 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 where the Böhm tree of a given set is similar to the continued fraction of a real number, and what is more, the Böhm tree corresponding 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 may be conceptualized as follows:

Given: Σ; = { λ x_{1} x_{n} . y | n ∈ y 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 (therefore a single node)


  BT(M) = λ.y
  /    \
  BT(   BT( ) ; if M is solvable

More formally:

Σ; is defined as a set of symbols. The Böhm tree of a λ term M, denoted BT(M), is the Σ; labelled tree defined as follows:

If M is unsolvable:
BT(M)() is unsolvable

If M is solvable, where M = λ x_{1}:

BT(M)(< >) = λ x_{1}
BT(M)() = BT(M_k)() and k < m
= undefined and k ≥ m

We may now move on to show that Böhm trees act as suitable mappings from the tree topology to the scott topology. 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 tree topology to the Scott topology. More specifically:

We begin with the cpo B = (B,⊆) on the Scott topology, with ordering of Böhm tree's 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:B.

An equivalent definition would be to say the open sets of Ɣ are the image of the inverse Böhm tree (O) where O is Scott open in B.

The applicability of the Bömh trees and the tree 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 allow new modes of thought concerning the behaviors of computer science. The binary operator within the λ-algebra A is application. Application is denoted · and is said to give structure . A combinatory algebra allows for the application operator and acts as a useful starting point but remains insufficient for the λ-calculus in being unable to express 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()≡ λ* x.B(x,). It is also possible to define an extension model to circumvent the need of the λ* operator by allowing ∀x (fx =gx) f =g . The construction of the λ-algebra through the introduction of an abstraction operator proceeds as follows:

We must construct an algebra which allows for solutions to equations such as axy = xyy such that a = λ xy.xyy there is need for the combinatory algebra. Relevant attributes of the combinatory algebra are:

Within combinatory algebra there exists applicative structures. An applicative structure W is a combinatory algebra provided:

·W is non-trival, meaning W has cardinality > 1
·W exhibits combinatory completeness (see completeness of the S-K basis). More specifically: for every term A ∈ the set of terms of W, and with the free variables of A within then:
where

The combinatory algebra is:

Combinatory algebras remain unable to act as the algebraic structure for λ-calculus, the lack of recursion being a major disadvantage. However the existence of an applicative term ) provides a good starting point to build a λ-calculus algebra. What is needed is the introduction of a lambda term, i.e. include λx.A(x, ).

We begin by exploiting the fact that within a combinatory algebra M, with A(x, ) within the set of terms, then:

s.t. bx = A(x, ).

We then require b have a dependence on resulting in:

B()x = A(x, ).

B() becomes equivalent to a λ term, and is therefore suitably defined as follows: B( λ*.

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 term λ*x.A ∈ T(W) (T(W) ≡ the terms of W) where (the set of free variables of λ*x.A) = (the set of free variables of A) - {x}. W must also demonstrate:
(λ*x.A)x = A
λ*x.A≡ λ*x.A[x:=y] provided y is not a free variable of A
(λ*x.A)[y:=z]≡λ*x.A[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 for the set of λ-terms within W denoted with the following requirements:

a ∈ W
x ∈ for x ∈ ()
M,N ∈ (MN) ∈
M ∈ (λx.M) ∈

A mapping from the terms within to all λ terms within W, denoted * : , can then be designed as follows:

(MN)* = M* N*
(λx.M)* = λ* x*.M*

We now define λ(M) to denote the extension after evaluating the terms within .

λx.(λy.yx) = λx.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.

Though arduous, the foundation has been set for a proper algebraic framework for which the λ-calculus, and therefore computation, may be investigated in a group theoretic manner.

Related Research Articles

In mathematics, especially functional analysis, a Banach algebra, named after Stefan Banach, is an associative algebra A over the real or complex numbers that at the same time is also a Banach space, i.e. a normed space and complete in the metric induced by the norm. The norm is required to satisfy

In mathematics and computer science, currying is the technique of translating the evaluation of a function that takes multiple arguments into evaluating a sequence of functions, each with a single argument. For example, a function that takes two arguments, one from X and one from Y, and produces outputs in Z, by currying is translated into a function that takes a single argument from X and produces as outputs functions from Y to Z. Currying is related to, but not the same as, partial application.

C-algebras are subjects of research in functional analysis, a branch of mathematics. A C*-algebra is a complex algebra A of continuous linear operators on a complex Hilbert space with two additional properties:

Combinatory logic is a notation to eliminate the need for quantified variables in mathematical logic. It was introduced by Moses Schönfinkel and Haskell Curry, and has more recently been used in computer science as a theoretical model of computation and also as a basis for the design of functional programming languages. It is based on combinators which were introduced by Schönfinkel in 1920 with the idea of providing an analogous way to build up functions - and to remove any mention of variables - particularly in predicate logic. A combinator is a higher-order function that uses only function application and earlier defined combinators to define a result from its arguments.

Exterior algebra algebraic construction used in Euclidean geometry

In mathematics, the exterior product or wedge product of vectors is an algebraic construction used in geometry to study areas, volumes, and their higher-dimensional analogues. The exterior product of two vectors u and v, denoted by uv, is called a bivector and lives in a space called the exterior square, a vector space that is distinct from the original space of vectors. The magnitude of uv can be interpreted as the area of the parallelogram with sides u and v, which in three dimensions can also be computed using the cross product of the two vectors. Like the cross product, the exterior product is anticommutative, meaning that uv = −(vu) for all vectors u and v, but, unlike the cross product, the exterior product is associative. One way to visualize a bivector is as a family of parallelograms all lying in the same plane, having the same area, and with the same orientation—a choice of clockwise or counterclockwise.

In functional analysis, the weak operator topology, often abbreviated WOT, is the weakest topology on the set of bounded operators on a Hilbert space , such that the functional sending an operator to the complex number is continuous for any vectors and in the Hilbert space.

In mathematics, operator theory is the study of linear operators on function spaces, beginning with differential operators and integral operators. The operators may be presented abstractly by their characteristics, such as bounded linear operators or closed operators, and consideration may be given to nonlinear operators. The study, which depends heavily on the topology of function spaces, is a branch of functional analysis.

In functional analysis, a branch of mathematics, the Borel functional calculus is a functional calculus, which has particularly broad scope. Thus for instance if T is an operator, applying the squaring function ss2 to T yields the operator T2. Using the functional calculus for larger classes of functions, we can for example define rigorously the "square root" of the (negative) Laplacian operator −Δ or the exponential

The spectrum of a linear operator that operates on a Banach space consists of all scalars such that the operator does not have a bounded inverse on . The spectrum has a standard decomposition into three parts:

In functional analysis and related areas of mathematics a polar topology, topology of -convergence or topology of uniform convergence on the sets of is a method to define locally convex topologies on the vector spaces of a dual pair.

In mathematics, specifically in category theory, an exponential object or map object is the categorical generalization of a function space in set theory. Categories with all finite products and exponential objects are called cartesian closed categories. Categories without adjoined products may still have an exponential law.

In mathematics, there are usually many different ways to construct a topological tensor product of two topological vector spaces. For Hilbert spaces or nuclear spaces there is a simple well-behaved theory of tensor products, but for general Banach spaces or locally convex topological vector spaces the theory is notoriously subtle.

In mathematics, Church encoding is a means of representing data and operators in the lambda calculus. The Church numerals are a representation of the natural numbers using lambda notation. The method is named for Alonzo Church, who first encoded data in the lambda calculus this way.

The notion of cylindric algebra, invented by Alfred Tarski, arises naturally in the algebraization of equational first-order logic. This is comparable to the role Boolean algebras play for propositional logic. Indeed, cylindric algebras are Boolean algebras equipped with additional cylindrification operations that model quantification and equality. They differ from polyadic algebras in that the latter do not model equality.

A Böhm tree is a tree-like mathematical object that can be used to provide denotational semantics for terms of the lambda calculus. It is named after Corrado Böhm.

In mathematics, a càdlàg, RCLL, or corlol function is a function defined on the real numbers that is everywhere right-continuous and has left limits everywhere. Càdlàg functions are important in the study of stochastic processes that admit jumps, unlike Brownian motion, which has continuous sample paths. The collection of càdlàg functions on a given domain is known as Skorokhod space.

Deductive lambda calculus considers what happens when lambda terms are regarded as mathematical expressions. One interpretation of the untyped lambda calculus is as a programming language where evaluation proceeds by performing reductions on an expression until it is in normal form. In this interpretation, if the expression never reduces to normal form then the program never terminates, and the value is undefined. Considered as a mathematical deductive system, each reduction would not alter the value of the expression. The expression would equal the reduction of the expression.

Formal definitions of the Lambda calculus. Lambda calculus is a programming language based on lambda abstraction and function application. Two definitions of the language are given here.

In mathematics, the Fuglede−Kadison determinant of an invertible operator in a finite factor is a positive real number associated with it. It defines a multiplicative homomorphism from the set of invertible operators to the set of positive real numbers. The Fuglede−Kadison determinant of an operator is often denoted by .

References

  1. Church 1934:90 footnote in Davis 1952
  2. Turing 1936–7 in Davis 1952:149
  3. Barendregt, H.P., The Lambda Calculus Syntax and Semantics. North-Holland Publishing Company. 1981
  4. 1 2 3 4 5 6 Barendregt, H.P., The Lambda Calculus Syntax and Semantics. North-Holland Publishing Company. 1981.
  5. 1 2 D. S. Scott. Models for the λ-calculus. Informally distributed, 1969. Notes, December 1969, Oxford Univ.
  6. Gordon, M.J.C., The Denotational Description of Programming Languages. Springer Verlag, Berlin. 1979.
  7. Scott, D. S. 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.
  8. G. Berry, Sequential algorithms on concrete data structures, Theoretical Computer Science 20, 265 321 (1982).
  9. D. S. Scott. “Continuous Lattices.” Oxford University Computing Laboratory August, 1971.