Курт Гедель (1906–1978) в своей статье 1931 года «О формально неразрешимых суждениях Principia mathematica и связанных систем» описал специфический метод присвоения уникального числа каждому суждению, выраженному внутри формальной системы. Даже доказательство истинности суждения может быть выражено как уникальная цепочка натуральных чисел, причем на основании этих базовых символов можно решить, какие из них значащие, а какие — нет. Первый из двух классических результатов, описанных в этой статье, — это «теорема неполноты», заключающаяся в том, что аксиоматическая система, даже такая базовая, как арифметика целых чисел, содержит суждения, истинность или ложность которых не могут быть доказаны. Это до некоторой степени походит на лингвистическую дилемму «данное предложение — ложь». Существование таких неразрешимых суждений показало, что программа аксиоматизации математики, предпринятая Бертраном Расселом и Альфредом Нортом, невыполнима. Гедель также разочаровал Дэвида Гилберта, который стремился создать полную и последовательную арифметику, то есть арифметику без внутренних противоречий. Гедель также показал, что имеет место и прямо противоположное — если система последовательна, она не может доказать свою собственную последовательность изнутри самой себя. Короче говоря, мы говорим, что арифметика неполна. После того как в крышку гроба арифметики был забит огромный гвоздь, математики оставили поиски великой единой математики и вместо этого сосредоточились на исследовании того, как различные формы аксиоматизации приводят к различным математическим системам. Сам факт наличия математического языка должен позволить нам отвечать на вопросы, так что главным образом следует обсуждать процесс, которым определяется истинность математических суждений. Теперь математики в основном говорят об исчисляемости, а не о разрешимости проблемы.
Параллельно с фокусировкой внимания на алгоритмах появилось обобщение понятия функции. В самом общем смысле функция f — произвольное соотношение между математическими объектами. Считается, что функция вычислима, если существует алгоритм, который создает на выходе f