Я уже неявно предполагаю, что в теории А приложений пока не найдено, но если у вас есть некоторые из них, это даже лучше для меня!
Насколько я понимаю, теория видов Джояла относительно широко используется в перечислительной комбинаторике как обобщение порождающих функций, которые дополнительно сообщают вам, как переставлять вещи в дополнение к их количеству.
Пиппенгер применил двойственность Стоуна, чтобы связать регулярные языки и разновидности полугрупп. Джеандель представил топологические автоматы, которые применяют эти идеи, чтобы дать единые счета (и доказательства!) Для квантовых, вероятностных и обычных автоматов.
Роланд Бэкхаус дал абстрактные характеристики жадных алгоритмов с помощью связей Галуа с тропическим полукольцом.
В более умозрительном ключе Ноам упомянул модели связок. Они абстрактно характеризуют синтаксическую технику логических отношений, которая, вероятно, является одной из самых мощных в семантике. Мы в основном используем их для доказательства результатов невыразимости и непротиворечивости, но это должно быть интересно для теоретиков сложности, поскольку это хороший пример практической неестественной (в смысле Разборова / Рудича) техники доказательства. (Тем не менее, логические отношения обычно очень тщательно разработаны, чтобы гарантировать их релятивизацию - как разработчики языков, мы хотим быть в состоянии гарантировать программистам, что вызовы функций являются черными ящиками!)
РЕДАКТИРОВАТЬ: я буду продолжать спекулировать, по просьбе Райана. Насколько я понимаю, естественным доказательством является примерно одно из тех, которые пытаются определить индуктивный инвариант структуры цепи, подверженной различным разумным условиям. Подобные идеи (что неудивительно) довольно распространены и в языках программирования, когда вы пытаетесь определить инвариант, поддерживаемый индуктивно с помощью термина лямбда-исчисления (например, чтобы доказать безопасность типов). 1
Однако эта техника часто ломается при более высоких (то есть функциональных) типах. Например, лямбда-исчисление простого типа является полным - каждая программа, написанная в нем, завершается. Однако прямые попытки доказать это имеют тенденцию основывать на проблеме функций первого класса: недостаточно доказать, что каждый член типа заканчивается. Поскольку мы можем дополнительно применять аргументы к функциям, нам нужно не только гарантировать, что каждый член типа останавливается, мы также должны убедиться, что это свойство обладает «наследственно» - нам также нужно знать, что с учетом любого члена тип , приложение также будет остановлено.A → B AA→BA→BA
Это то, что делают логические отношения. Вместо определения одного индуктивного инварианта, мы определяем целое семейство предикатов путем рекурсии по структуре (обычно) типа. Затем мы докажем, что каждый определяемый термин лежит в соответствующем предикате, что позволяет нам установить то, что мы искали. Поэтому для завершения мы бы сказали, что хорошие значения базового типа являются значениями базового типа, а хорошие значения типа являются значениями этого типа, которые, учитывая хорошее значение , оценивают в хорошее значение изA BA→BAB, Обратите внимание, что не существует единственного индуктивного инварианта - мы определяем целое семейство инвариантов путем рекурсии по структуре входных данных и используем другие средства, чтобы показать, что все члены лежат в этих инвариантах. Теоретически, это намного более сильный метод, и поэтому он позволяет вам доказать результаты согласованности.
Связь с пучками возникает из-за того, что нам часто нужно рассуждать об открытых терминах (то есть, терминах со свободными переменными), и поэтому необходимо различать застревание из-за ошибок и застревание из-за необходимости уменьшения переменной. Пучки возникают из рассмотрения редукций лямбда-исчисления как определения морфизмов категории, члены которой являются объектами (т. Е. Частичного порядка, индуцированного редукцией), а затем из рассмотрения функторов из этой категории в наборы (т. Е. Предикаты). Жан Галлье написал несколько хороших статей об этом в начале 2000-х, но я сомневаюсь, что они читабельны, если вы уже не усвоили достаточное количество лямбда-исчисления.