(Литература)
Wadler, Philip. "Theorems for free!." Proceedings of the fourth international conference on Functional programming languages and computer architecture. ACM, 1989
Прочитал статью и возникли вопросы.
Прежде всего, параметрическая
в смысле Рейнольдса (или Жирара-Рейнольдса?) — это тоже самое, что
в
-кубе Барендрегта? То есть это такая же по-максимуму явная система типов, допускающая всяческую абстракцию терма по типу, и слабую (я не ошибся в названии? имел в виду наличие квантора только снаружи) вроде
, и сильную вроде
(квантор появился внутри)?
Рассмотрим несколько простых типов.
— это тип Истины. Типичный пример тому — идентичность
.
Утверждаем, что
, где вместо типа — неформальное отношение между типами. Для любого отношения
тогда
.
В частном случае, когда отношение является функцией, получается
Итак, получили бесплатную теорему
Можно ли из этой теоремы заключить, что в адекватной
-системе ничего, кроме идентичности, удовлетворять этой теореме не может?
Ещё: проекция
или K-комбинатор
, абстрагированные по
.
Применяя ту же схему, получим (в инфиксной форме записаны отношения, индексы типов опущены)
Для функций:
Это бесплатная теорема для K-комбинатора и по совместительству для двух проекций.
Достаточно ли этого, чтобы считать
независимым от
? Интуитивно мне кажется, что стоит опираться на частный случай
, в котором теорема принимает вид
, но я не знаю, как это лучше обыграть, чтоб было по-формальнее.
Эти вопросы были навеяны красивыми манипуляциями в статье над функциями reverse, map и fold. В частности, там показано, что
обязательно представима в виде композиции map и переупорядочивания: