Jump to content

Computation: Difference between revisions

From Mathepedia, the mathematical encyclopedia
Created page (draft)
 
m Computability and its limits: Added TeX support for some functions
 
(4 intermediate revisions by 2 users not shown)
Line 1: Line 1:
'''Computation''' is the execution of a finite sequence of well-defined operations in order to produce a result. In mathematics, the term refers both to the practical carrying out of algorithms and to the abstract study of what can be computed, by what means, and with what resources.
'''Computation''' is the execution of a finite sequence of well-defined operations in order to produce a result. In mathematics, the term refers both to the practical carrying out of algorithms and to the abstract study of what can be computed, by what means, and with what resources.


The modern study of computation lies at the intersection of [[mathematics]], [[logic]], and [[computer science]]. It includes formal models of algorithms, the limits of computability, the analysis of time and memory requirements, and the use of computers in mathematical research. Computation also plays an important role in practice, where large-scale search, symbolic manipulation, numerical methods, and formal verification are used to investigate conjectures and certify proofs.
The modern study of computation lies at the intersection of [[mathematics]], [[logic]], and [[computer science]]. It includes formal models of algorithms, the limits of computability, the analysis of time and memory requirements, and the use of computers in mathematical research. In mathematics and theoretical computer science, computation may be studied both as an abstract notion of effective procedure and as a physical process carried out by machines. Computation also plays an important role in practice, where large-scale search, symbolic manipulation, numerical methods, visualization, and formal verification are used to investigate conjectures and certify proofs.


== Theory ==
== Theory ==


=== Models of computation ===
=== Models of computation ===
A central aim of the theory of computation is to describe algorithms in a mathematically precise way. Several formal models are used for this purpose.
A central aim of the theory of computation is to describe algorithms in a mathematically precise way. To do this, mathematicians and computer scientists use formal models of computation: simplified abstract systems that capture what it means to follow a procedure mechanically.


A [[Turing Machine|Turing machine]], introduced by [[W:Alan Turing|Alan Turing]] in 1936, is the standard abstract model of general computation. It consists of an infinite tape, a read/write head, and a finite set of states governed by a transition function. Despite its simplicity, a Turing machine can simulate any algorithm that is ordinarily regarded as effective. It therefore serves as the benchmark against which other notions of computability are measured.
The best-known model is the [[Turing Machine|Turing machine]], introduced by [[W:Alan Turing|Alan Turing]] in 1936. A Turing machine consists of a tape, a read/write head, and a finite set of states governed by a transition function. Despite its simplicity, it can simulate any algorithm that is ordinarily regarded as effective, and so it became the standard model of general computation. Other equivalent formalisms were developed at about the same time, including the [[Lambda Calculus|lambda calculus]] and recursive-function formalisms. The broad agreement among these formalisms underlies the [[Church-Turing thesis]], according to which every effectively calculable procedure can be captured by one of these equivalent models.


A system or language that can simulate an arbitrary Turing machine is called [[Turing Complete|Turing complete]]. Many systems not originally designed for general-purpose computation turn out to be Turing complete, including [[W:Conway's Game of Life|Conway's Game of Life]], [[W:CSS|CSS]] with user interaction, and [[W:Magic: The Gathering|Magic: The Gathering]].
A system or language that can simulate an arbitrary Turing machine is called [[Turing Complete|Turing complete]]. Many systems not originally designed for general-purpose programming turn out to be Turing complete, such as [[W:Conway's Game of Life|Conway's Game of Life]].


A [[Finite-State Machine|finite-state machine]] is a weaker model of computation: it has only finitely many states and no unbounded external memory. Finite-state machines recognise exactly the [[Regular Language|regular languages]] and are fundamental in automata theory, compiler construction, network protocols, and digital circuit design. Related models include the [[Pushdown Automaton|pushdown automaton]] and the wider [[Chomsky Hierarchy|Chomsky hierarchy]] of formal languages.
Not all models are equally powerful. A [[Finite-State Machine|finite-state machine]] is a weaker model with only finitely many states and no unbounded external memory. Finite-state machines recognize exactly the [[Regular Language|regular languages]] and are fundamental in automata theory, compiler construction, network protocols, and digital circuit design. More powerful models, such as the [[Pushdown Automaton|pushdown automaton]], recognize larger classes of languages and form part of the [[Chomsky Hierarchy|Chomsky hierarchy]]. More generally, computation has been studied through state-based models such as automata and Turing machines, functional models such as the lambda calculus, logical models, and concurrent models.
 
Another foundational model is the [[Lambda Calculus|lambda calculus]], which describes computation in terms of function abstraction and application rather than machine states and tape symbols. It is equivalent in power to Turing machines and plays a central role in logic, type theory, and the semantics of programming languages.


=== Computability and its limits ===
=== Computability and its limits ===
Once computation is formalised, one can ask which problems are solvable in principle. This leads to [[computability theory]], which studies decidable and undecidable problems.
Once computation is formalized, one can ask which problems are solvable in principle. This leads to [[computability theory]], which studies decidable and undecidable problems.


The central negative result is the [[Halting Problem|halting problem]]: there is no general algorithm that determines, for every program and input, whether the program eventually halts. This shows that there are well-posed mathematical questions that no algorithm can answer in complete generality.
The central negative result is the [[Halting Problem|halting problem]]: there is no general algorithm that determines, for every program and input, whether the program eventually halts. This shows that there are well-posed mathematical questions that no algorithm can answer in complete generality.


A classical illustration is the [[Busy Beaver]] function, usually written BB(n), which asks for the maximum number of 1s that can be printed by any halting n-state Turing machine on a blank tape. The function is uncomputable and grows faster than any computable function. Its exact values are known only for small n.
A classical illustration is the [[Busy Beaver]] function, usually written <math>\mathrm{BB}(n)</math>, which asks for the maximum number of 1s that can be printed by any halting <math>n</math>-state Turing machine on a blank tape. The function is uncomputable and grows faster than any computable function. Its exact values are known only for small <math>n</math>.
{| class="wikitable"
{| class="wikitable"
|+Known values of BB(n)
|+Known values of <math>\mathrm{BB}(n)</math>
!n
!<math>n</math>
!BB(n)
!<math>\mathrm{BB}(n)</math>
!Year determined
!Year determined
|-
|-
Line 49: Line 47:
|-
|-
|6
|6
|at least 10^^15
|unknown
|lower bound
|lower bounds only
|}
|}
The determination of BB(5) in 2024 was itself a notable feat of large-scale computation and formal verification. For n greater than or equal to 6, only lower bounds are known, and the values quickly exceed most familiar systems of notation.
In 2024 the five-state, two-symbol case was settled completely by the bbchallenge collaboration. In the related step-count version of the problem, the corresponding value is <math>S(5) = 47,176,870</math>. For 6 states, only enormous lower bounds are known.  


See also [[Uncomputability]] and [[Hypercomputation]].
See also [[Uncomputability]] and [[Hypercomputation]].
Line 61: Line 59:
This leads to complexity classes such as [[P vs NP|P]], [[P vs NP|NP]], and many others. A major theme of theoretical computer science is to determine which problems admit efficient algorithms and which appear to require exponential or worse resources.
This leads to complexity classes such as [[P vs NP|P]], [[P vs NP|NP]], and many others. A major theme of theoretical computer science is to determine which problems admit efficient algorithms and which appear to require exponential or worse resources.


A central open problem is [[P vs NP|whether P equals NP]]. Informally, the question asks whether every problem whose proposed solutions can be verified efficiently can also be solved efficiently. It is one of the [[W:Millennium Prize Problems|Millennium Prize Problems]] and has major consequences for optimisation, cryptography, logic, and algorithm design.
A central open problem is [[P vs NP|whether P equals NP]]. Informally, the question asks whether every problem whose proposed solutions can be verified efficiently can also be solved efficiently. It is one of the [[W:Millennium Prize Problems|Millennium Prize Problems]] and has major consequences for optimization, cryptography, logic, and algorithm design.


== Mathematical practice ==
== Mathematical practice ==
Computation is not only a subject of study but also a method of doing mathematics. It is used to test conjectures, search large finite spaces, generate data, verify exceptional cases, and check formal proofs.
These abstract notions of computability and complexity also shape how computation is used in actual mathematical work. Computation is used to test conjectures, search large finite spaces, generate data, visualize structure, verify exceptional cases, and check formal proofs.


Computer-assisted mathematics takes several forms, including experimental computation, exhaustive search, symbolic and numerical computation, distributed computation, and formal verification. In some theorems the computer plays an auxiliary role; in others, the computation is an essential part of the proof.
Computer-assisted mathematics takes several forms, including experimental computation, exhaustive search, symbolic and numerical computation, distributed computation, visualization, and formal verification. In some theorems the computer plays an auxiliary role; in others, the computation is an essential part of the proof.


=== Examples in mathematics ===
=== Roles of computation in mathematics ===
Computation has entered mathematics in several distinct ways.
Computation has entered mathematics in several distinct ways.


; [[Four Colour Theorem]]
; [[Four Colour Theorem]]
: The Four Colour Theorem is the classic example of computer-assisted proof. In 1976, [[W:Kenneth Appel|Kenneth Appel]] and [[W:Wolfgang Haken|Wolfgang Haken]] showed that every planar map can be coloured with four colours by combining a general mathematical argument with a large computer check of 1,936 unavoidable configurations. Its importance for computation lies not only in the theorem itself, but in the way it established exhaustive machine case-analysis as a legitimate mathematical method. The proof was later simplified by Robertson, Sanders, Seymour, and Thomas in 1997, and formally verified in [[W:Coq|Coq]] by [[W:Georges Gonthier|Georges Gonthier]] in 2005.
: The Four Colour Theorem is the classic example of computer-assisted proof. In 1976, [[W:Kenneth Appel|Kenneth Appel]] and [[W:Wolfgang Haken|Wolfgang Haken]] proved that every planar map can be colored with four colors by combining a general mathematical argument with discharging and a large computer check of thousands of reducible configurations. Its importance for computation lies not only in the theorem itself, but in the way it established exhaustive machine case analysis as a legitimate mathematical method. The proof was later simplified by Robertson, Sanders, Seymour, and Thomas in 1997, and formalized in [[W:Coq|Coq]] by [[W:Georges Gonthier|Georges Gonthier]] in 2005.


; God's number
; God's number for the [[W:Rubik's Cube|Rubik's Cube]]
: For the [[W:Rubik's Cube|Rubik's Cube]], God's number is the minimum number of moves sufficient to solve any position in the half-turn metric. In 2010, Tomas Rokicki, Herbert Kociemba, Morley Davidson, and John Dethridge proved that God's number is 20. Here computation entered as large-scale search through an enormous state space: all 43,252,003,274,489,856,000 positions were handled by symmetry reduction, decomposition into roughly 55.88 billion cosets, and about 35 CPU-years of donated time on [[W:Google|Google]]'s infrastructure.
: For the Rubik's Cube, God's number is the minimum number of moves sufficient to solve any position in the half-turn metric. In 2010, Tomas Rokicki, Herbert Kociemba, Morley Davidson, and John Dethridge proved that God's number is 20. Here computation entered as large-scale search through an enormous state space: all cube positions were handled by symmetry reduction, decomposition into cosets, and about 35 CPU-years of donated time on [[W:Google|Google]]'s infrastructure.


; GIMPS and [[Mersenne Prime|Mersenne primes]]
; GIMPS and [[Mersenne Prime|Mersenne primes]]
: The Great Internet Mersenne Prime Search (GIMPS), founded in 1996, illustrates distributed computation in number theory. It searches for primes of the form 2<sup>p</sup> - 1 using the [[W:Lucas-Lehmer primality test|Lucas-Lehmer test]], with volunteers donating CPU and GPU time. GIMPS has discovered the last 18 known Mersenne primes. The current record is the 52nd known Mersenne prime,
: The Great Internet Mersenne Prime Search (GIMPS), founded in 1996, illustrates distributed computation in number theory. It searches for primes of the form <math>2^p-1</math> using the [[W:Lucas-Lehmer primality test|Lucas-Lehmer test]], with volunteers donating compute time. GIMPS has discovered the last 18 known Mersenne primes. The current record is the 52nd known Mersenne prime,
: 2<sup>136,279,841</sup> - 1,
: <math>2^{136,279,841}-1</math>,
: discovered on 12 October 2024 by Luke Durant. It has 41,024,320 decimal digits, more than 16 million digits larger than the previous record, and was the first record Mersenne prime found using GPUs, specifically NVIDIA A100 and H100 instances across 24 data centres in 17 countries. By a theorem known to [[W:Euclid|Euclid]], every Mersenne prime gives rise to an [[Perfect Number|even perfect number]] of the form 2<sup>p-1</sup>(2<sup>p</sup> - 1). It remains unknown whether any odd perfect numbers exist.
: discovered on 12 October 2024 by Luke Durant. It has 41,024,320 decimal digits and was the first record Mersenne prime found using GPUs. By a theorem known to [[W:Euclid|Euclid]], every Mersenne prime gives rise to an [[Perfect Number|even perfect number]] of the form <math>2^{p-1}(2^p-1)</math>. It remains unknown whether any odd perfect numbers exist.


; [[W:Boolean Pythagorean triples problem|Boolean Pythagorean triples problem]]
; [[W:Boolean Pythagorean triples problem|Boolean Pythagorean triples problem]]
: This problem illustrates the use of [[W:SAT solver|SAT solving]], in which a mathematical question is translated into a large Boolean satisfiability instance. In 2016, Marijn Heule, Oliver Kullmann, and Victor Marek showed that the positive integers can be coloured red and blue with no monochromatic Pythagorean triple up to 7,824, but not up to 7,825. The resulting proof certificate was 200 terabytes in size, making it at the time the largest mathematical proof ever produced.
: This problem illustrates the use of [[W:SAT solver|SAT solving]], in which a mathematical question is translated into a large Boolean satisfiability instance. In 2016, Marijn Heule, Oliver Kullmann, and Victor Marek showed that the positive integers can be colored red and blue with no monochromatic Pythagorean triple up to 7,824, but not up to 7,825. The resulting proof certificate was 200 terabytes in size, making it at the time the largest mathematical proof ever produced.
 
; Fractals and visualization
: Computation can also serve as a tool of visualization. Objects such as the [[W:Mandelbrot set|Mandelbrot set]] are defined by simple iterative rules, but their structure is explored by computing many iterations across a grid of points and rendering the result graphically. In such cases computation does not merely check a theorem or search a space; it reveals patterns, self-similarity, and parameter dependence that are difficult to grasp from formulas alone.


; [[Formal Verification|Formal verification]]
; [[Formal Verification|Formal verification]]
: Formal verification represents a different use of computation again. Here the computer is not primarily searching for a result, but checking that every logical step of a proof is valid. A growing number of major theorems have been formally verified in proof assistants such as Coq, Isabelle, HOL Light, and Lean.
: Formal verification represents a different use of computation again. Here the computer is not primarily searching for a result, but checking that every logical step of a proof is valid. A growing number of major theorems have been formalized in proof assistants such as Coq, Isabelle, HOL Light, and Lean.


{| class="wikitable"
{| class="wikitable"
Line 110: Line 111:
|2014
|2014
|-
|-
|[[W:Sphere packing|Sphere packing in dimension 8]]
|[[W:Sphere packing|Sphere packing in dimensions 8 and 24]]
|[[W:Lean (proof assistant)|Lean]]
|[[W:Lean (proof assistant)|Lean]]
|2026
|2026
|}
|}
In February 2026, Maryna Viazovska's proof that the E<sub>8</sub> lattice gives the densest sphere packing in 8 dimensions was formally verified in [[W:Lean (proof assistant)|Lean]], with assistance from the AI auto-formalisation agent ''Gauss'' developed by Math, Inc. The 24-dimensional case for the Leech lattice followed two weeks later, with the two projects together amounting to more than 200,000 lines of Lean code.
In 2026, the sphere-packing results in dimensions 8 and 24 were formalized in Lean in a project that grew to about 200,000 lines of code, with AI tools assisting the process.


=== Other computational evidence ===
=== Other computational evidence ===
Line 123: Line 124:
!Notes
!Notes
|-
|-
|[[W:Catalan's conjecture|Catalan's conjecture]] computations
|Computation of pi to 314 trillion digits
|2000s
|2025
|Exhaustive verification for small cases preceding Mihailescu's proof
|A record-sized numerical computation that also serves as a stress test for algorithms, storage, and hardware
|-
|Computation of pi to trillions of digits
|Ongoing
|Current record exceeds 202 trillion digits; the [[W:Bailey-Borwein-Plouffe formula|BBP formula]] allows extraction of individual hexadecimal digits
|-
|-
|[[W:Collatz conjecture|Collatz conjecture]] verification
|[[W:Collatz conjecture|Collatz conjecture]] verification
|Ongoing
|2025
|Verified for all starting values up to roughly 10<sup>20</sup>
|Verified for all starting values up to <math>2^{71}</math>
|-
|-
|[[W:Goldbach's conjecture|Goldbach's conjecture]] verification
|[[W:Goldbach's conjecture|Goldbach's conjecture]] verification
|Ongoing
|2014
|Verified for all even numbers up to 4 x 10<sup>18</sup>
|Verified for all even numbers up to <math>4\times 10^{18}</math>
|-
|-
|[[W:Birch and Swinnerton-Dyer conjecture|Birch and Swinnerton-Dyer conjecture]] data
|[[W:Birch and Swinnerton-Dyer conjecture|Birch and Swinnerton-Dyer conjecture]] data
Line 144: Line 141:
|}
|}


== High-performance computing ==
== Hardware foundations ==
'''High-performance computing''', or HPC, is the use of aggregated computational resources to achieve performance far beyond that of a single workstation. It underpins many of the large calculations described above.
Conventional digital computers represent information in binary, encoding data as [[W:Bit|bits]] with values 0 and 1. At this level, computation is described by [[W:Boolean algebra|Boolean algebra]], in which operations such as AND, OR, and NOT correspond to logical combination and negation. These operations are implemented physically by [[W:Logic gate|logic gates]]. A set of gates is said to be functionally complete if every Boolean function can be built from it; NAND alone suffices, and so does NOR alone. This connection between symbolic logic and circuit design is one of the central links between abstract computation and physical machinery.


Modern HPC systems exploit parallelism at several levels:
Logic gates are combined into larger circuits such as adders, multiplexers, registers, and memory cells. Arithmetic, control flow, and storage are all built from compositions of these elementary Boolean operations. In modern computers these circuits are realized using transistors, typically in [[W:CMOS|CMOS]] technology, and organized into processors, memory systems, and input/output devices.


* Multi-core and many-core processors: modern CPUs provide dozens of cores, while GPUs may contain thousands of simpler cores.
Performance depends not only on raw logic speed but also on the movement of data through the [[W:Memory hierarchy|memory hierarchy]] - registers, caches, main memory, and storage. In many practical computations, waiting for data costs more than carrying out the arithmetic itself. For non-classical models of physical computation, see [[Quantum Computing]].
* Clusters and distributed memory: large systems consist of many nodes connected by high-speed interconnects such as [[W:InfiniBand|InfiniBand]]; communication is typically handled through [[W:Message Passing Interface|MPI]].
* Accelerators: GPUs, [[W:Field-programmable gate array|FPGAs]], and custom ASICs such as TPUs are used for workloads including linear algebra, [[W:Fast Fourier transform|FFT]], and machine learning.
* Volunteer and distributed computing: projects such as GIMPS, [[W:BOINC|BOINC]], and [[W:Folding@home|Folding@home]] use the idle time of large numbers of consumer machines.


HPC performance is commonly measured in [[W:FLOPS|FLOPS]], or floating-point operations per second. As of the exascale era, leading systems such as [[W:Frontier (supercomputer)|Frontier]] have exceeded 10<sup>18</sup> floating-point operations per second. The [[W:TOP500|TOP500]] list tracks the world's fastest supercomputers.
== Parallel and large-scale computation ==
Many important computations exceed the capacity of a single processor or even a single machine. They are made feasible by [[W:Parallel computing|parallelism]], in which a problem is divided so that many operations can be carried out simultaneously.


Common programming models include [[W:Message Passing Interface|MPI]] for distributed memory, [[W:OpenMP|OpenMP]] for shared memory, and [[W:CUDA|CUDA]], [[W:OpenCL|OpenCL]], and [[W:SYCL|SYCL]] for GPUs and other accelerators. Higher-level languages such as [[W:Chapel (programming language)|Chapel]] and [[W:Julia (programming language)|Julia]] aim to simplify parallel programming.
Parallel computation appears in several forms. A task may be split among many cores in one machine, across many machines in a distributed system, or across large numbers of independent volunteer computers. Some workloads are especially well suited to performing the same operation repeatedly on many data items at once, while others require large search spaces to be divided into many smaller cases that can be checked independently.
 
== Hardware foundations ==
Conventional digital computers reduce computation to operations on [[W:Bit|bits]] implemented by [[W:Logic gate|logic gates]] such as AND, OR, NOT, and NAND. A set of gates is said to be functionally complete if it can express any Boolean function; NAND alone suffices.


These gates are physically realised using [[W:CMOS|CMOS]] transistors. Transistor counts per chip have roughly followed [[W:Moore's law|Moore's law]], rising from about 2,300 in the Intel 4004 in 1971 to more than 200 billion in the largest modern devices. Performance also depends strongly on the [[W:Memory hierarchy|memory hierarchy]] - registers, caches, main memory, and storage - since memory latency often dominates raw arithmetic speed.
At this scale the limiting question is often not just speed but scope: how many cases can be checked, how large a state space can be searched, how many terms or digits can be computed, or how large a numerical range can be tested. This is why large-scale computation is central to exhaustive proofs, record prime searches, simulation, and numerical experimentation.


For non-classical models of physical computation, see [[Quantum Computing]].
Performance is often measured in [[W:FLOPS|FLOPS]] (floating-point operations per second). By 2025, the [[W:TOP500|TOP500]] list included three exascale systems, each capable of exceeding <math>10^{18}</math> floating-point operations per second. In practice, however, successful large-scale computation depends as much on decomposition, communication, and memory access as on peak arithmetic throughput.


== See also ==
== See also ==


* [[Turing Machine]]
* [[Turing Machine]]
* [[Turing Complete|Turing Completeness]]
* [[Church-Turing thesis]]
* [[Turing Complete|Turing completeness]]
* [[Finite-State Machine]]
* [[Finite-State Machine]]
* [[Lambda Calculus]]
* [[Lambda Calculus]]
Line 187: Line 180:
* Rokicki, T.; Kociemba, H.; Davidson, M.; Dethridge, J. (2014). "The diameter of the Rubik's Cube group is twenty". ''SIAM Journal on Discrete Mathematics''. 27 (2): 1082-1105.
* Rokicki, T.; Kociemba, H.; Davidson, M.; Dethridge, J. (2014). "The diameter of the Rubik's Cube group is twenty". ''SIAM Journal on Discrete Mathematics''. 27 (2): 1082-1105.
* Heule, M. J. H.; Kullmann, O.; Marek, V. W. (2016). "Solving and Verifying the Boolean Pythagorean Triples Problem via Cube-and-Conquer". ''SAT 2016''. LNCS 9710: 228-245.
* Heule, M. J. H.; Kullmann, O.; Marek, V. W. (2016). "Solving and Verifying the Boolean Pythagorean Triples Problem via Cube-and-Conquer". ''SAT 2016''. LNCS 9710: 228-245.
* Oliveira e Silva, T.; Herzog, S.; Pardi, S. (2014). "Empirical Verification of the Even Goldbach Conjecture and Computation of Prime Gaps up to 4 x 10<sup>18</sup>". ''Mathematics of Computation''. 83 (288): 2033-2060.
* Barina, D. (2025). "Improved verification limit for the convergence of the Collatz conjecture". ''The Journal of Supercomputing''.
* Great Internet Mersenne Prime Search (2024). "52nd Known Mersenne Prime Discovered".
* Formalising Sphere Packing in Lean / EPFL / Math, Inc. (2026).


== External links ==
== External links ==
Line 193: Line 190:
* [https://cube20.org/ God's Number is 20 - cube20.org]
* [https://cube20.org/ God's Number is 20 - cube20.org]
* [https://bbchallenge.org/ The Busy Beaver Challenge]
* [https://bbchallenge.org/ The Busy Beaver Challenge]
* [https://www.top500.org/ TOP500 Supercomputer Rankings]
* [https://top500.org/ TOP500 Supercomputer Rankings]
* [https://thefundamentaltheor3m.github.io/Sphere-Packing-Lean/ Formalising Sphere Packing in Lean]
* [https://leanprover-community.github.io/ Lean Prover Community]
* [https://leanprover-community.github.io/ Lean Prover Community]
* [https://www.scottaaronson.com/blog/ Scott Aaronson's Blog - Shtetl-Optimized]

Latest revision as of 14:51, 25 March 2026

Computation is the execution of a finite sequence of well-defined operations in order to produce a result. In mathematics, the term refers both to the practical carrying out of algorithms and to the abstract study of what can be computed, by what means, and with what resources.

The modern study of computation lies at the intersection of mathematics, logic, and computer science. It includes formal models of algorithms, the limits of computability, the analysis of time and memory requirements, and the use of computers in mathematical research. In mathematics and theoretical computer science, computation may be studied both as an abstract notion of effective procedure and as a physical process carried out by machines. Computation also plays an important role in practice, where large-scale search, symbolic manipulation, numerical methods, visualization, and formal verification are used to investigate conjectures and certify proofs.

Theory

Models of computation

A central aim of the theory of computation is to describe algorithms in a mathematically precise way. To do this, mathematicians and computer scientists use formal models of computation: simplified abstract systems that capture what it means to follow a procedure mechanically.

The best-known model is the Turing machine, introduced by Alan Turing in 1936. A Turing machine consists of a tape, a read/write head, and a finite set of states governed by a transition function. Despite its simplicity, it can simulate any algorithm that is ordinarily regarded as effective, and so it became the standard model of general computation. Other equivalent formalisms were developed at about the same time, including the lambda calculus and recursive-function formalisms. The broad agreement among these formalisms underlies the Church-Turing thesis, according to which every effectively calculable procedure can be captured by one of these equivalent models.

A system or language that can simulate an arbitrary Turing machine is called Turing complete. Many systems not originally designed for general-purpose programming turn out to be Turing complete, such as Conway's Game of Life.

Not all models are equally powerful. A finite-state machine is a weaker model with only finitely many states and no unbounded external memory. Finite-state machines recognize exactly the regular languages and are fundamental in automata theory, compiler construction, network protocols, and digital circuit design. More powerful models, such as the pushdown automaton, recognize larger classes of languages and form part of the Chomsky hierarchy. More generally, computation has been studied through state-based models such as automata and Turing machines, functional models such as the lambda calculus, logical models, and concurrent models.

Computability and its limits

Once computation is formalized, one can ask which problems are solvable in principle. This leads to computability theory, which studies decidable and undecidable problems.

The central negative result is the halting problem: there is no general algorithm that determines, for every program and input, whether the program eventually halts. This shows that there are well-posed mathematical questions that no algorithm can answer in complete generality.

A classical illustration is the Busy Beaver function, usually written BB(n), which asks for the maximum number of 1s that can be printed by any halting n-state Turing machine on a blank tape. The function is uncomputable and grows faster than any computable function. Its exact values are known only for small n.

Known values of BB(n)
n BB(n) Year determined
1 1 1962
2 4 1962
3 6 1965
4 13 1983
5 4098 2024
6 unknown lower bounds only

In 2024 the five-state, two-symbol case was settled completely by the bbchallenge collaboration. In the related step-count version of the problem, the corresponding value is S(5)=47,176,870. For 6 states, only enormous lower bounds are known.

See also Uncomputability and Hypercomputation.

Complexity

Even when a problem is computable, it may still be infeasible in practice. Computational complexity theory studies the resources required to solve problems, especially time and memory, as functions of input size.

This leads to complexity classes such as P, NP, and many others. A major theme of theoretical computer science is to determine which problems admit efficient algorithms and which appear to require exponential or worse resources.

A central open problem is whether P equals NP. Informally, the question asks whether every problem whose proposed solutions can be verified efficiently can also be solved efficiently. It is one of the Millennium Prize Problems and has major consequences for optimization, cryptography, logic, and algorithm design.

Mathematical practice

These abstract notions of computability and complexity also shape how computation is used in actual mathematical work. Computation is used to test conjectures, search large finite spaces, generate data, visualize structure, verify exceptional cases, and check formal proofs.

Computer-assisted mathematics takes several forms, including experimental computation, exhaustive search, symbolic and numerical computation, distributed computation, visualization, and formal verification. In some theorems the computer plays an auxiliary role; in others, the computation is an essential part of the proof.

Roles of computation in mathematics

Computation has entered mathematics in several distinct ways.

Four Colour Theorem
The Four Colour Theorem is the classic example of computer-assisted proof. In 1976, Kenneth Appel and Wolfgang Haken proved that every planar map can be colored with four colors by combining a general mathematical argument with discharging and a large computer check of thousands of reducible configurations. Its importance for computation lies not only in the theorem itself, but in the way it established exhaustive machine case analysis as a legitimate mathematical method. The proof was later simplified by Robertson, Sanders, Seymour, and Thomas in 1997, and formalized in Coq by Georges Gonthier in 2005.
God's number for the Rubik's Cube
For the Rubik's Cube, God's number is the minimum number of moves sufficient to solve any position in the half-turn metric. In 2010, Tomas Rokicki, Herbert Kociemba, Morley Davidson, and John Dethridge proved that God's number is 20. Here computation entered as large-scale search through an enormous state space: all cube positions were handled by symmetry reduction, decomposition into cosets, and about 35 CPU-years of donated time on Google's infrastructure.
GIMPS and Mersenne primes
The Great Internet Mersenne Prime Search (GIMPS), founded in 1996, illustrates distributed computation in number theory. It searches for primes of the form 2p1 using the Lucas-Lehmer test, with volunteers donating compute time. GIMPS has discovered the last 18 known Mersenne primes. The current record is the 52nd known Mersenne prime,
2136,279,8411,
discovered on 12 October 2024 by Luke Durant. It has 41,024,320 decimal digits and was the first record Mersenne prime found using GPUs. By a theorem known to Euclid, every Mersenne prime gives rise to an even perfect number of the form 2p1(2p1). It remains unknown whether any odd perfect numbers exist.
Boolean Pythagorean triples problem
This problem illustrates the use of SAT solving, in which a mathematical question is translated into a large Boolean satisfiability instance. In 2016, Marijn Heule, Oliver Kullmann, and Victor Marek showed that the positive integers can be colored red and blue with no monochromatic Pythagorean triple up to 7,824, but not up to 7,825. The resulting proof certificate was 200 terabytes in size, making it at the time the largest mathematical proof ever produced.
Fractals and visualization
Computation can also serve as a tool of visualization. Objects such as the Mandelbrot set are defined by simple iterative rules, but their structure is explored by computing many iterations across a grid of points and rendering the result graphically. In such cases computation does not merely check a theorem or search a space; it reveals patterns, self-similarity, and parameter dependence that are difficult to grasp from formulas alone.
Formal verification
Formal verification represents a different use of computation again. Here the computer is not primarily searching for a result, but checking that every logical step of a proof is valid. A growing number of major theorems have been formalized in proof assistants such as Coq, Isabelle, HOL Light, and Lean.
Selected formally verified theorems
Theorem Proof assistant Year
Four Colour Theorem Coq 2005
Prime number theorem Isabelle 2005
Feit-Thompson theorem Coq 2012
Kepler Conjecture (Flyspeck) HOL Light and Isabelle 2014
Sphere packing in dimensions 8 and 24 Lean 2026

In 2026, the sphere-packing results in dimensions 8 and 24 were formalized in Lean in a project that grew to about 200,000 lines of code, with AI tools assisting the process.

Other computational evidence

Many famous conjectures have been tested computationally to enormous bounds. Such evidence can be mathematically significant, but it does not by itself constitute proof.

Result Year Notes
Computation of pi to 314 trillion digits 2025 A record-sized numerical computation that also serves as a stress test for algorithms, storage, and hardware
Collatz conjecture verification 2025 Verified for all starting values up to 271
Goldbach's conjecture verification 2014 Verified for all even numbers up to 4×1018
Birch and Swinnerton-Dyer conjecture data 1960s- Originally formulated through computational study of elliptic curves

Hardware foundations

Conventional digital computers represent information in binary, encoding data as bits with values 0 and 1. At this level, computation is described by Boolean algebra, in which operations such as AND, OR, and NOT correspond to logical combination and negation. These operations are implemented physically by logic gates. A set of gates is said to be functionally complete if every Boolean function can be built from it; NAND alone suffices, and so does NOR alone. This connection between symbolic logic and circuit design is one of the central links between abstract computation and physical machinery.

Logic gates are combined into larger circuits such as adders, multiplexers, registers, and memory cells. Arithmetic, control flow, and storage are all built from compositions of these elementary Boolean operations. In modern computers these circuits are realized using transistors, typically in CMOS technology, and organized into processors, memory systems, and input/output devices.

Performance depends not only on raw logic speed but also on the movement of data through the memory hierarchy - registers, caches, main memory, and storage. In many practical computations, waiting for data costs more than carrying out the arithmetic itself. For non-classical models of physical computation, see Quantum Computing.

Parallel and large-scale computation

Many important computations exceed the capacity of a single processor or even a single machine. They are made feasible by parallelism, in which a problem is divided so that many operations can be carried out simultaneously.

Parallel computation appears in several forms. A task may be split among many cores in one machine, across many machines in a distributed system, or across large numbers of independent volunteer computers. Some workloads are especially well suited to performing the same operation repeatedly on many data items at once, while others require large search spaces to be divided into many smaller cases that can be checked independently.

At this scale the limiting question is often not just speed but scope: how many cases can be checked, how large a state space can be searched, how many terms or digits can be computed, or how large a numerical range can be tested. This is why large-scale computation is central to exhaustive proofs, record prime searches, simulation, and numerical experimentation.

Performance is often measured in FLOPS (floating-point operations per second). By 2025, the TOP500 list included three exascale systems, each capable of exceeding 1018 floating-point operations per second. In practice, however, successful large-scale computation depends as much on decomposition, communication, and memory access as on peak arithmetic throughput.

See also

References

  • Turing, A. M. (1936). "On Computable Numbers, with an Application to the Entscheidungsproblem". Proceedings of the London Mathematical Society. 2 (42): 230-265.
  • Rado, T. (1962). "On non-computable functions". Bell System Technical Journal. 41 (3): 877-884.
  • Appel, K.; Haken, W. (1977). "Every planar map is four colorable". Illinois Journal of Mathematics. 21 (3): 429-567.
  • Rokicki, T.; Kociemba, H.; Davidson, M.; Dethridge, J. (2014). "The diameter of the Rubik's Cube group is twenty". SIAM Journal on Discrete Mathematics. 27 (2): 1082-1105.
  • Heule, M. J. H.; Kullmann, O.; Marek, V. W. (2016). "Solving and Verifying the Boolean Pythagorean Triples Problem via Cube-and-Conquer". SAT 2016. LNCS 9710: 228-245.
  • Oliveira e Silva, T.; Herzog, S.; Pardi, S. (2014). "Empirical Verification of the Even Goldbach Conjecture and Computation of Prime Gaps up to 4 x 1018". Mathematics of Computation. 83 (288): 2033-2060.
  • Barina, D. (2025). "Improved verification limit for the convergence of the Collatz conjecture". The Journal of Supercomputing.
  • Great Internet Mersenne Prime Search (2024). "52nd Known Mersenne Prime Discovered".
  • Formalising Sphere Packing in Lean / EPFL / Math, Inc. (2026).