Self Types - это расширение исчисления конструкций [1], которое позволяет языку выражать алгебраические типы данных, закодированные с помощью кодировки Скотта. Кодирование Скотта предоставляет возможность сопоставления с образцом O(1)
, что является одним из основных мотиваторов для включения индуктивных определений в CC. Тем не менее, Self Types создают гораздо более простую и элегантную базовую теорию и, по-видимому, не менее мощны.
Делают ли Self Types, с теоретической точки зрения, CIC устаревшим, или все же есть какой-то аспект, по которому CIC благоприятен по отношению к Self Tyes?
[1] http://staff.computing.dundee.ac.uk/pengfu/document/talks/mvd-2012.pdf
* : *
, @GIlles, не дляSelf
?Ответы:
Я не эксперт в этой работе, но мне кажется, что основной проблемой является отсутствие доказательства SN, даже с ограничениями. Хотя эти доказательства заведомо хитры, даже когда исчисление верно, поэтому я бы уделил ему немного времени. Работа, безусловно, очень перспективная.
Следует отметить, что эти ограничения на самом деле довольно нетривиальны для выражения, что является большой частью сложности формулировки индуктивных семейств в CIC. Реальным преимуществом такого подхода было бы сжатое формулирование этих условий.
Это была довольно давняя открытая проблема иметь зависимо типизированный язык, который
Одна такая попытка, о которой я знаю, - это язык Altenkirch & al , в котором также не хватает полного мета-теоретического изучения (а также непоследовательности без дополнительных ограничений).ΠΣ
источник