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


20

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

У нас есть:

∂xx↦1∂x0↦0∂x1↦0∂x(S+T)↦∂xS+∂xT∂x(S×T)↦∂xS×T+S×∂xT

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

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

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


5
Есть в теории комбинаторных видов, и там это соответствует видам (конечных) множеств, но это не соответствует алгебраическому типу данных.
— Дерек Элкинс покинул SE

1
Что вы подразумеваете под "равным"? В вашем мире и ( S → U ) × ( T → U ) равны? Как насчет N и L я сек т ( N ) ? (S+T)→U(S→U)×(T→U)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знак равно0∞NN
— Мэтью Пизиак

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 gn−1Таким образом, Х представляет собой B a gBagX , и каждый B a gBagX может возникнуть как таковой. Думая пространственно, производная от B a gBagX должен быть собой.BagX

Сейчас,

BagX=∑n∈NXn/Sn

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

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

∑s:SX(Ps)

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

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

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

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


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

3

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

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

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


Производная списка - это пара списков (суффикс префикса и времен). По правилу сумм производная списка списков представляет собой список пар списков. Является ли список пар списков изоморфным списку списков?
— Мэтью Пизиак

@ MatthewPiziak Возможно, проще представить первую формулировку как . Взяв производную, получаем ∑ i ∈ N i × N × X i (с очевидным значением для i ). Теперь нам нужно только N ≃ я × N . Для меня это выглядит немного похоже (очень неформально) e x = ∑ i x i / n ! за исключением того, что коэффициенты степенного ряда выбираются равными + ∞∑i∈NN×Xi∑i∈Ni×N×XiiN≃i×Nex=∑ixi/n!+∞(то есть, ), так что они могут удовлетворить с п = ( п + 1 ) ⋅ с п + 1 в мире без разделения. Nan=(n+1)⋅an+1
— Чи

@MatthewPiziak К сожалению, я написал вместо I , но я думаю, ясно , что я имел в виду. Nя
— Чи
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.