computable function

+-- {: .rightHandSide}
+-- {: .toc .clickDown tabindex="0"}
### Context
#### Constructivism, Realizability, Computability
+-- {: .hide}
[[!include constructivism - contents]]
=--
=--
=--

#Contents#
* table of contents
{:toc}

## Idea

A [[function]] is meant to be called _computable_ if its values on given input may be obtained by an actual [[computation]] (an [[algorithm]]). Making this precise and studying properties of computable functions is the topic of _[[computability theory]]_.

There are two main concepts of computable functions, called "type I" and "type II":

* In the type I case one considers functions operating on "finite strings of a finite alphabet" hence equivalently on the set of [[natural numbers]]. The computable functions in this case are _[[partial recursive functions]]_.

* In the type II case one considers functions operating on "infinite strings of a finite alphabet" hence equivalently on the set of infinite sequences of [[natural numbers]] ("[[Baire space (computability)|Baire space]]"). The idea here is that the computation may be continued indefinitely to produce results always of finite but of ever increasing precision. Therefore this type II-concept is of relevance for computability in [[analysis]], hence in _[[computable analysis]]/[[constructive analysis]]_.  See at _[[computable function (analysis)]]_.

The following table summarizes this and related concepts:

[[!include computable mathematics -- table]]

## References

Lecture notes include

* {#Bauer05} [[Andrej Bauer]], section 2 of _Realizability as connection between constructive and computable mathematics_, in T. Grubba, P. Hertling, H. Tsuiki, and [[Klaus Weihrauch]], (eds.) _CCA 2005 - Second International Conference on Computability and Complexity in Analysis_, August 25-29,2005, Kyoto, Japan, ser. Informatik Berichte, , vol. 326-7/2005. FernUniversität Hagen, Germany, 2005, pp. 378–379. ([pdf](http://math.andrej.com/data/c2c.pdf))

[[!redirects computable functions]]


computable function (analysis)

+-- {: .rightHandSide}
+-- {: .toc .clickDown tabindex="0"}
### Context
#### Analysis
+-- {: .hide}
[[!include analysis - contents]]
=--
#### Constructivism, Realizability, Computability
+-- {: .hide}
[[!include constructivism - contents]]
=--
=--
=--

#Contents#
* table of contents
{:toc}

## Idea

A [[computability|computable function]] is often taken to be one that acts on the [[natural numbers]] (a [[partial  recursive function]]) but for purposes of [[analysis]] ([[computable analysis]], [[exact analysis]]) and related fields (notably [[physics]], see at _[[computable physics]]_) one considers [[computation]] on [[real numbers]] to finite but arbitrary precision. This means that in this context of analysis a computable function should be an [[algorithm]] that successively reads in [[natural numbers]] from a possibly infinite list (specifying an input to ever higher accuracy) and accordingly outputs a result as incrementally as an infinite list.

Mathematically this is captured by [[continuous functions]] on [[quotient spaces]] of [[Baire space (computability)]] and goes by the name _[[Type Two Theory of Effectivity]]_ or similar. In implementations this is essentially what is known as _[[exact real computer arithmetic]]_.

## Definition

In [[Type Two Theory of Effectivity]] for [[computable analysis]] (see [Weihrauch 00](#Weihrauch00)) one considers the following definition:

A _representation_ of a $T_0$-[[topological space]] $X$ is a presentation of it as a [[quotient space]] of a [[subspace]] $B$ of [[irrational number|Baire space]] (the underlying space of [[Kleene's second algebra]]). See also at _[[effective topological space]]_.

Such a representation is called _admissible_ if the quotient map $B \to X$ has the [[right lifting property]] against [[continuous functions]] out of other subspaces $B'$ of Baire space.

Given representations of $X$ and $X'$ in this way, then a [[function]] $f \colon X \to X'$ is called _continuously realizable_ if there exists a [[continuous function]] $\phi \colon B \to B'$ between the corresponding subspaces of Baire space such that the evident [[commuting diagram|diagram commutes]].

For admissible representations a function $X\to X'$ is continuously realizable precisely if it is already continuous.

Write $AdmRep$ for the [[category]] of admissible representations in this sense, and continuously realizable (and hence continuous) functions between these.

## Properties

### General
 {#GeneralProperties

The category $AmdRep$ is [[cartesian closed category|cartesian closed]] and has all countable [[limits]] and [[colimits]] ([BSS 07 (4.10)](#BSS07))

### Relation to function realizability

The category $AdmRep$ above is a [[reflective subcategory]] of the [[function realizability topos]] $RT(\mathcal{K}_2)$ (see [vanOosten 08](#vanOosten08)).

### Relation to topology
 {#RelationToTopology}

$AdmRep$ is [[equivalence of categories|equivalent]] to the [[full subcategory]] of that of [[topological spaces]] on the $T_0$-[[quotient spaces]] of countably based $T_0$ spaces ([BSS 07](#BSS07)).

## Examples

Under the [above](#RelationToTopology) inclusion, all complete separable [[metric spaces]] are in $AdmRep$.

Some standard classes of examples (with an eye towards applications in [[computable physics]]) are discussed in [Weihrauch-Zhong 02, def. 2.6](#WeihrauchZhong02)

Since the [[Sierpinski space]] is in $AdmRep$, and due to cartesian clossure [above](GeneralProperties), for any $X \in AdmRep$ also its lattice of [[closed subspaces]] is in $AdmRep$.

## Related concepts

[[!include computable mathematics -- table]]

The subcategory on the effectively computable morphisms of the [[function realizability topos]] $RT(\mathcal{K}_2)$ is the [[Kleene-Vesley topos]]. The category of "admissible representations" $AdmRep$ above is a a [[reflective subcategory]] of $RT(\mathcal{K}_2)$ and the restriction of that to $KV$ is $AdmRep_{eff}$

$$
  \array{
     AdmRep_{eff} &\hookrightarrow& KV
     \\
     \downarrow && \downarrow
     \\
     AdmRep &\hookrightarrow& RT(\mathcal{K}_2)
  }
$$

See also

* [[topological domain theory]]

## References

Lecture notes include

* {#Bauer05} [[Andrej Bauer]], section 2 of _Realizability as connection between constructive and computable mathematics_, in T. Grubba, P. Hertling, H. Tsuiki, and [[Klaus Weihrauch]], (eds.) _CCA 2005 - Second International Conference on Computability and Complexity in Analysis_, August 25-29,2005, Kyoto, Japan, ser. Informatik Berichte, , vol. 326-7/2005. FernUniversität Hagen, Germany, 2005, pp. 378–379. ([pdf](http://math.andrej.com/data/c2c.pdf))

A useful review is in section 4 of

* {#BSS07} [[Ingo Battenfeld]], Matthias Schröder, [[Alex Simpson]], _A convenient category of domains_, in L. Cardelli, M. Fiore and G. Winskel (eds.), _Computation, Meaning and Logic_, Articles dedicated to Gordon Plotkin  Electronic Notes in Computer Science, 34 pp., to appear, 2007  [[BattenfeldDomains.pdf:file]]

Textbooks include

* {#Weihrauch00} [[Klaus Weihrauch]], _Computable Analysis_. Berlin, Springer, 2000

* {#vanOosten08} [[Jaap van Oosten]], _Realizability: an introduction to its categorical side_, Studies in Logic and the Foundations of Mathematics, vol. 152, Elsevier, 2008 ([preface pdf](http://www.staff.science.uu.nl/~ooste110/boekbegin.pdf))

Concrete examples with an eye towards applications in [[computable physics]] are discussed in section 2 of

* {#WeihrauchZhong02} [[Klaus Weihrauch]],  Ning Zhong, _Is wave propagation computable or can wave computers beat the Turing machine?_, Proc. of the London Math. Soc. (3) 85 (2002) ([web](http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.95.5994))

$\,$

$\,$

$\,$

$\,$

$\,$

$\,$

$\,$

$\,$

[[!redirects computable functions (analysis)]]


computable function > history

< [[computable function]]


computable mathematics -- table

**[[computability]]**

| | type I computability | type II computability |
|--|---|---|
| typical domain | [[natural numbers]] $\mathbb{N}$ | [[Baire space (computability)|Baire space]] of infinite sequences $\mathbb{B} = \mathbb{N}^{\mathbb{N}}$ |
| [[computable functions]] | [[partial recursive function]] | [[computable function (analysis)]] |
| type of [[computable mathematics]] |  [[recursive mathematics]] | [[computable analysis]], [[Type Two Theory of Effectivity]]  |
| type of [[realizability]] | [[number realizability]] | [[function realizability]] |
| [[partial combinatory algebra]] | [[Kleene's first partial combinatory algebra]] | [[Kleene's second partial combinatory algebra]] |


computable physics

> This page is about [[computability]] of fundamental [[physics]] in the sense of [[computable mathematics]] and [[constructive analysis]]. It is not about _[[computational physics]]_, though of course there is a relation. For computational [[complexity theory]] in physics see at [[computational complexity and physics]].

+-- {: .rightHandSide}
+-- {: .toc .clickDown tabindex="0"}
### Context
#### Physics
+-- {: .hide}
[[!include physicscontents]]
=--
#### Constructivism, Realizability, Computability
+-- {: .hide}
[[!include constructivism - contents]]
=--
=--
=--

#Contents#
* table of contents
{:toc}

## Idea

The following idea or observation or sentiment has been expressed independently by many authors. We quote from [Szudzik 10, section 2](#Szudzik10):

> The central problem is that [[model (physics)|physical models]] use [[real numbers]] to represent the values of [[observable|observable quantities]], $[...]$ Careful consideration of this problem, however, reveals that the real numbers are not actually necessary in physical models. [[natural number|Non-negative integers]] suffice for the representation of observable quantities because numbers [[measurement|measured]] in laboratory [[experiments]] necessarily have only finitely many digits of precision.

Diverse conclusions have been drawn from this. One which seems useful and well-informed by the theory of [[computability]] in [[mathematics]] is the following (further quoting from [Szudzik 10, section 2](#Szudzik10))

> So, we suffer no loss of generality by restricting the values of all observable quantities to be expressed as [[natural numbers|non-negative integers]] — the restriction only forces us to make the methods of error analysis, which were tacitly assumed when dealing with real numbers, an explicit part of each model.

In type-I [[computability]] the [[computable functions]] are [[partial recursive functions]] and in view of this some authors concluded (e.g. [Kreisel 74](#Kreisel74)) (and we still quote [Szudzik 10, section 2](#Szudzik10) for this):

> To show that a [[model (physics)|model]] $[$ of physics $]$ is [[computable function|computable]], the model must somehow be expressed using [[partial recursive function|recursive functions]].

A similar sentiment is voiced by [Geroch and Hartle](#GerochHartle):
> We propose, in parallel with the notion of a computable number in mathematics, that of a measurable number in a physical theory. The question of whether there exists an algorithm for implementing a theory may then be formulated more precisely as the question of whether the measurable numbers of the theory are computable. We argue that the measurable numbers are in fact computable in the familiar theories of physics, but there is no reason why this need be the case in order that a theory have predictive power. Indeed, in some recent formulations of quantum gravity as a sum ver histories, there are candidates for numbers that are measurable but not computable.

However, in [[computability theory]] there is also the concept of _[[computable function (analysis)|type-II computable functions]]_ used in the field of "[[constructive analysis]]", "[[computable analysis]]". This is based on the idea that for instance for specifying [[computable real numbers]] as used in [[physics]], an [[algorithm]] may work not just on single [[natural numbers]], but indefinitely on sequences of them, producing output that is in each step a finite, but in each next step a more accurate approximation.

[[!include computable mathematics -- table]]

This concept of [[computable analysis|type-II computability]] is arguably closer to actual practice in [[physics]].

Of course there is a wide-spread (but of course controversial) vague speculation (often justified by alluding to expected implications of [[quantum gravity]] on the true microscopic nature of [[spacetime]] and sometimes formalized in terms of cellular automata, e.g. [Zuse 67](#Zuse67)) that in some sense the [[observable universe]] is fundamentally "[[finite object|finite]]", so that in the end [[computability]] is a non-issue in [[physics]] as one is really operating on a large but [[finite set]] of states.

However, since fundamental physics is [[quantum physics]] and since [[quantum mechanics]] with its [[wave functions]], [[Hilbert spaces]] and [[probability amplitudes]] invokes ([[functional analysis|functional]]) [[analysis]] and hence "non-finite mathematics" even when describing the minimum of a [[physical system]] with only two possible configurations (a "[[qbit]]") a strict [[finitism]] perspective on fundamental [[physics]] runs into problems (highlighted for instance in ([Feynman 81, slide 15](#Feynman81))). Precisely this kind of issue is the topic of _[[computable analysis]]_ ("[[constructive analysis]]", "[[exact analysis]]") with its type-II notion of [[computable functions]], which would therefore seem to be the right mathematical context discussing [[computability]] in fundamental (namely quantum) [[physics]]. This point is made in ([Weihrauch-Zhong 02](#WeihrauchZhong02)) for the [[wave equation]].

This matters: there are solutions to the [[wave equation]] with type-I computable initial values which are not themselves type-I computable ([Pour-El et al. 83](#PourEl83)). If type-I computability were the right concept of computabuility in physics, this result would show a violation of the [[Church-Turing thesis]]. But in ([Weihrauch-Zhong 02](#WeihrauchZhong02)) it is argued that the correct concept to use is indeed type-II computability and it is shown ([Weihrauch-Zhong 02, theorem 3.2](#WeihrauchZhong02)) that the solution operator to the wave equation is indeed type-II computable. The same is shown for the [[Schrödinger equation]] of [[quantum mechanics]] in ([Weihrauch-Zhong 01](#WeihrauchZhong01), [Weihrauch-Zhong 06](#WeihrauchZhong06)) where it is found that the Schrödinger operator is computable on the [[Lebesgue space]] $L^p$ precisely for the physically relevant value $p = 2$. A similar conclusion is reached by [Baez](#Baez).

In the vein of type-II computability the issue specifically of computable [[quantum physics]]/[[quantum logic]] has only been further considered in ([Streicher 12](#Streicher12)), where it is shown that at least a fair bit of the [[Hilbert space]] technology of [[quantum mechanics]]/[[quantum logic]] sits inside the [[function realizability topos]] $RT(\mathcal{K}_2)$.

The question whether the [[observable universe]] or at least all [[experiments]] done within are computable is part of the (strong) [[physical Church-Turing thesis]]. See there for more, and see ([Waaldijk 03](#Waaldijk03)). Experiments showing non-computability in quantum processes have been claimed in ([CDDS 10](#CDDS10)).

## Related concepts

* [[interpretation of quantum mechanics]]

* [[measurement problem]]

* [[quantum logic]], [[quantum computation]]

* [[coordination]]

* [[p-adic physics]]

* [[hypercomputation]]

* [[constructive mathematics]], [[geometry of physics]]

## References

Decent discussion of computability in physics includes the following

* Robert Rosen, _Church's thesis and its relation to the concept of realizability in biology and physics_, Bulletin of Mathematical Biophysics 24 (1962), 375–393.

* {#Zuse67} [[Konrad Zuse]], _Rechnender Raum_, Elektronische Datenverarbeitung 8 (1967), 336–344.

* {#Kreisel74} [[Georg Kreisel]], _A notion of mechanistic theory_, Synthese 29 (1974), 11–26.

* {#Feynman81} [[Richard Feynman]], _Simulating physics with computers_, talk at _1st conference on Physics and Computation_ MIT (1981),  (talk notes by P. Birnbaum, E. Tromer: [pdf](http://www.wisdom.weizmann.ac.il/~naor/COURSE/feynman-simulating.pdf))

* {#PourEl83} Marian Boykan Pour-El, J. Ian Richards, _Computability and noncomputability in classical analysis', Trans. Amer. Math. Soc. 275 (1983) 539-560.

  Marian Pour-El, Ning Zhong, _The wave equation with computable initial data whose unique solution is nowhere computable_, Math. Logic Quart. 43 (1997) no. 4, 499-509.

* {#Bridges95} [[Douglas Bridges]], _Constructive mathematics and unbounded operators -- a reply to Hellman_, J. Philosophical Logic 24, 549–561 (1995)

* {#WeihrauchZhong01} [[Klaus Weihrauch]],  Ning Zhong, _Is the linear Schrödinger Propagator Turing Computable?_ , in Jens Blanck et al (eds.) _Computability and Complexity in Analysis: 4th International Workshop_ , CCA, Springer 2001

* {#WeihrauchZhong02} [[Klaus Weihrauch]],  Ning Zhong, _Is wave propagation computable or can wave computers beat the Turing machine?_, Proc. of the London Math. Soc. (3) 85 (2002) ([web](http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.95.5994))

* {#Waaldijk03} [[Frank Waaldijk]], section 7 of _On the foundations of constructive mathematics -- especially in relation to the theory of continuous functions_, 2003  ([pdf](http://www.fwaaldijk.nl/foundations%20of%20constructive%20mathematics.pdf), [web discussion](http://fwaaldijk.wordpress.com/2014/01/14/experiment-to-disprove-strong-physical-church-turing-thesis/)).

* {#WeihrauchZhong06} [[Klaus Weihrauch]], _Computing Schrödinger propagators on Type-2 Turing machines_, Journal of Complexity
Volume 22, Issue 6, December 2006, Pages 918–935

* {#Szudzik10} [[Matthew Szudzik]], _The Computable Universe Hypothesis_, in  [[Hector Zenil]] (ed.) _[A Computable Universe: Understanding and Exploring Nature as Computation](http://www.worldscientific.com/worldscibooks/10.1142/8306)_ , World Scientific, 2012, pp. 479-523 ([arXiv:1003.5831](http://arxiv.org/abs/1003.5831))

* {#CDDS10} Cristian Calude, Michael Dinneen, Monica Dumitrescu, Karl Svozil, _Experimental Evidence of Quantum Randomness Incomputability_, Phys. Rev. A 82, 022102 (2010) ([arxiv:1004.1521](http://arxiv.org/abs/1004.1521), [web announcement](http://www.technologyreview.com/view/418445/first-evidence-that-quantum-processes-generate-truly-random-numbers/))

* {#Streicher12} [[Thomas Streicher]], _Computability Theory for Quantum Theory_, talk at Logic Seminar Univ. Utrecht in July 2012 ([pdf](http://www.mathematik.tu-darmstadt.de/~streicher/TALKS/qtdm.pdf))

* Stanford Encyclopedia of Philosophy, _[Computation in physics](http://plato.stanford.edu/entries/computation-physicalsystems/)_

Some general remarks on the impact of [[realizability]] ([[intuitionistic mathematics|intuitionistic]]/[[constructive mathematics]]) on computability in physics and the [[Church-Turing thesis]] are in

* [[Andrej Bauer]],  section 4 of _Intuitionistic Mathematics and Realizability in the Physical World_, in  [[Hector Zenil]] (ed.) _[A Computable Universe: Understanding and Exploring Nature as Computation](http://www.worldscientific.com/worldscibooks/10.1142/8306)_, World Scientific 2012 ([web](http://math.andrej.com/2014/03/04/intuitionistic-mathematics-and-realizability-in-the-physical-world/), [pdf](http://math.andrej.com/wp-content/uploads/2014/03/real-world-realizability.pdf))

A useful set of lecture notes on the mathematical background of [[computability]] and [[realizability]] is in

* {#Bauer05} [[Andrej Bauer]], _Realizability as connection between constructive and computable mathematics_, in T. Grubba, P. Hertling, H. Tsuiki, and [[Klaus Weihrauch]], (eds.) _CCA 2005 - Second International Conference on Computability and Complexity in Analysis_, August 25-29,2005, Kyoto, Japan, ser. Informatik Berichte, , vol. 326-7/2005. FernUniversität Hagen, Germany, 2005, pp. 378–379. ([pdf](http://math.andrej.com/data/c2c.pdf))

* {#GerochHartle} Robert Geroch, [[James Hartle]], _Computability and physical theories_, Foundations of Physics June 1986, Volume 16, Issue 6, pp 533-550 ([doi](http://dx.doi.org/10.1007/BF01886519), [PDF](http://link.springer.com/content/pdf/10.1007/BF01886519.pdf))

* {#Baez} John Baez, _Recursivity in Quantum Mechanics_, [PDF](http://math.ucr.edu/home/baez/recursivity.pdf)
[[!redirects computable quantum physics]]

Ye presents a constructive development of part of quantum theory and relativity theory.

* Feng Ye, _Strict Finitism and the Logic of Mathematical Applications_ [PDF preprint](http://www.phil.pku.edu.cn/cllc/people/fengye/finitismAndTheLogicOfMathematicalApplications.pdf)
[[!redirects computability in physics]]


computable real number

+-- {: .rightHandSide}
+-- {: .toc .clickDown tabindex="0"}
### Context
#### Analysis
+-- {: .hide}
[[!include analysis - contents]]
=--
#### Constructivism, Realizability, Computability
+-- {: .hide}
[[!include constructivism - contents]]
=--
=--
=--

#Contents#
* table of contents
{:toc}

## Idea

A [[real number object]] [[interpretation|interpreted]] in [[computable mathematics]] (in [[realizability]]) yields the _computable real numbers_ (often just called _computable numbers_). This is a core object in [[computable analysis]]/[[exact analysis]].

Typically a computable real number is an [[algorithm]] that successively produces a sequence of [[rational numbers]] that approximate a given [[real number]] ever more closely.

## Related concepts

* [[exact real computer arithmetic]]

* [[completion monad]]

## References

* {#Weihrauch00} [[Klaus Weihrauch]], section 4.1 of _Computable Analysis_ Berlin: Springer, 2000

* {#Bauer05} [[Andrej Bauer]], section 5.2 of _Realizability as connection between constructive and computable mathematics_, in T. Grubba, P. Hertling, H. Tsuiki, and [[Klaus Weihrauch]], (eds.) _CCA 2005 - Second International Conference on Computability and Complexity in Analysis_, August 25-29,2005, Kyoto, Japan, ser. Informatik Berichte, , vol. 326-7/2005. FernUniversität Hagen, Germany, 2005, pp. 378–379. ([pdf](http://math.andrej.com/data/c2c.pdf))

* Wikipedia, _[Computable number](http://en.wikipedia.org/wiki/Computable_number)_

[[!redirects computable real numbers]]

[[!redirects computable number]]
[[!redirects computable numbers]]


computable set

+-- {: .rightHandSide}
+-- {: .toc .clickDown tabindex="0"}
### Context
#### Constructivism, Realizability, Computability
+-- {: .hide}
[[!include constructivism - contents]]
=--
=--
=--

#Contents#
* table of contents
{:toc}

## Idea

A [[subset]] that is [[computability|computably]] defined.

## Related concepts

* [[definable set]]

* [[computable real number]]

* [[persistent homology]]

* [[computable physics]]

## References

* [[Zvonko Iljazovic]], _Compact manifolds with computable boundaries_, LMCS 9 (4:19) 2013 ([arXiv:1310.7911](http://arxiv.org/abs/1310.7911))


computad

+-- {: .rightHandSide}
+-- {: .toc .clickDown tabindex="0"}
### Context
#### Higher category theory
+-- {: .hide}
[[!include higher category theory - contents]]
=--
#### Higher algebra
+--{: .hide}
[[!include higher algebra - contents]]
=--
=--
=--

# Contents
* table of contents
{: toc}

## Idea

A *computad* is a formal device (due to [[Ross Street]], 1976) for describing "generators" of [[higher category theory|higher categories]], and in particular for $n$-[[n-category|categories]].  They generalize [[quivers]] ([[directed graphs]]), which describe generators of ordinary (1-)[[categories]].  In a sense, $n$-computads are the "most general" structure from which one can generate a free $n$-category; they allow the free adjoining of $k$-cells whose [[source]] and [[target]] are arbitrary [[composites]] of previously adjoined $(k-1)$-cells.

Originally the $n$-categories under consideration were [[strict n-category|strict]], but more recently the concept of $n$-computad has been expanded to take into account weak $n$-categories and other higher-categorical structures.  The notion is tied to [[algebraic definition of higher category|algebraic]] senses of higher categories, but computads can also be used as the input for [[geometric definition of higher category|geometric]] senses as well, and may aid in a comparison between the two approaches.

Computads are also called *polygraphs*, following [[Burroni]]; this term is especially used in parts of the literature related to [[rewriting]] theory.

## Definition ##

Each type of higher-categorical structure comes with its own notion of computad.  Thus there are computads for strict $n$-categories, computads for weak $n$-categories, computads for [[double categories]], and so on.

### Globular computads

First we will define computads relative to an arbitrary [[globular operad]] $P$.  This reproduces the original strict situation when $P$ is the terminal globular operad, whose algebras are [[strict ∞-categories]], but it also applies to operads $P$ whose algebras are [[Batanin weak ∞-categories]].  The generalization to the weak case is originally due to Batanin; the following simpler reformulation of it is due to Richard Garner.

Let $P$ be a [[globular operad]] and let $P Alg$ denote the category of $P$-algebras and strict morphisms.  Thus if $P$ is terminal, then $P Alg = Str \omega Cat$.  We denote by $U_P$ the forgetful functor $P Alg \to GSet$ and by $F_P$ its left adjoint, where $GSet$ denotes the category of [[globular sets]].  Let $2_n$ denote the $n$-[[globe]] and $\partial_n$ its boundary (which is the pushout of two $(n-1)$-globes along their boundaries).  These are globular sets and thus they generate free $P$-algebras $F_P 2_n$ and $F_P \partial_n$.

We now define, recursively in $n$, the category $n Cptd_P$ of **$n$-computads** relative to $P$, together with an adjunction
$$ n Cptd_P \underoverset{U_n}{F_n}{\rightleftarrows} P Alg .$$

* When $n=0$, the category $(-1) Cptd_P$ is [[Set]], $U_0\colon P Alg \to Set$ picks out the set of objects, and $F_0$ is its left adjoint, which constructs the free $P$-algebra on a set (considered as a globular set concentrated in degree 0).

* If $n\gt 0$, an **n-computad** consists of an $(n-1)$-computad $C$, a set $X$, and a function
  $$x\colon X\to P Alg(F_P \partial_n, F_{n-1} C) = GSet(\partial_n, U_P F_{n-1} C).$$
  We call $X$ the set of **n-cells**.  Note that $x$ simply equips each $n$-cell with a pair of parallel $(n-1)$-cells in $F_{n-1} C$.  In fancy language, the category $n Cptd_P$ is the [[comma category]] $Set / B_n$, where $B_n = P Alg(F_P \partial_n, F_{n-1} -)$.

* The functor $U_n\colon P Alg \to n Cptd_P$ sends a $P$-algebra $A$ to the $n$-computad defined by the $(n-1)$-computad $U_{n-1} A$ together with $X$ and $x$ defined by the following pullback square in [[Set]]:
  $$\array{X & \overset{}{\to} & P Alg(F_P 2_n, A)\\
  ^x \downarrow && \downarrow\\
  P Alg(F_P \partial_n, F_{n-1} U_{n-1} A) & \underset{}{\to} & P Alg(F_P \partial_n, A)}$$
  Here the bottom map is induced by the counit of the adjunction $F_{n-1}\dashv U_{n-1}$, while the right-hand map is induced by the inclusion $\partial_n \hookrightarrow 2_n$.

* The left adjoint $F_n$ of $U_n$ is defined by taking an $n$-computad $D = (C,X,x)$ to the following pushout in $P Alg$:
  $$\array{X\cdot F_P \partial_n & \overset{\overline{x}}{\to} & F_{n-1} C\\
  \downarrow && \downarrow\\
  X \cdot F_P 2_n & \underset{}{\to} & F_n D}$$
  Here $\cdot$ denotes a [[copower]] by a set, the top map $\overline{x}$ is the [[adjunct]] of $x$, and the left-hand map is again induced by the inclusion $\partial_n \hookrightarrow 2_n$.  Adjointness is easy to verify using the universal properties of pullbacks and pushouts.

Finally, the category $\omega Cptd_P$ of $\omega$-computads is the [[limit]] of the diagram
$$ \dots \to 2 Cptd_P \to 1 Cptd_P \to 0 Cptd_P \to (-1) Cptd_P $$
consisting of the functors $n Cptd_P \to (n-1)Cptd_P$ taking $(C,X,x)$ to $C$.  The functors $U_n$ form a [[cone]] over this diagram and thus induce a functor $U_\omega\colon P Alg \to \omega Cptd_P$, which is easily seen to have a left adjoint which takes an object $(C_n)$ of $\omega Cptd_P$ to the [[colimit]]
$$ F_{-1} C_{-1} \to F_0 C_0 \to F_1 C_1 \to F_2 C_2 \to \dots.$$

#### Examples

For simplicity, let $P$ be the terminal globular operad, such that $P$-algebras are [[strict ∞-categories]].

* As in the definition, a 0-computad is just a set, and the free [[0-category]] on a 0-computad is just itself, considered as a discrete $\omega$-category.

* A 1-computad consists of 0-computad $C$ (i.e. a set) together with another set $X$ and a function $X\to GSet(\partial_1, U_P F_0 C)$.  Now $\partial_1$ is just a pair of objects, so this means that each element of $X$ is equipped with a pair of elements of $C$, which we call its [[source]] and [[target]].  Thus a 1-computad is just a [[quiver]].

* The free 1-category on a 1-computad is the usual free category on a quiver.  That is, its objects are the vertices of the graph and its morphisms are finite composable strings of edges in the quiver.

* A 2-computad is given by a quiver together with a set $C_2$ of 2-cells, each equipped with a source and a target which are composable strings of edges in the graph.  For example, if the given quiver is a square
  $$\array{\bullet & \overset{f}{\to} & \bullet \\
  ^h\downarrow && \downarrow^k\\
  \bullet& \underset{g}{\to} & \bullet}$$
  then the free category it generates is the free noncommutative square, having two diagonals $k f$ and $g h$.  We can then make a 2-computad by adding one 2-cell $\alpha$ with source $k f$ and target $g h$.  The free 2-category on this 2-computad can then be drawn pictorially as
  $$\array{\bullet & \overset{f}{\to} & \bullet\\
  ^h\downarrow & \swarrow_\alpha & \downarrow^k\\
  \bullet & \underset{g}{\to} & \bullet}$$

* Any $n$-[[globular set]] can be considered as an $n$-computad where for each $n$, the functions $s, t: C_n \rightrightarrows F_{n-1}(\mathcal{C})_{n-1}$ land inside $C_{n-1}$.  The free $n$-category on this $n$-computad will then agree with the free $n$-category on the $n$-globular set we started with.

* Every [[oriental]] can be presented by a computad, as can every [[opetope]], [[cube]], as can most other [[geometric shapes for higher structures]].

### On inverse diagrams

The above definition can easily be generalized by replacing the [[globe category]] by any [[direct category]], i.e. the [[opposite]] of an [[inverse category]].  In more detail, let $\mathcal{I}$ be any inverse category, and consider the [[diagram category]] $\Set^{\mathcal{I}}$.  Then any object $n\in \mathcal{I}$ has a [[representable functor]] $Y_n\in \Set^{\mathcal{I}}$ defined by $Y_n(x) = \mathcal{I}(n,x)$, which has a "boundary" subfunctor $\partial_n \subset Y_n$ consisting of all nonidentity morphisms $n\to x$ (as $x$ varies).  These play the role of $2_n$ and $\partial_n$ above.

Let $P$ be a monad on $\Set^{\mathcal{I}}$ with induced adjunction $F_P : \Set^{\mathcal{I}} \rightleftarrows P Alg : U_P$.  Since (by definition of "inverse category") the objects of $\mathcal{I}$ have a [[well-founded relation]] given by the existence of nonidentity arrows, we will define by well-founded recursion on $n\in \mathcal{I}$ the category $n Cptd_P$ and an adjunction $ n Cptd_P \underoverset{U_n}{F_n}{\rightleftarrows} P Alg $.

Assume, therefore, that this adjunction has been defined for all $k$ for which there is any nonidentity morphism $n\to k$.  Let $(\lt n) Cptd_P$ be the limit of the $k Cptd_P$ for all such $k$, with an induced adjunction $F_{\lt n} \dashv U_{\lt n}$ to $P Alg$ (see below).  Now define an $n$-computad to consist of a $(\lt n)$-computad $C$, a set $X$, and a function
$$x\colon X\to P Alg(F_P \partial_n, F_{\lt n} C) = Set^{\mathcal{I}}(\partial_n, U_P F_{\lt n} C).$$
The functor $U_n\colon P Alg \to n Cptd_P$ is defined as before: it sends a $P$-algebra $A$ to the $n$-computad defined by the $(\lt n)$-computad $U_{\lt n} A$ together with $X$ and $x$ defined by the following pullback square in [[Set]]:
$$\array{X & \overset{}{\to} & P Alg(F_P Y_n, A)\\
  ^x \downarrow && \downarrow\\
  P Alg(F_P \partial_n, F_{\lt n} U_{\lt n} A) & \underset{}{\to} & P Alg(F_P \partial_n, A)}$$
Similarly, its left adjoint $F_n$ takes an $n$-computad $D = (C,X,x)$ to the following pushout in $P Alg$:
$$\array{X\cdot F_P \partial_n & \overset{\overline{x}}{\to} & F_{\lt n} C\\
  \downarrow && \downarrow\\
  X \cdot F_P Y_n & \underset{}{\to} & F_n D}$$

This definition is not quite correct as written, because it assumes in the definition of $(\lt n)$-computads not just that the categories $k Cptd_P$ are defined with adjunctions to $P Alg$, but that they are related by suitable functors as $k$ varies that commute with these adjunctions.  Thus, formally speaking it has to be phrased as a definition of a [[functor]], rather than a function, by well-founded recursion, as explained [here](http://www.staff.science.uu.nl/~ooste110/realizability/wellffunctors.pdf).  We leave the details to the reader.

For example, if $\mathcal{I} = \mathcal{P}\times \mathcal{P}$, where $\mathcal{P} = (1 \rightrightarrows 0)$, then there is a monad on $\mathcal{I}$ whose algebras are double categories, and in this way we can obtain a notion of "double computad".

## Computads, presheaves and opetopes ##

The category of computads relative to a globular operad $P$ is sometimes a [[presheaf category]], and when it isn't, it "almost is."  At first glance, it may look as though it should always be a presheaf category, say $Set^{Ctp^{op}}$ where $Ctp$ is the category of "computopes."  A "computope" is, intuitively, one possible "[[geometric shapes for higher structures|shape]]" for an $n$-cell in an $n$-category (i.e. a $P$-algebra).  For example, every "[[globe]]" is a computope, as is every [[simplex]]/[[oriental]], every [[cube]], and so on.  It may feel at first as though a computad should be specified by giving a set of cells of each "shape" (i.e. for each computope) related by "face maps," generalizing [[globular set]]s, [[simplicial set]]s, [[cubical set]]s, and so on.

However, when $P$ is the terminal globular operad whose algebras are *strict* $\omega$-categories, the presence of identities in the notion of free $n$-category prevents this from quite working, for sort of the same reason that [[strict n-categories]] are insufficient for $n\gt 2$.  For instance, there is a 2-computad with one 0-cell $x$, *no* 1-cells, and two 2-cells $\alpha$ and $\beta$.  The source and target of $\alpha$ and $\beta$ must then both be the identity 1-cell $id_x$ of $x$.  Now in the free 2-category generated by this 2-computad, we have $\beta\alpha = \alpha\beta$, by the [[Eckmann-Hilton argument]].  If we define a 3-computad on top of this 2-computad with a 3-cell $\mu$ whose source (say) is $\beta\alpha = \alpha\beta$, then there can be no "face" maps from the computope-shape of $\mu$ to the computope-shape of $\beta$ and $\alpha$, since there is no way to distinguish $\alpha$ from $\beta$ (i.e. neither one is the "first" or the "second").

This argument only kicks in for $n\ge 3$, so the categories of 0-computads, 1-computads, and 2-computads are presheaf categories.  Moreover, the problem can also be avoided if $P$ is "suitably weak."  To define what this means, one considers the "slices" of the operad $P$.  By truncation, any such $P$ induces a monad $P_k$ on the category of $k$-globular sets.  Now the full subcategory of $P_n Alg$ on the objects whose underlying globular set is $(n-1)$-terminal (i.e. terminal in degrees $\lt n$) is [[monadic functor|monadic]] over the category of sets; the resulting monad on [[Set]] is called the **$k$-slice** of $P$.  In Theorem 5.2 of [Computads and slices of operads](http://arxiv.org/abs/math.CA/0209035), Batanin shows that the category of $n$-computads of a Batanin-operad $P$ is a presheaf category if the $k$-slices of $P$ are [[strongly regular theory|strongly regular theories]] for all $0\leq k \leq n-1$.  This applies in particular to the case where $P$ is an operad for Batanin weak $\omega$-categories.

On the other hand, even in the strict case we can obtain presheaf categories of suitably restricted computads.  For instance, if we consider only "many-to-one" computads in which the target of each $n$-cell consists of exactly one $(n-1)$-cell (rather than a free composite of such), we obtain a presheaf category, which is in fact equivalent to the category of [[opetopic set]]s.  We also obtain a presheaf category if we restrict both source and target to not be identity arrows; see [Henry 2017](#Henry17).

## Monadicity

The monadicity of $\omega Cptd$ over $\omega Cat$ was first claimed by Batanin in his '98 paper. The proof however made use of the fact that $\omega Cptd$ was a category of presheaves, which was later found to be false. Métayer provided a corrected proof in

* [[François Métayer]], [Strict $\omega$-categories are monadic over polygraphs](https://arxiv.org/abs/1606.00139).

## Computads as cofibrant resolutions ##

Quite generally, computads can be used to describe [[cofibrant object|cofibrant replacements]].  Specifically, the $\omega$-categories freely generated by computads are precisely the cofibrant objects in the [[canonical model structure]] on [[strict ∞-categories]].  This is discussed in

* F. Métayer, _Cofibrant complexes are free_ ([arXiv](http://arxiv.org/abs/math.CT/0701746))

* F. Métayer, _Resolutions by polygraphs_ ([tac](http://www.tac.mta.ca/tac/volumes/11/7/11-07.pdf))

The cofibrant resolution $(-)_{cof} \to Id : \omega Cat \to \omega Cat$ given by Métayer in these articles is the one counit of the [[adjunction]] $\omega Cptd  \to \omega Cat$.  In particular, this implies that _every_ [[strict ∞-category]] is equivalent as an $\omega$-category to one that is freely generated by a computad.  (Notice that these articles say "polygraph" for "computad", following Burroni).

It is to be expected that similar results are true for Batanin weak $\omega$-categories, defined as algebras for some other "contractible" globular operad $P$.

Moreover, for any globular operad $P$, one can show that the "cofibrant replacement" obtained as above from the adjunction $\omega Cptd_P \rightleftarrows P Alg$ is the same as the "canonical" cofibrant replacement [[comonad]] obtained from the [[algebraic weak factorization system]] on $P Alg$ generated by the boundary inclusions $F_P \partial_n \to F_P 2_n$.  This is proven in

* [[Richard Garner]], [Homomorphisms of higher categories](http://arxiv.org/abs/0810.4450).

In particular, the [[Kleisli category]] of this comonad is a good candidate for the category of *weak functors* between Batanin weak $\omega$-categories.

## Related concepts

* [[syzygy]]

## References

2-computads were originally defined by Ross Street in the paper

* [[Ross Street]], _Limits indexed by category-valued 2-functors_.

The goal there was to describe which 2-categories are "finitely presented" (the presentation being given by a 2-computad) in order to describe the correct notion of "finite [[2-limit]]".

I don't know the first use of "$n$-computads," but [[Michael Makkai]] has studied them as a way to define [[opetopic sets]], and shown that they are "almost" but not quite a presheaf category:

* Makkai, Harnik, and Zawadowski, _Multitopic sets are the same as many-to-one computads_, [link](http://www.math.mcgill.ca/makkai/m_1_comp/).

* Makkai, _The word problem for computads_, [link](http://www.math.mcgill.ca/makkai/computad.zip).

Computads were studied by [[Burroni]] under the name "polygraph" in the framework of [[rewriting]]:

* [[Albert Burroni]], _Higher dimensional word problems with applications to equational logic_ ([pdf](https://www.irif.fr/_media/users/burroni/high_word_pb.pdf))

The following more recent papers are referred to above:

* [[Michael Batanin]], [Computads and slices of operads](http://arxiv.org/abs/math.CA/0209035)

* [[Richard Garner]], [Homomorphisms of higher categories](http://arxiv.org/abs/0810.4450).

* {#Henry17} [[Simon Henry]], [Non-unital polygraphs form a presheaf category](https://arxiv.org/abs/1711.00744), 2017

Disucssion of computads as [[inductive types]]:

* [[Christopher J. Dean]], [[Eric Finster]], [[Ioannis Markakis]], [[David Reutter]], [[Jamie Vicary]], *Computads for weak $\omega$-categories as an inductive type* [[arXiv:2208.08719](https://arxiv.org/abs/2208.08719)]

One should beware that there are some erroneous claims in some of Batanin's papers; in particular the claim that computads relative to a globular operad are *always* a presheaf category.  This was explicitly shown to be false in

* Michael Makkai and Marek Zawadowski, _The category of 3-computads is not cartesian closed_, [MR](http://www.ams.org/mathscinet-getitem?mr=2440266).

* [[Eugenia Cheng]], [A direct proof that the category of 3-computads is not cartesian closed](http://arxiv.org/abs/1209.0414)

Some blog discussion:

* [Freely generated ω-categories](http://golem.ph.utexas.edu/category/2008/10/freely_generated_categories.html).

[[!redirects computads]]
[[!redirects n-computad]]
[[!redirects n-computads]]
[[!redirects ∞-computad]]
[[!redirects ∞-computads]]
[[!redirects 2-computad]]
[[!redirects 2-computads]]
[[!redirects polygraph]]
[[!redirects polygraphs]]


computation

+-- {: .rightHandSide}
+-- {: .toc .clickDown tabindex="0"}
### Context
#### Computability
+-- {: .hide}
[[!include constructivism - contents]]
=--
#### Type theory
+-- {: .hide}
[[!include type theory - contents]]
=--
#### Deduction and Induction
+-- {: .hide}
[[!include deduction and induction - contents]]
=--
#### Foundations
+-- {: .hide}
[[!include foundations - contents]]
=--
=--
=--

#Contents#
* table of contents
{:toc}

## Idea

A [[program]]. A construction of a [[term]] of some [[type]]. The topic of [[computability theory]].

## Related concepts

* [[computability]]

* [[programs as proofs]]

* [[computational type theory]]

* [[canonical form]]

* [[computational trilogy]]

* [[computational consistency]]

* [[programming language]]

* [[parallel computing]]

* [[distributed computing]]

* [[reversible computation]]

* [[nondeterministic computing]]

* [[quantum computation]], [[computable physics]]

* [[hypercomputation]]

[[!include computable mathematics -- table]]

## References

### General

On the theory of computation and introducing the notion of [[denotational semantics]] of [[programming languages]]:

* [[Dana S. Scott]], *Outline of a mathematical theory of computation*, in: Proceedings of the *Fourth Annual Princeton Conference on Information Sciences and Systems* (1970) 169–176. [[pdf](https://ropas.snu.ac.kr/~kwang/520/readings/sco70.pdf), [[Scott-TheoryOfComputation.pdf:file]]]

* [[Dana S. Scott]], [[Christopher Strachey]], *Toward a Mathematical Semantics for Computer Languages*, Oxford University Computing Laboratory, Technical Monograph PRG-6 (1971) [[pdf](https://www.cs.ox.ac.uk/files/3228/PRG06.pdf), [[ScottStrachey-MathematicalSemantics.pdf:file]]]

Textbook accounts:

* [[Michael Sipser]], *Introduction to the Theory Of Computation*, 3rd ed: Cengage Learning (2012) [ISBN:978-1-133-18779-0,[pdf](https://www.mog.dog/files/SP2019/Sipser_Introduction.to.the.Theory.of.Computation.3E.pdf), [pdf](https://fuuu.be/polytech/INFOF408/Introduction-To-The-Theory-Of-Computation-Michael-Sipser.pdf)]

An account with focus on [[programming languages]]:

* [[Robert Harper]], *[[Practical Foundations for Programming Languages]]*, Cambridge University Press (2016) [[ISBN:9781107150300](http://www.cambridge.org/us/academic/subjects/computer-science/programming-languages-and-applied-logic/practical-foundations-programming-languages-2nd-edition?format=HB), [pdf](https://www.cs.cmu.edu/~rwh/pfpl/2nded.pdf)]

An account going from classical computation to [[quantum computation]]:

* [[Alexei Y. Kitaev]], A. H. Shen, M. N. Vyalyi, *Classical and Quantum Computation*, Graduate Studies in Mathematics **47** (2002) [[doi:10.1090/gsm/047](http://dx.doi.org/10.1090/gsm/047)]

\linebreak

### As path lifting
{#ReferencesConceptualizationViaPathLifting}

A conceptualization of computation as something at least close to [[path]]-[[lifting]] and/or as [[functors]] between [[path groupoids]] of [[topological spaces]] (a "semantical mapping" from an "action space" parameterizing the possible computing instructions to a "knowledge space" expressing their executions):

* {#vanLeeuwen15} [[Jan van Leeuwen]], *The Philosophy of Computation*, p. xix-xxx in: Proceedings of *IIT.SRC 2015 -- Student Research Conference* Bratislava (2015) [full proceedings: [pdf](http://www2.fiit.stuba.sk/iitsrc/iit-src2015-proceedings.pdf), [web](https://www.fiit.stuba.sk/iit-src2015/proceedings.html?page_id=4340); article: [pdf](https://webspace.science.uu.nl/~leeuw112/Bratislava-2015.pdf); slides: [pdf](https://www.fiit.stuba.sk/buxus/docs/IIT.SRC/2015/iit-src-2015_leeuwen_philosophy-of-computation.pdf)]

\begin{imagefromfile}
    "file_name": "vanLeeuwen-Computation.jpg",
    "width": 570,
    "unit": "px",
    "margin": {
        "top": -30,
        "bottom": 20,
        "right": 0,
        "left": 10
    },
    "caption": "(from [van Leeuwen 2015](#vanLeeuwen15))"
\end{imagefromfile}

* {#vanLeeuwenWiedermann15} [[Jan van Leeuwen]], [[Jiří Wiedermann]]: *What is Computation -- An Epistemic Approach*, p. 1-13 in Proceedings of *[SOFSEM 2015](http://www.sofsem.cz/sofsem15/): Theory and Practice of Computer Science*, Lecture Notes in Computer Science **8939**, Springer (2015) [[doi:10.1007/978-3-662-46078-8](https://doi.org/10.1007/978-3-662-46078-8), talk slides: [pdf](http://www.sofsem.cz/sofsem15/files/presentations/invited/vanLeeuwenWiedermann.pdf)]

* {#vanLeeuwenWiedermann17} [[Jan van Leeuwen]], [[Jiří Wiedermann]]: *Knowledge, Representation and the Dynamics of Computation*, pp. 69-89 in: *Representation and Reality in Humans, Other Living Organisms and Intelligent Machines*, Studies in Applied Philosophy, Epistemology and Rational Ethics **28**, Springer (2017) [[doi:10.1007/978-3-319-43784-2_5](https://doi.org/10.1007/978-3-319-43784-2_5), [[LeeuwenWiedermann-Computation.pdf:file]]]

\begin{imagefromfile}
    "file_name": "LeeuwenWiedermann-Computation.jpg",
    "width": 570,
    "unit": "px",
    "margin": {
        "top": -30,
        "bottom": 20,
        "right": 0,
        "left": 10
    },
    "caption": "(from [van Leeuwen and Wiedermann 2017](#vanLeeuwenWiedermann17))"
\end{imagefromfile}

* {#vanLeeuwenWiedermann19} [[Jan van Leeuwen]], [[Jiří Wiedermann]], *Understanding Computation -- A General Theory of Computational Processes*, Technical Report UU-CS-2019-012, Utrecht University (2019) [[dspace:1874/390075](https://dspace.library.uu.nl/handle/1874/390075), [pdf](http://www.cs.uu.nl/research/techreps/repo/CS-2019/2019-012.pdf), [pdf](https://dspace.library.uu.nl/bitstream/handle/1874/390075/2019_012.pdf?sequence=1&isAllowed=y)]

Related discussion for [[quantum computation]], with [[quantum circuits]] regarded as paths:

* [[Paolo Zanardi]], [[Mario Rasetti]], p. 1 of: *Holonomic Quantum Computation*, Phys. Lett. A **264** (1999) 94-99 [doi:10.1016/S0375-9601(99)00803-8, [arXiv:quant-ph/9904011](https://arxiv.org/abs/quant-ph/9904011)]

* {#NielsenDowlingGuDoherty06} [[Michael A. Nielsen]], [[Mark R. Dowling]], [[Mile Gu]], [[Andrew C. Doherty]], *Quantum Computation as Geometry*, Science, **311** 5764 (2006) 1133-1135 [[doi:10.1126/science.1121541](https://doi.org/10.1126/science.1121541), [arXiv:quant-ph/0603161](https://arxiv.org/abs/quant-ph/0603161)]

* [[Mark R. Dowling]], [[Michael A. Nielsen]], *The geometry of quantum computation*, Quantum Information & Computation **8** 10 (2008) 861–899 [[doi:10.5555/2016985.2016986](https://dl.acm.org/doi/abs/10.5555/2016985.2016986), [arXiv:quant-ph/0701004](https://arxiv.org/abs/quant-ph/0701004)]

* [[David Jaz Myers]], [[Hisham Sati]] [[Urs Schreiber]], §3 in: *[[schreiber:Topological Quantum Gates in Homotopy Type Theory]]* [[arXiv:2303.02382](https://arxiv.org/abs/2303.02382)]

[[!redirects computations]]

[[!redirects classical computation]]
[[!redirects classical computations]]

[[!redirects computing]]

[[!redirects computer]]
[[!redirects computers]]

[[!redirects classical computer]]
[[!redirects classical computers]]

[[!redirects computational]]


computational complexity and physics

## Idea

[[complexity theory]] and [[physics]]

## Related concepts

* [[computable physics]]

## References

* Stephan Mertens, _Computational Complexity for Physicists_ ([arXiv:cond-mat/0012185](http://arxiv.org/abs/cond-mat/0012185))

Hypothetical relation to [[quantum gravity]] ([[black hole entropy]], [[holographic principle]]):

* [[Shira Chapman]], [[Giuseppe Policastro]], *Quantum Computational Complexity -- From Quantum Information to Black Holes and Back*, The European Physical Journal C **82** 128 (2022)  [[arXiv:2110.14672](https://arxiv.org/abs/2110.14672), [doi:10.1140/epjc/s10052-022-10037-1](https://doi.org/10.1140/epjc/s10052-022-10037-1)]

* [[Shira Chapman]], _Holographic Complexity and de Sitter Space_, talk at *[[Strings 2022]]* [[indico:4940811](https://indico.cern.ch/event/1085701/contributions/4940811), [slides](https://indico.cern.ch/event/1085701/contributions/4940811/attachments/2481532/4260404/Slides_Chapman.pdf), [video](https://ustream.univie.ac.at/media/core.html?id=e3ddea36-2f95-42ac-8b26-98c41f1d800d)]


computational consistency

#Contents#
* table of contents
{:toc}

## Idea

Computational consistency of a [[formal system]] says that

> If the [[sequent]] $\vdash e \colon (x_1 = x_2)$  is derivable (claiming a witness of the [[proposition]] of [[equality]] of two [[terms]]) then the [[terms]] $x_1$ and $x_2$ have the same value by [[computation]].

([Miquel, p.38](#Miquel))

## Related concepts

* [[proof]]

## References

* [[Alexandre Miquel]], _The experimental effectiveness of mathematical proof_ ([pdf](http://perso.ens-lyon.fr/alexandre.miquel/publis/effectiveness.pdf))
 {#Miquel}


computational homological algebra

#Contents#
* table of contents
{:toc}

## Idea

Computational [[constructive mathematics|constructive]] [[homological algebra]].

Computational Homological Algebra is the study of the design and implementation of  mathematical algorithms for examining the  homological properties of discrete algebraic structures such as groups, monoids, Lie algebras, etc. It also has started looking at higher dimensional algebraic structures that arise in homological algebra and homotopy theory.

## Related concepts

* [[constructive set theory]]

* [[constructive analysis]]

* [[constructive algebraic topology]]

## References

* [CHA](http://hamilton.nuigalway.ie/CHA/)

* [Computational Higher-dimensional Discrete Algebra](http://www.maths.bangor.ac.uk/chda/chda.html)


computational physics

## Related entries

* [[computable physics]]

## References

* Wikipedia, _[Computational physics](http://en.wikipedia.org/wiki/Computational_physics)_


computational topology

+-- {: .rightHandSide}
+-- {: .toc .clickDown tabindex="0"}
###Context###
#### Topology
+--{: .hide}
[[!include topology - contents]]
=--
#### Constructivism, Realizability, Computability
+-- {: .hide}
[[!include constructivism - contents]]
=--
=--
=--

# Computational topology
* table of contents
{: toc}

## Overview

*Computational topology* is a relatively new area of study. It emerged in response to topological problems that arise in computer graphics, robotics and planning. There are interactions with dynamical systems, and computational geometry.

## Subareas

* [[applied topology]]

* [[computational homology]]

* [[persistent homology]]

* [[topological data analysis]]

* [[topological dynamics]]

* [[discrete Morse theory]]

Related areas include

* [[computational homological algebra]]

See also:

* [[constructive set theory]]

* [[constructive analysis]]

## References

### General

Textbook accounts:

* {#EdelsbrunnerHarer10} [[Herbert Edelsbrunner]], [[John L. Harer]], *[[Computational Topology, An Introduction]]*, American Mathematical Society (2010) [[ISBN:978-0-8218-4925-5](http://www.ams.org/bookstore-getitem/item=MBK-69), [pdf](https://www.maths.ed.ac.uk/~v1ranick/papers/edelcomp.pdf)]

* [[Graham Ellis]], *An Invitation to Computational Homotopy*, Oxford University Press (2019) [[ISBN:9780198832973](https://global.oup.com/academic/product/an-invitation-to-computational-homotopy-9780198832973?cc=de&lang=en&), [MAA review](https://www.maa.org/press/maa-reviews/an-invitation-to-computational-homotopy)]

See also:

* _[[sources in computational topology]]_

### Computational algebraic topology

[[constructive mathematics|Constructive]]$\;$[[homology groups]] and [[homotopy groups]]:

* [[Julio Rubio]], [[Francis Sergeraert]], *Constructive Algebraic Topology*, Bulletin des Sciences Mathématiques
**126** 5 (2002) 389-412 [[arXiv:math/0111243](https://arxiv.org/abs/math/0111243), doi:10.1016/S0007-4497(02)01119-3]

* *[[Kenzo]]* (computer system for computational topology)

### Computational Homotopy groups

Discussion of ([[equivariant homotopy theory|equivariant]]) [[homotopies]] and [[homotopy groups]] in [[computational topology]]:

* [[Martin Čadek]], [[Marek Krčál]], [[Jiří Matoušek]], [[Lukáš Vokřínek]], [[Uli Wagner]], _Polynomial-time computation of homotopy groups and Postnikov systems in fixed dimension_, SIAM J. Comput., 43(5), 1728–1780  ([arXiv:1211.3093](https://arxiv.org/abs/1211.3093), [doi:10.1137/120899029](https://doi.org/10.1137/120899029))

* [[Lukáš Vokřínek]], _Computing the abelian heap of unpointed stable homotopy classes of maps_, Archivum Mathematicum, Volume 49 (2013), No. 5 · ([arXiv:1312.2474](https://arxiv.org/abs/1312.2474), [doi:10.5817/AM2013-5-359](http://dx.doi.org/10.5817/AM2013-5-359))

* [[Marek Filakovský]], [[Lukáš Vokřínek]], _Are two given maps homotopic? An algorithmic viewpoint_, Found Comput Math (2019) ([arXiv:1312.2337](https://arxiv.org/abs/1312.2337), [doi:10.1007/s10208-019-09419-x](https://doi.org/10.1007/s10208-019-09419-x))

* [[Marek Filakovsky]], [[Peter Franek]], [[Uli Wagner]], Stephan Zhechev, _Computing simplicial representatives of homotopy group elements_, J Appl. and Comput. Topology (2018) 2: 177. ([arXiv:1706.00380](https://arxiv.org/abs/1706.00380))

and on the [[extension]]-problem:

* [[Martin Čadek]], [[Marek Krčál]], Jiří Matoušek, [[Lukáš Vokřínek]], [[Uli Wagner]], _Extendability of continuous maps is undecidable_, Discrete Comput Geom (2014) 51: 24 ([arXiv:1302.2370](https://arxiv.org/abs/1302.2370), [doi:10.1007/s00454-013-9551-8](https://doi.org/10.1007/s00454-013-9551-8))

### Computational Cohomotopy sets

Discussion of [[Cohomotopy]]-sets in [[computational topology]]:

* {#CKMSVW14} [[Martin Čadek]], [[Marek Krčál]], [[Jiří Matoušek]], [[Francis Sergeraert]], [[Lukáš Vokřínek]], [[Uli Wagner]], _Computing all maps into a sphere_, Journal of the ACM, Volume 61 Issue 3, May 2014 Article No. 1 ([arxiv:1105.6257](https://arxiv.org/abs/1105.6257))

* [[Lukáš Vokřínek]], _Decidability of the extension problem for maps into odd-dimensional spheres_,  Discrete Comput Geom (2017) 57: 1 ([arXiv:1401.3758](https://arxiv.org/abs/1401.3758))

[[!redirects computational topology]]

[[!redirects constructive algebraic topology]]


Computational Topology, An Introduction

This page provides material related to the textbook

* [[Herbert Edelsbrunner]], [[John L. Harer]],

  **Computational Topology, An Introduction**

  American Mathematical Society, 2010.

  (241 pages)

  [ISBN:978-0-8218-4925-5](http://www.ams.org/bookstore-getitem/item=MBK-69)

  [pdf](https://www.maths.ed.ac.uk/~v1ranick/papers/edelcomp.pdf)

on [[computational topology]].

## Contents

* Preface

A. Computational Geometric Topology

I. Graphs

II. Surface

III Complexes

B. Computational Algebraic Topology

IV. Homology

V. Duality

VI. Morse Functions

C. Computational Persistent Topology

VII. Persistence

VIII. Stability

IX. Applications

* References

*Index

(Each section is made up of four subsections.)

category: topology, applications, reference


computational trilogy

+-- {: .rightHandSide}
+-- {: .toc .clickDown tabindex="0"}
### Context
#### Type theory
+-- {: .hide}
[[!include type theory - contents]]
=--
#### Category theory
+-- {: .hide}
[[!include category theory - contents]]
=--
#### Constructivism, Realizability, Computability
+-- {: .hide}
[[!include constructivism - contents]]
=--
=--
=--

# Contents
* table of contents
{: toc}

## Idea
 {#Idea}

A profound cross-disciplinary insight has emerged -- starting in the late 1970s, with core refinements in recent years -- observing that
three superficially different-looking fields of [[mathematics]],

* [[computation]]/[[programming languages]]

* [[formal logic]]/[[type theory]]

* [[(∞,1)-category|∞-]][[category theory]]/[[(∞,1)-topos|∞-]][[topos theory]] ([[algebraic topology]])

are but three different perspectives on a single underlying phenomenon at the [[foundations of mathematics]]:

\begin{tikzpicture}

  \draw (0,0) circle (1.6);
  \draw (75+0:1.6) node {\colorbox{white}{\Large computation}};
  \draw (75+120:1.6) node {\colorbox{white}{\Large spaces}};
  \draw (75+240:1.6) node {\colorbox{white}{\Large  logic}};

\end{tikzpicture}

### Classical

#### Plain
  {#ClassicalPlain}

Under the identifications

1. [[propositions as types]],

1. [[programs as proofs]],

1. [[relation between type theory and category theory]]

the following notions are equivalent:

| In [[intuitionistic mathematics|intuitionistic]] [[logic]]
 and [[type theory]]: | In  [[programming languages]]
 and [[computation]]: | In [[category theory]]
 and [[topos theory]]: |
|--|--|--|
| A [[proof]] of a [[proposition]],
 [[propositions as types|or]] a [[term]] of some [[type]]. | A [[program]]/[[λ-term]] with
 output of some [[data type]]. | A [[generalized element]]
 of an [[object]]. |

\begin{tikzpicture}

\begin{scope}[rotate=(60), scale=(1.2)]

\draw (0,0) circle (2.4);

\draw
  (45:2)
    node
  {\colorbox{white}{
    \fbox{
    \begin{tabular}{c}
      Computation and
      \\
      Programming Language
    \end{tabular}
    }
  }};

\draw
  (45+120:2.4)
    node
  {\colorbox{white}{
    \fbox{
    \begin{tabular}{c}
      Category and
      \\
      Topos Theory
    \end{tabular}
    }
  }};

\draw
  (45+240:2.4)
    node
  {\colorbox{white}{
    \fbox{
    \begin{tabular}{c}
      Intuitionistic Logic
      \\
      and Type Theory
    \end{tabular}
    }
  }};

\draw (0,-5) node {\phantom{a}};

\end{scope}

\end{tikzpicture}

whence these three subjects are but three perspectives on a single underlying phenomenon.

This insight dates from the late 1970s; an early record is [Lambek & Scott 86](#LambekScott86); it is explicitly highlighted as a *trilogy* ([Wikipedia](https://en.wikipedia.org/wiki/Trilogy): "three works of art that are connected and can be seen either as a single work or as three individual works") in [Melliès 06, Sec. 1](#Mellies06):

\begin{imagefromfile}
    "file_name": "MelliesClassicalComputationalTrilogy.jpg",
    "width": 510,
    "unit": "px",
    "margin": {
        "top": -40,
        "bottom": 20,
        "right": 0,
        "left": 10
    },
    "caption": "From [Melliès 06](#Mellies06)"
\end{imagefromfile}

(Notice that [Melliès 06](#Mellies06) on [p.2](https://hal.archives-ouvertes.fr/hal-00154243/document#page=3) does mean to regard [[λ-calculus]] as [[programming language]].)

In [Harper 11](#Harper11) the profoundness of the trilogy inspires the following emphatic prose, alluding to the doctrinal position of 'trinitarianism':

> The central dogma of computational trinitarianism holds that Logic, Languages, and Categories are but three manifestations of one divine notion of computation. There is no preferred route to enlightenment: each aspect provides insights that comprise the experience of computation in our lives.

> Computational trinitarianism entails that any concept arising in one aspect should have meaning from the perspective of the other two. If you arrive at an insight that has importance for logic, languages, and categories, then you may feel sure that you have elucidated an essential concept of computation--you have made an enduring scientific discovery.

For more detailed review see [Eades 12, Sec. 3](#Eades12).

#### Parametrized
 {#ClassicalParametrized}

More is true: Since

1. computation happens in [[contexts]] and is [[proof relevance|proof relevant]];

1. [[categories]] give rise to their [[codomain fibration|systems of]] [[slice categories]] and are in general [[(∞,1)-categories]];

1. [[types]] may [[dependent type theory|depend]] on other types and are in general [[homotopy type theory|homotopy types]]

the traditional computational trilogy [above](#ClassicalPlain) enhances to read as follows:

| In [[dependent type theory|dependent]]
 [[homotopy type theory]]: | In  [[programming languages]]
 and [[computation]]: | In [[locally cartesian closed (∞,1)-categories|locally cartesian closed]]
 [[(∞,1)-categories]]/[[(∞,1)-toposes]]: |
|--|--|--|
| A [[term]] of some [[type]]
 in [[context]]. | A [[program]] outputting some [[data type]]
 in [[context]]. | A [[generalized element]] of an [[object]]
 in a [[slice (∞,1)-category|slice]].  |

See also [Shulman 18](#Shulman18).

In this deeper form yet another equivalence -- to [[algebraic topology]] ([[schreiber:Proper Orbifold Cohomology|Sati & Schreiber 20]], [p. 5](https://ncatlab.org/schreiber/files/orbi210313.pdf#page=5)) -- opens up, as [[generalized elements]] in an [[(∞,1)-topos]] may equivalently be regarded as [[cocycles]] in ([[non-abelian cohomology|non-abelian]]) [[cohomology]], and in [[twisted cohomology]] if in a [[slice (∞,1)-category]] ([[schreiber:Proper Orbifold Cohomology|Sati & Schreiber 20]] [p. 6](https://arxiv.org/pdf/2008.01101.pdf#page=6), [[schreiber:The Character Map in Twisted Non-Abelian Cohomology|FSS 20]]), whence we have a *computational tetralogy*:

| In [[dependent type theory|dependent]]
 [[homotopy type theory]]: | In  [[programming languages]]
 and [[computation]]: | In [[locally cartesian closed (∞,1)-categories|locally cartesian closed]]
 [[(∞,1)-categories|∞-categories]]/[[(∞,1)-toposes|∞-toposes]]: | In [[non-abelian cohomology|non-abelian]] [[cohomology]]
 [[parametrized homotopy theory|param. homotopy theory]]:
|--|--|--|--|
| A [[term]] of some [[type]]
 in [[context]]. | A [[program]] of some [[data type]]
 in [[context]]. | An [[generalized element|element]] of an [[object]]
 in a [[slice (∞,1)-category|slice]]. | A [[cocycle]]
 in [[twisted cohomology]]. |

> (graphics from *[[schreiber:Topological Quantum Programming in TED-K|SS22]]*)

\begin{tikzpicture}

\begin{scope}[rotate=(60), scale=(1.2)]

\draw (0,0) circle (2.4);

\draw
  (45:2)
    node
  {\colorbox{white}{
    \fbox{
    \begin{tabular}{c}
      Contextual Computation/
      \\
      Programming Language
    \end{tabular}
    }
  }};

\draw
  (45+120:2.4)
    node
  {\colorbox{white}{
    \fbox{
    \begin{tabular}{c}
      Twisted Non-Abelian
      \\
      Cohomology Theory
    \end{tabular}
    }
  }};

\draw
  (45+240:2.4)
    node
  {\colorbox{white}{
    \fbox{
    \begin{tabular}{c}
      Homotopy
      \\
      Type Theory
    \end{tabular}
    }
  }};

\draw (0,-5) node {\phantom{a}};

\end{scope}

\end{tikzpicture}

### Quantum
 {#Quantum}

#### Plain
  {#QuantumPlain}

An analogous trilogy is seen under passage:

1. from [[logic]]/[[type theory]] to [[linear logic]]/[[linear type theory]];

1. from [[computation]] to [[quantum computation]];

1. from [[cartesian closed categories]] to [[closed monoidal categories]]

This is the main point of [Melliès 06, Sec. 1](#Mellies06), only that where Melliès shows "[[proof nets]]" ([p. 4](https://hal.archives-ouvertes.fr/hal-00154243/document#page=5)) we refer to them as "[[quantum computation]]" for better emphasis, following [Abramsky-Coecke 04](quantum+programming+language#AbramskyCoecke04), [Abramsky & Duncan 05](quantum+programming+language#AbramskyDuncan05), [Duncan 06](quantum+programming+language#Duncan06); going back to [Pratt 92](quantum+programming+language#Pratt92):

\begin{imagefromfile}
    "file_name": "MelliesQuantumComputationalTrilogy.jpg",
    "width": 510,
    "unit": "px",
    "margin": {
        "top": -40,
        "bottom": 20,
        "right": 0,
        "left": 10
    },
    "caption": "From [Melliès 06, p. 4](#Mellies06)"
\end{imagefromfile}

See also [Baez & Stay 09](#BaezStay09).

#### Parametrized
 {#QuantumParametrized}

Combining the [classical parametrized trilogy](#ClassicalParametrized) with the [plain quantum trilogy](#QuantumPlain), as one passes

* from classical [[computation]] to **[classically controlled](quantum+computation#ClassicalControlQuantumData) [[quantum computation]]** on [[linear spaces|linear]] [[spaces of quantum states]] parametrized over classical [[data types]];

* from [[dependent type theory|dependent]] [[intuitionistic type theory|intuitionistic]] [[homotopy type theory]] to **[[dependent linear type theory|dependent]] [[linear type theory]]** of dependent [[stable homotopy types]];

* from [[locally cartesian closed categories]]/[[locally cartesian closed (∞,1)-categories|(∞,1)-categories]] to **[[indexed monoidal categories]]/[[indexed monoidal (∞,1)-categories|(∞,1)-categories]]** of [[parametrized spectra]]; which in the language of [[algebraic topology]] is the context of **[[twisted generalized cohomology|twisted]] [[generalized cohomology theory]]**.

there appears the "classically controlled quantum computational tetralogy":

> (graphics from *[[schreiber:Topological Quantum Programming in TED-K|SS22]]*)

| In [[dependent linear type theory|dependent linear]]
 [[homotopy type theory]]: | In  [classically controlled](quantum+computation#ClassicalControlQuantumData)
 [[quantum programming languages]]: | In [[indexed monoidal (∞,1)-categories|indexed monoidal]]
 [[parameterized stable homotopy theory|∞-cats of par. spectra]]: | In [[Whitehead generalized cohomology theory|Whitehead-generalized]]
 [[twisted cohomology theory]]:
|--|--|--|--|
| A [[term]] of some [[type]]
 in [[context]]. | A [[quantum circuit]]
 controlled by [[data type|classical data]].  | An [[generalized element|element]] of an [[object]]
 in a [[slice (∞,1)-category|slice]]. | A [[cocycle]]
 in [[twisted cohomology]]. |

\begin{tikzpicture}

\begin{scope}[rotate=(60), scale=(1.2)]

\draw (0,0) circle (2.4);

\draw
  (45:2)
    node
  {\colorbox{white}{
    \fbox{
    \begin{tabular}{c}
      Classically Controlled
      \\
      Quantum Computation
    \end{tabular}
    }
  }};

\draw
  (45+120:2.4)
    node
  {\colorbox{white}{
    \fbox{
    \begin{tabular}{c}
      Twisted Generalized
      \\
      Cohomology Theory
    \end{tabular}
    }
  }};

\draw
  (45+240:2.4)
    node
  {\colorbox{white}{
    \fbox{
    \begin{tabular}{c}
      Linear Homotopy
      \\
      Type Theory
    \end{tabular}
    }
  }};

\draw (0,-5) node {\phantom{a}};

\end{scope}

\end{tikzpicture}

(along the lines of [[schreiber:Quantization via Linear homotopy types|Schreiber 14]], [[schreiber:master thesis Nuiten|Nuiten 13]],

* with parametrized stable homotopy theory understood as twisted cohomology theory as in [Ando, Blumberg & Gepner 10](twisted+cohomology#ABG10), [Ando, Blumberg, Gepner & Hopkins 14](#twisted+cohomology#ABGHR14), [[schreiber:The Character Map in Twisted Non-Abelian Cohomology|Fiorenza, Sati, & Schreiber 20]];

* with dependent linear homotopy type theory understood as, e.g., in [Riley, Finster & Licata 21](dependent+linear+type+theory#RileyFinsterLicata21) following [[schreiber:differential cohomology in a cohesive topos|Schreiber 13]] [Prop. 4.1.9](https://arxiv.org/pdf/1310.7930v1.pdf#page=446);

* with classically controlled quantum computation seen as dependent linear type theory, as stated fully explicitly in [Fu, Kishida & Selinger 20](quantum+programming+language#FKS20), [Fu, Kishida, Ross & Selinger 20](quantum+programming+language#FKS20) and more tentatively before in [Vakar 14](dependent+linear+type+theory#Vakar14), [Vakar 15](dependent+linear+type+theory#Vakar15), [Vakar 17](dependent+linear+type+theory#Vakar17), following [[schreiber:Quantization via Linear homotopy types|Schreiber 14]])

{#ComputationalTrilogyTopologizedQuantized}$\,$

\begin{imagefromfile}
    "file_name": "ComputationalTrilogyTopologizedAndQuantized.jpg",
    "width": 800,
    "unit": "px",
    "margin": {
        "top": -40,
        "bottom": 20,
        "right": 0,
        "left": 10
    }
\end{imagefromfile}

> (from [[schreiber:Topological Quantum Programming in TED-K|SS22]])

\linebreak

## Rosetta stone

The following shows a rosetta stone dictionary with more details:

> (NB. This table shows the computational aspect mostly under "type theory"...)

[[!include types and logic - table]]

## Related concepts

* [[syntax-semantics duality]]

* [[relation between category theory and type theory]]

* [[programs as proofs]], [[propositions as types]]

* [[initiality conjecture]]

## References

In the introduction of

* {#Mellies06} [[Paul-André Melliès]], _Functorial boxes in string diagrams_, Procceding of _Computer Science Logic 2006_ in Szeged, Hungary. 2006 ([hal:00154243](https://dumas.ccsd.cnrs.fr/PPS/hal-00154243), [pdf](https://hal.archives-ouvertes.fr/hal-00154243/document), [[MelliesFunctorialBoxesInStringDiagrams.pdf:file]])

the insight is recalled to have surfaced in the 1970s, with an early appearance in print being the monograph

* {#LambekScott86} [[Joachim Lambek]], [[Phil Scott]], _Introduction to Higher Order Categorical Logic_, Cambridge Studies in Advanced Mathematics Vol. 7. Cambridge University Press, 1986 (ISBN:978-0-521-24665-1)

See also at _[History of categorical semantics of linear type theory](linear+type+theory#HistoryCategoricalSemantics)_ for more on this.

A exposition of the relation between the three concepts is in

* {#Harper11} [[Robert Harper]], _The Holy Trinity_ (2011) ([web](http://existentialtype.wordpress.com/2011/03/27/the-holy-trinity/), [wayback machine snapshot](https://web.archive.org/web/20170921012554/http://existentialtype.wordpress.com/2011/03/27/the-holy-trinity/))

* {#Eades12} [[Harley Eades]], Section 3 of: *Type Theory and Applications*, 2012 ([pdf](https://metatheorem.org/includes/pubs/comp.pdf), [[EadesTypeTheoryAndApplications.pdf:file]])

* {#Frumin14} Dan Frumin, _Computational trinitarianism_, Feb 2014 ([prezi slides](http://prezi.com/fnz-4wzsygiq/computational-trinitarianism/))

An exposition with emphasis on [[linear logic]]/[[quantum logic]] and the relation to [[physics]] is in

* {#BaezStay09} [[John Baez]], [[Mike Stay]], _Physics, Topology, Logic and Computation: A Rosetta Stone_, Notes in Physics vol. 813, Springer, Berlin, 2011, pp. 95-174 ([arXiv:0903.0340](http://arxiv.org/abs/0903.0340))

Discussion in the context of [[homotopy type theory]]:

* {#Shulman18} [[Mike Shulman]], *Homotopical trinitarianism: A perspective on homotopy type theory*, 2018 ([pdf slides](http://home.sandiego.edu/~shulman/papers/trinity.pdf), [[ShulmanHomotopicalTrinitarianism.pdf:file]])

For further references see at _[[programs as proofs]]_, _[[propositions as types]]_, and _[[relation between category theory and type theory]]_.

Textbooks on the [[foundations of mathematics]] and foundations of [[programming language]] which connect via the common theme of [[type theory]]/[[categorical logic]] include the following:

* [[Paul Taylor]], _[[Practical Foundations of Mathematics]]_ ([web](http://www.paultaylor.eu/~pt/prafm/index.html))

* [[William Lawvere]], [[Robert Rosebrugh]], _[[Sets for Mathematics]]_,  Cambridge UP  2003 ([book homepage](http://www.mta.ca/~rrosebru/setsformath/), [GoogleBooks](http://books.google.de/books?id=h3_7aZz9ZMoC&pg=PP1&dq=sets+for+mathematics), [pdf](http://patryshev.com/books/Sets%20for%20Mathematics.pdf))

* [[Robert Harper]], _[[Practical Foundations for Programming Languages]]_,  Cambridge University Press (2016) ([ISBN:9781107150300](http://www.cambridge.org/us/academic/subjects/computer-science/programming-languages-and-applied-logic/practical-foundations-programming-languages-2nd-edition?format=HB))

See also

* [[Joseph A. Goguen]], _[[A Categorical Manifesto]]_. In _Mathematical Structures in Computer Science_ **1** 1 (1991) 49-67 ([doi:10.1017/S0960129500000050](https://doi.org/10.1017/S0960129500000050), [CiteSeerX](http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.13.362).

[[!redirects computational trilogism]]

[[!redirects computational trinitarianism]]
[[!redirects computational trinity]]

[[!redirects logical triality]]


computational type theory

+-- {: .rightHandSide}
+-- {: .toc .clickDown tabindex="0"}
### Context
#### Constructivism, Realizability, Computability
+-- {: .hide}
[[!include constructivism - contents]]
=--
#### Type theory
+-- {: .hide}
[[!include type theory - contents]]
=--
#### Deduction and Induction
+-- {: .hide}
[[!include deduction and induction - contents]]
=--
#### Foundations
+-- {: .hide}
[[!include foundations - contents]]
=--
=--
=--

#Contents#
* table of contents
{:toc}

## Idea

The term _computational type theory_ has been used

1. generally for [[intuitionistic type theory]] in view of its [[computation|computational]] content via the [[propositions-as-types]] and [[proofs-as-programs]] interpretation (e.g. [Constable 02](#Constable02), [Scholarpedia](#Scholarpedia)).

1. more specifically for [[intuitionistic type theory]] with [[inductive types]] and here specifically for the dialect of the language which is implemented in the [[NuPRL]] software ([Constable et al. 86](#ConstableEtAl86), [NuPRL 05](#NuPRL05));

   > [Constable, p. 6](#Constable): $[$computational type theory$]$ considerably extended Per Martin-Löf's Intuitionistic Type Theory (ITT) adding set types, quotient types, recursive types, partial object types (bar types)

1. for [[modal type theory]], specifically for [[type theory]] equipped with a [[monad (in computer science)]] that preserves [[finite products]], which exhibits a kind of computation ([Benton-Bierman-de Paiva 93](BentonBiermanDePaiva93), [Fairtlough-Mendler 02](#FairtloughMendler02)).

   The [[internal logic]] of computational type theory in this sense is also called _propositional lax logic_ ([Fairtlough-Mendler 97](#FairtloughMendler97), [Crolard](#Crolard)) or _computational logic_.

## Related concepts

* [[computational trinitarianism]]

## References

Discussion of intuitionistic/constructive type theory (with inductive types) as such referred to as computational type theory is in

* Scholarpedia, _[Computational type theory](http://www.scholarpedia.org/article/Computational_type_theory)_
 {#Scholarpedia}

* [[Robert Constable]], _Naïve Computational Type Theory_, Proof and System-Reliability NATO Science Series Volume 62, 2002, pp 213-259 {#Constable02}

Discussion specifically in the context of [[NuPRL]] is in

* [[Robert Constable]], Stuart F. Allen, H. M. Bromley, W. R. Cleaveland, J. F. Cremer, R. W. Harper, Douglas J. Howe, T. B. Knoblock, N. P. Mendler, P. Panangaden, James T. Sasaki, and Scott F. Smith. _Implementing Mathematics with the Nuprl Proof Development System_. Prentice-Hall, NJ, 1986.
 {#ConstableEtAl86}

* _Innovations in Computational Type Theory using Nuprl_ ([pdf](http://www.cs.uni-potsdam.de/ti/kreitz/PDF/05jal-nuprl.pdf))
 {#NuPRL05}

* [[Robert Constable]], _The Triumph of Types: Creating a Logic of Computational Reality_ ([[ConstableTriumphOfTypes.pdf:file]])
 {#Constable}

Discussion in the sense of [[modal type theory]] where computation is exhibited by a [[monad (in computer science)]] is in

* Matt Fairtlough, [[Michael Mendler]], _Propositional Lax Logic_,  Volume 137, Issue 1, 25 August 1997, Pages 1–33 ([pdf](http://www.gdi.uni-bamberg.de/personnel/mendler/research/Papers/pll.pdf))
 {#FairtloughMendler97}

* {#BentonBiermanDePaiva93} [[Nick Benton]], [[Gavin Bierman]], [[Valeria de Paiva]], *Computational Types from a Logical Perspective*, Journal of Functional Programming **8** 2  (1998) 177-193 [[doi:10.1017/S0956796898002998](https://doi.org/10.1017/S0956796898002998), [web](http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.36.5778)]

* Matt Fairtlough, [[Michael Mendler]], _On the Logical Content of Computational Type Theory: A Solution to Curry's Problem_, Types for Proofs and Programs,
Lecture Notes in Computer Science Volume 2277, 2002, pp 63-78 ([[MendlerComputationalTypeTheory.pdf:file]])
 {#FairtloughMendler02}

*  Tristan Crolard, _Monadic reflection in lax logic_ [pdf](http://cedric.cnam.fr/cpr/crolard/publications/reflection.pdf)
 {#Crolard}

See also

* Fairouz Kamareddine, Twan Laan and [[Robert Constable]] (2012)
_Russell's Orders in Kripke's Theory of Truth and Computational Type Theory_. In Dov. M Gabbay, Akihiro Kanamori and John Woods, (editors) _Sets and Extensions in the Twentieth Century_, 6, HHL, : San Diego: North Holland, 2012, pp. 801-845.

[[!redirects computational type theories]]

[[!redirects propositional lax logic]]

[[!redirects computational logic]]


computer science

+-- {: .rightHandSide}
+-- {: .toc .clickDown tabindex="0"}
### Context
#### Computing
+-- {: .hide}
[[!include constructivism - contents]]
=--
#### Type theory
+-- {: .hide}
[[!include type theory - contents]]
=--
#### Category theory
+-- {: .hide}
[[!include category theory - contents]]
=--
=--
=--

# Contents
* table of contents
{: toc}

## Idea

Computer science studies [[programs]] and languages to express them, as well as the operation, application and design of computers and computer networks. This includes aspects relating to [[models for concurrency|concurrency]], [[semantics]] of [[programming languages]], and aspects of [[mathematical logic]].

From the [[nPOV]], computer science is part of the [[computational trinity]], together with [[logic]] and [[category theory]].

## Related pages

* [[data]], [[data type]]

* [[computing]]

* [[programming language]],

  [[quantum programming language]]

* [[type theory]],

  [[linear type theory]]

* [[category theory]], [[categorical algebra]]

* [[monad in computer science]]

* [[discrete mathematics]]

* [[list of mathematics software]]

* [[denotational semantics]]

* [[domain theory]]

* [[equilogical space]];

* [[event structures]];

* [[models for concurrency]];

* [[operational semantics]]

* [[Petri net]]

* [[polymorphism]]

* [[transition systems]]

* [[sugaring]]

## Some (theoretical) computer scientists

* [[Samson Abramsky]];

* [[Andrea Asperti]];

* [[Andrej Bauer]];

* [[Lars Birkedal]];

* [[Eric Goubault]];

* [[Joseph Goguen]];

* [[Eugenio Moggi]];

* [[Prakash Panangaden]];

* [[Gordon Plotkin]]

* [[John Power]];

* [[Vaughan Pratt]];

* [[Dana Scott]];

## References

On [[foundations]] of programming languages:

* {#Harper} [[Robert Harper]], _Practical Foundations for Programming Languages_ ([web](http://www.cs.cmu.edu/~rwh/plbook/book.pdf))

On [[category theory]] in [[computer science]]/[[programming languages]] (such as for [[monads in computer science]]):

* [[Bartosz Milewski]] (compiled by Igal Tabachnik), *Category Theory for Programmers*, Blurb (2019) [[pdf](https://github.com/hmemcpy/milewski-ctfp-pdf/releases/download/v1.3.0/category-theory-for-programmers.pdf), [github](https://github.com/hmemcpy/milewski-ctfp-pdf), [webpage](https://bartoszmilewski.com/2014/10/28/category-theory-for-programmers-the-preface/), [ISBN:9780464243878](https://www.blurb.com/b/9621951-category-theory-for-programmers-new-edition-hardco)]

See also:

* theoretical computer science at [cstheory.stackexchange.com](http://cstheory.stackexchange.com)

A suggestion for a classification of structures arising in computer science is in

* [[John Power]], _[Why tricategories?](http://www.lfcs.inf.ed.ac.uk/reports/94/ECS-LFCS-94-289/)_

An old discussion on the n-cat café can be found [here](http://golem.ph.utexas.edu/category/2006/11/a_categorical_manifesto.html).  The discussion revolved around

*  [[Joseph Goguen]], _A categorical manifesto_,  Mathematical Structures in Computer Science 1 (1991), 49-67.

for which also see [[A Categorical Manifesto]].

Other aspects are treated in

* [[Michael Barr]], [[Charles Wells]], _[Category Theory for Computing Science](http://www.cwru.edu/artsci/math/wells/pub/ctcs.html)_.

* [[Andrea Asperti]], [[Guiseppe Longo]], _Categories, types and structures, An introduction to category theory for the working computer scientist_, M.I.T. Press (out of print, but available  [online](http://www.cs.unibo.it/~asperti/PAPERS/book.pdf).

[Logical Methods in Computer Science](http://www.lmcs-online.org/ojs/about.php) is an open access journal for papers on Theoretical Computer Science and other areas of Computer Science in which logical methods play a large part.

category: computer science, software

[[!redirects computer science]]
[[!redirects programming theory]]


conal manifold

+-- {: .rightHandSide}
+-- {: .toc .clickDown tabindex="0"}
###Context###
#### Differential geometry
+--{: .hide}
[[!include synthetic differential geometry - contents]]
=--
=--
=--

#Contents#
* table of contents
{:toc}

## Idea

The concept of _conal manifold_ ([Khavkine 12](#Khavkine12)) is a  generalization of the concept of a [[time orientation|time oriented]] [[Lorentzian manifold]] to the case where a [[differential operator]] on some [[vector bundle]] over the manifold induces its own adapted analogs of [[future cones]] and [[past cones]] at each point.

## Related concepts

* [[Green hyperbolic partial differential equation]]

## References

* {#Khavkine12} [[Igor Khavkine]], _Characteristics, Conal Geometry and Causality in Locally Covariant Field Theory_ ([arXiv:1211.1914](https://arxiv.org/abs/1211.1914))

[[!redirects conal manifolds]]

[[!redirects conal causal structure]]
[[!redirects conal causal structures]]


concatenation

For concatenation:

* of [[lists]] see at *[[free monoid]]*

* of [[edges]] or [[paths]] see at *[[path category]]*.

## Related concepts

* [[composition]]

[[!redirects concatenations]]

category: disambiguation


concept with an attitude

+-- {: .rightHandSide}
+-- {: .toc .clickDown tabindex="0"}
### Context
#### Mathematics
+-- {: .hide}
[[!include mathematicscontents]]
=--
=--
=--

#Contents#
* table of contents
{:toc}

## Idea

In [[mathematics]] it happens at times that one and the same concept is given two different names to indicate a specific perspective, a certain attitude as to what to do with such objects.

## Examples

### Series

A _[[series]]_ is just a [[sequence]].

But one says _series_ instead of _sequence_ when one is interested in studying its partial [[sums]]. In particular it means something different to say that a series _converges_ than to say that a sequence converges. The series $n\mapsto a_n$ converges if and only if the sequence $n\mapsto \sum_{i\lt n}a_i$ converges.

### Lists
 {#Lists}

A *[[list]]* is just a [[tuple]], but calling it a list indicates that one is interested in the operation of [[concatenation]] of lists.

### Presheaves and copresheaves

A _[[presheaf]]_ is just a [[contravariant functor|contravariant]] [[functor]], analogous to how a [[copresheaf]] is just a [[covariant functor|covariant]] [[functor]].

(More specifically, an "$S$-valued presheaf" is a contravariant functor with [[codomain]] a given [[category]] $S$; in modern [[category theory]] the "default" value of $S$ here is usually [[Set]].)

But one says _presheaf_ instead of (set-valued) _contravariant functor_ when one is interested in studying its [[sheafification]], or even if one is just interested in regarding the [[category of functors]] with its structure of a [[topos]]: the [[presheaf topos]].

### Sieves
 {#Sieve}

A *[[sieve]]* is just a [[subfunctor]] of a [[representable functor]], but calling them "sieves" serves to indicate that (mostly) one is interested in regarding these as *[[covers]]* of a [[Grothendieck topology]] or [[coverage]], making the ambient [[category]] into a [[site]].

### Young diagrams

A *[[Young diagram]]* is a [[partition]] that wants to become a [[Young tableau]].

### Quivers

A _[[quiver]]_ is just a [[directed graph]] ([[pseudograph]], to be explicit).

But one says _quiver_ instead of _directed graph_ when one is interested in studying _[[quiver representations]]_: [[functors]] from the [[free category]] on that graph to the [[category]] of [[finite-dimensional vector spaces]].

### Causal set
 {#CausalSet}

A *[[causal set]]* is just a [[partially ordered set]].

But one says *causal set* in order to indicate that one means to think of the [[elements]] of the [[poset]] as [[spacetime]] [[events]] and of the order-[[relation]] as given by [[causality]].

### Persistence modules
 {#PersistenceModule}

A *[[persistence module]]* is just a [[sequence]] of [[linear maps]] (or a [[zigzag]] of these, for [[zigzag persistence modules]]), but one says *persistence module* to indicate that one is interested in the [[persistence diagrams]] encoding this sequence.

### Fields (physics)
 {#FieldsInPhysics}

A _[[field (in physics)]]_ is just a [[section]] of a [[fiber bundle]].

But in [[mathematical physics]] one says _field_ instead of _section of a fiber bundle_ to indicate that one is going to consider a [[Lagrangian density]] on the corresponding [[jet bundle]] of the given [[fiber bundle]] (then called the _[[field bundle]]_ ) and study the induced [[classical field theory|classical]] or [[quantum field theory]].

### Random variables and estimators

Both [[random variable|random variables]] and estimators are almost always just [[real number|real valued]] [[measurable function| measurable maps]]. Though sometimes the former takes more general values in some [[Polish space]] instead.

But in [[probability theory]] a random variable is interpreted as a map from a _sample space_ to a _space of [[state|states]]_ which represents the observed outcomes or outcomes predicted by some model.
In contrast in [[statistics]] an estimator guesses or estimates a certain parameter associated to some random model.

### Tensor networks
  {#TensorNetworks}

A _[[tensor network]]_ is just a [[string diagram]] (i.e. [[Penrose notation]]).

But in discussion of the [[AdS/CFT correspondence in solid state physics]] one says _[[tensor network]]_ when regarding [[string diagrams]] as encoding [[quantum states]] in the [[Hilbert space]] which is the [[tensor product]] of all the external [[vertices]].

### Dynamical systems

A _[[dynamical system]]_ is just a set $S$ with a [[group]] [[action]] $f \colon G \times S \to S$.

However, in dynamical systems theory, one takes the group $G$ to represent _time_, the set $S$ to represent the _space_ of the dynamical system, and the group action $f$ to represent the _laws of motion_ of this dynamical system.

### Abstract rewriting systems
 {#AbstractRewritingSystems}

An *[[abstract re-writing system]]* is just a [[relation]] on some [[set]] $X$.

However, calling this relation an abstract rewriting system indicates that one is interested in studying the behaviour of chains of related elements $x \to x_1 \to x_2 \to \cdots$ (thought of as successive stages of [[rewriting]] $x$), for instance to see if they are [[confluent category|confluent]].

### Curves

A _[[curve]]_ in $n$-dimensional [[Cartesian space]] is just a [[smooth function]] $r:\mathbb{R} \to \mathbb{R}^n$.

However, in [[differential geometry]], one takes the function $r$ as defining a parameterization of a smooth curve.

### Flows of time

A _flow of time_ is just a set endowed with a [[strict partial order]].

However, in [[temporal logic]], a (point-based) [[model]] is a pair consisting of a flow of time and a valuation.

## Further examples
 {#FurtherExamples}

### Module objects
 {#ModuleObjects}

A [[module object]] in a [[monoidal category]] $C$ is just an [[action object]] over a [[monoid object]] in $C$.

Typically one says "module object" to amplify a [[linear algebra|linear algebraic]] nature or intended meaning of such actions (which, for instance, would be lacking for a [[group action]] in [[Set]], but be present for an action of the corresponding [[group algebra]] in [[Vect]]).

### Subsets and predicates

In some [[foundations of mathematics]], a _[[subset]]_ of a set $S$ is just a _[[predicate]]_, a function with domain $S$ and codomain the class of [[truth values]] $\Omega$.

\linebreak
\linebreak

[[!redirects concepts with an attitude]]


conceptual completeness

+-- {: .rightHandSide}
+-- {: .toc .clickDown tabindex="0"}
### Context
#### Model theory
+-- {: .hide}
[[!include model theory - contents]]
=--
=--
=--

#Contents#
* table of contents
{:toc}

## Idea
In any context it is interesting to ask when a contravariant hom-functor $\operatorname{Hom}(-,X)$ reflects isomorphisms, i.e. if homming into an object is enough to distinguish isomorphism classes. In a $2$-categorical setting, the analogous question is if homming into an object reflects equivalences.

## Definition

_Conceptual completeness_ refers to the result of Makkai and Reyes that in the $2$-category $\mathbf{Pretop}$ of [[pretopos]]es, homming into the pretopos [[Set]] $\operatorname{Hom}_{\mathbf{Pretop}}(-,\mathbf{Set}) : \mathbf{Pretop} \to \mathbf{Cat}$ reflects equivalences.

That is, if $f : T_1 \to T_2$ is a pretopos morphism and $- \circ f : \operatorname{Hom}_{\mathbf{Pretop}}(T_2, \mathbf{Set}) \to \operatorname{Hom}_{\mathbf{Pretop}}(T_1,\mathbf{Set})$ is an equivalence, then $f$ was also. Pretopos morphisms are just [[interpretation|interpretations]] of theories; a pretopos morphism into [[Set]] is an interpretion of the source theory into the [[internal logic]] of [[Set]], and is therefore a [[model]].

Since pretoposes are just [[exact completion|effectivizations]] of [[syntactic categories]] of [[first-order theories]], this means: if a functor between the categories of models of $T_1$ and $T_2$ is an equivalence and is induced by an interpretation $T_1 \to T_2$, then that interpretation must be part of a bi-interpretation, i.e. $T_1$ and $T_2$ are equivalent as syntactic categories via pretopos morphisms.

[[Makkai duality]] states that $\operatorname{Hom}_{\mathbf{Pretop}}(-,X)$ factors through the $2$-category of [[ultracategories]] (categories equipped with [[ultraproduct functors]]) (which also contains $\mathbf{Set}$) and that $\operatorname{Hom}_{\mathbf{Pretop}}(-,\mathbf{Set})$ is left-adjoint to $\mathbf{Hom}_{\mathbf{Ult}}(-,\mathbf{Set})$.

Furthermore, the unit of this adjunction is an equivalence, so that a pretopos $T$ is equivalent to the category of ultrafunctors (ultraproduct-preserving functors) from $\mathbf{Mod}(T)$ to $\mathbf{Set}$, i.e. any ultrafunctor $\mathbf{Mod}(T) \to \mathbf{Set}$ is induced by taking points in models of some definable set $X \in T$.

This means: when viewed as a functor to the $2$-category of ultracategories instead, $\operatorname{Hom}_{\mathbf{Pretop}}(-,\mathbf{Set})$ creates equivalences also, so that the pretopos/theory $T$ can be reconstructed up to bi-interpretability from its ultracategory of models. This is what is known as _strong conceptual completeness_.

##Remarks
In his AMS monograph on duality and definability in first-order logic, Makkai refined the above reconstruction result to work with just the (ultra) [[core]] of the ultracategory of models of $T$. Awodey and his students replace the ultracategory structure on this groupoid with a related topology instead; this is the "spectral groupoid" which forms the basis of the [[logical scheme]] approach.

## Examples
(Maybe I'll add some explicit computations later.)

## Related concepts

- [[ultraproduct]]
- [[Makkai duality]]
- [[Stone duality]]

##References

* [[Michael Makkai]] and [[Gonzalo Reyes]], _First order categorical logic: Model-theoretical methods in the theory of topoi and related categories_, Springer-Verlag, 1977.

* [[Michael Makkai]], _Strong Conceptual Completeness for First-Order Logic_ , APAL **40** (1988) pp.167-215.  (freely available online)

* [[Peter Johnstone]], _[[Sketches of an Elephant]] vol. II_ , Oxford UP 2002. (sec. D3.5, pp.931-939)

* {#Lurie} [[Jacob Lurie]], _Ultracategories_, ([pdf](http://www.math.harvard.edu/~lurie/papers/Conceptual.pdf))

An approach which reframes conceptual completeness in terms of [[logical schemes]] is adopted in section 4.4 of

* [[Spencer Breiner]], _Scheme representation for first-order logic_, ([arXiv:1402.2600](http://arxiv.org/abs/1402.2600))

For the $(\infty, 1)$-analog of conceptual completeness, see section A.9 of

* [[Jacob Lurie]], [[Spectral Algebraic Geometry]]

[[!redirects strong conceptual completeness]]