В недавнем потоке в списке рассылки Агда, вопрос - законов выскочил, в котором Питер Hancock сделал заставляющий думать замечание .
Насколько я понимаю, законы приходят с отрицательными типами, т.е. связующие, правила введения которых обратимы. Чтобы отключить для функций, Хэнк предлагает использовать специальный элиминатор funsplit вместо обычного правила приложения. Я хотел бы понять замечание Хэнка с точки зрения полярности.
Например, есть две презентации -types. Существует традиционный Martin-Löf сплит нейтрализатор, в позитивном стиле:
И есть отрицательная версия:
Последнее представление позволяет легко получить для пар, т.е. для любой пары (где == обозначает равенство определений). С точки зрения доказуемости это различие не имеет значения: интуитивистски можно реализовать проекции с разбивкой или наоборот.
Теперь, -типы обычно (и неоспоримый, я считаю) негативно воспринят:
Что дает нам для функций: .
Тем не менее, в этом письме Хэнк вспоминает элиминатор funsplit (Программирование в теории типов ML, [http://www.cse.chalmers.se/research/group/logic/book/], стр. 56). Это описывается в логической структуре:
Интересно, что Nordstrom et al. мотивировать это определение, сказав, что «[эта] альтернативная неканоническая форма основана на принципе структурной индукции». Это утверждение сильно пахнет позитивом: функции будут «определены» их конструктором .
Тем не менее, я не могу достаточно точно описать это правило в естественной дедукции (или, что еще лучше, в последовательном исчислении). (Ab) использование логического каркаса для введения представляется здесь решающим.
Итак, является ли funsplit позитивным представлением -типов? Есть ли у нас что-то похожее в (независимом) исчислении секвенций? Как бы это выглядело?
Насколько распространено / любопытно это для теоретиков доказательства в этой области?