Некоторое время назад я читал, что тип функции a -> b
соответствует отношению a ≤ b
, или это a ≥ b
? Это имеет смысл для меня, потому что два типа изоморфны, если между ними имеется биекция (т. Е. (a ≈ b) ≡ (a -> b, b -> a)
). Аналогичным образом, (a = b) ≡ (a ≤ b) ∧ (a ≥ b)
.Соответствие и равенство Карри Говарда
Я знаю, что это не соответствие Карри-Говарда-Ламбека (т. Е. Соответствие теории типов, логики и теории категорий). Это соответствие теории типов и чего-то еще. Я хочу узнать больше об этой переписке. Может ли кто-нибудь указать мне в правильном направлении?
Я знаю, что это не похоже на вопрос программирования, но это связано с программированием, и я надеюсь, что какой-то функциональный программист знает об этом больше и может указать мне в правильном направлении.
«Система типов» (т. Е. Типы с их семантикой доказательства, заданные изоморфизмом CH) могут быть описаны несколькими математическими структурами, например [декартовой замкнутой категорией] (https://en.wikipedia.org/wiki/Cartesian_closed_category) или [распределительная решетка] (https://en.wikipedia.org/wiki/Distributive_lattice). В этом случае вы берете предзаказ, образованный '(Type, ->)', т. Е. Для всех типов 'x, y' мы говорим, что' x' меньше или равно 'y', если существует функция типа 'x -> y'. Вы также используете это ',' соответствует логическому и (это происходит из структуры решетки). – user2407038