Существует ли нетривиальный тип, равный его собственной производной?

20

Статья под названием «Производный регулярного типа - это тип контекста с одним отверстием» показывает, что «молния» типа - его контексты с одним отверстием - следуют правилам дифференцирования в алгебре типов.

У нас есть:

xx1x00x10x(S+T)xS+xTx(S×T)xS×T+S×xT

Мы можем использовать эту модель, чтобы получить, что производная единицы является недействительной, что производная списка является произведением двух списков (суффикс префикса и т. Д.) И так далее.

Естественный вопрос: «какой тип является его собственной производной?» Конечно, у нас уже есть x00 , что говорит нам о том, что void (необитаемый тип) является его собственной производной, но это не очень интересно. Это аналог того факта, что в обычном бесконечно малом исчислении производная нуля равна нулю.

Существуют ли другие решения уравнения xTT ? В частности, существует аналог xex=eИкс в алгебре типа? Почему или почему нет?

Мэтью Пизиак
источник
5
Есть в теории комбинаторных видов, и там это соответствует видам (конечных) множеств, но это не соответствует алгебраическому типу данных.
Дерек Элкинс покинул SE
1
Что вы подразумеваете под "равным"? В вашем мире и ( S U ) × ( T U ) равны? Как насчет N и L я сек т ( N ) ? (S+T)U(SU)×(TU)NLяsT(N)
Андрей Бауэр
1
@AndrejBauer Первый да, второй нет. равно итерированному произведению 1 + N + N × N + N × N × N + = n = 0 N n в моем уме. Тем не менее, у меня нет строгой модели равенства типов в моей голове, и если у вас есть модель, на которую вы можете указать мне, я был бы рад ее прочитать. LяsT(N)1+N+N×N+N×N×N+...знак равноΣNзнак равно0NN
Мэтью Пизиак
3
@DerekElkins, как это происходит, другая статья МакБрайда под названием « Клоуны слева от меня», «Джокеры справа» указывают на то, что «Для конечных структур [итерация оператора на молнии] приводит к формулировке степенных рядов типов данных» непосредственно, находя все элементы слева направо ... Таким образом, существует значительная связь с понятием комбинаторных видов ». Поэтому я не удивлюсь, если комбинаторные виды также сыграют какую-то интересную роль в контексте этого вопроса.
Мэтью Пизиак
@MatthewPiziak Они определенно делают. Брент Йорги говорил об этом совсем немного . Смотрите также его тезис .
Дерек Элкинс покинул SE

Ответы:

15

Рассмотрим конечные мультимножества . Его элементы определяются как { x 1 , , x nBagX заключенным в подстановки, так что { x 1 , , x n } = { x π 1 , , x π n } для любого π S n . Что такое контекст с одним отверстием для элемента в такой вещи? Ну, у нас должно было быть n > 0, чтобы выбрать позицию для отверстия, так что мы остались с оставшимся n -{x1,,xn}{x1,,xn}={xπ1,,xπn}πSnn>0 элементов, но мы не мудрее о том, где. (Это непохоже на списки, где при выборе позиции для отверстия один список разрезается на два раздела, а второй производный разрез выбирает один из этих разделов и разрезает его дальше, как «точка» и «отметка» в редакторе, но я отступаю. ) Контекст с одним отверстием в B a gn1Таким образом, Х представляет собой B a gBagX , и каждый B a gBagX может возникнуть как таковой. Думая пространственно, производная от B a gBagX должен быть собой.BagX

Сейчас,

BagX=nNXn/Sn

выбор размера кортежа с набором из n элементов вплоть до группы перестановок порядка n ! , давая нам в точности расширение степенных рядов e x .nnn!ex

Наивно, мы можем характеризовать типы контейнеров набором форм и зависящим от формы семейством положений P : s : S X ( PSP так, чтобы контейнер задавался выбором формы и карты от позиций до элементов. С сумками и тому подобным есть дополнительный поворот.

s:SX(Ps)

«Форма» сумки - это некоторое ; «позиции» - это { 1 , , n } , конечный набор размера n , но отображение позиций на элементы должно быть инвариантным относительно перестановок из S n . Не должно быть доступа к сумке, которая «обнаруживает» расположение ее элементов.nN{1,,n}nSn

Контейнерный консорциум East Midlands писал о таких структурах в Построении Полиморфных Программ с Факторными Типами , для Математики Построения Программ 2004. Фактор-контейнеры расширяют наш обычный анализ структур по «формам» и «позициям», позволяя группе автоморфизмов воздействовать на позиции , что позволяет нам рассматривать такие структуры , как неупорядоченный пар , с производной X . Неупорядоченный п -кратного задается X п / п ! и его производная (когда n > 0 - неупорядоченное n - 1X2/2XnXn/n!n>0n1кортеж). Сумки принимают сумму этих. Мы можем играть в подобные игры с циклическими кортежами, X n / n , где выбор позиции для отверстия приводит к вращению на одну точку, в результате чего X n - 1 , кортеж на один меньше, без перестановок.nXn/nXn1

«Типовое деление» вообще трудно понять, но отношение по группам перестановок (как у комбинаторных видов) имеет смысл, и с ним интересно играть. (Упражнение: сформулировать структурный принцип индукции для неупорядоченных пар чисел, , и использовать его для выполнения сложения и умножения так , что они коммутативный по построению.)N2/2

Характеристика контейнеров по формам и позициям не ограничивает конечность. Комбинаторные виды, как правило, организованы по размеру , а не по форме, что составляет сбор терминов и вычисление коэффициента для каждого показателя степени. Фактор-контейнеры-с-конечными позициями-множествами и комбинаторные виды - это в основном разные спины на одном и том же веществе.

pigworker
источник
Оригинальный автор появляется! Спасибо, что заглянули, чтобы показать нам этот прекрасный результат.
Мэтью Пизиак,
3

Как насчет бесконечной суммы Производная i ,

Σя,JNИкся?
что по оригиналу по ассоциативности и коммутативности сумм равно оригиналу.
Σя,JNИкся++Иксяя+1

Кроме того , бесконечная сумма равна ), так что мы могли бы попытаться вычислить производную , используя списки.ΣJNLяsT(Икс)

Андрей Бауэр
источник
Производная списка - это пара списков (суффикс префикса и времен). По правилу сумм производная списка списков представляет собой список пар списков. Является ли список пар списков изоморфным списку списков?
Мэтью Пизиак
@ MatthewPiziak Возможно, проще представить первую формулировку как . Взяв производную, получаем i N i × N × X i (с очевидным значением для i ). Теперь нам нужно только Nя × N . Для меня это выглядит немного похоже (очень неформально) e x = i x i / n ! за исключением того, что коэффициенты степенного ряда выбираются равными + iNN×XiiNi×N×XiiNi×Nex=ixi/n!+(то есть, ), так что они могут удовлетворить с п = ( п + 1 ) с п + 1 в мире без разделения. Nan=(n+1)an+1
Чи
@MatthewPiziak К сожалению, я написал вместо I , но я думаю, ясно , что я имел в виду. Nя
Чи