Тип сквоша

Матеріал з testwiki
Перейти до навігації Перейти до пошуку

Шаблон:Без виносок Тип сквоша (пропозиційне обрізання) — тип, який «стискає» або «обрізає» тип до пропозиційної секвенції у гомотопічній теорії типів. Позначається подвійною вертикальною рискою ||||.

Визначення

Для будь-якого терму a типу A існує пропозиційне обрізання |a|:||A||, де |a| — образ a:A у ||A||. Її можна розглядати як формальну операцію, яка робить рівними усі терми, які належать до даного типу («населяють» його). Інший випадок, де для будь-яких x,y:||A|| має місце x=y, гарантує, що ||A|| — пропозиція.

Принцип рекурсії для ||A|| полягає у тому, що якщо B — пропозиція та f:AB, то існує індукована функція g:||A||B така, що g(|a|)f(a) для усіх a:A. Іншими словами, будь-яка пропозиція слідує з ||A||. Таким чином, пропозиція ||A|| не містить більше інформації, ніж факт належності (населеності) A. Завдяки пропозиційному обрізанню можна розширити логіку простих пропозицій, щоб охопити диз'юнкцію й квантор існування. Зокрема, ||A+B|| проста пропозиційна версія «A або B» яка не «запам'ятовує» інформацію про те, який диз'юнкт є істинним. Принцип рекурсії для обрізання має на увазі, що можна провести аналіз на випадок ||A+B|| при спробі доказати просту пропозицію. Іншими словами, якщо P — пропозиція, то для визначення ||A+B||P достатньо побудувати функцію A+BQ.

Якщо P проста пропозиція, то P||P||. В силу IdP:PP для ||P|| справедливе ||P||P. Припустимо, що сімейство типів P:A𝒰 таке, що

  • для будь-якого x тип P(x) є простою пропозицією та
  • для будь-якого x має місце ||P||.

Тоді (x:A)P(x).

Можна визначити предикат Q:B𝒰 такий, що x:BQ(x) є простою пропозицією. Тоді з елемента A отримується елемент b:B такий, що Q(b), тому з ||A|| можна побудувати ||(x:B)Q(x)|| і тому, що ||(x:B)Q(x)||(x:B)Q(x), може бути отриманий елемент з B.

Таким чином, вибір єдиний.

Якщо ми хочемо визначити функцію f:AB, та в залежності від елемента a:A доказати просто існування декотрого b:B, необхідно визначити елемент з B шляхом допрацювання аргументу для унікального існування b:B як у теорії типів. У теорії множин ця проблема вирішується застосуванням аксіоми вибору, яка допомагає вибрати необхідні елементи. Таким чином, якщо A не є множиною (наприклад, універсумом 𝒰), то не існує узгодженої форми вибору, яка дозволила б просто вибрати елемент з B для кожного a:A для використання у визначенні f(a).

Аксіома вибору

Запис у звичайній нотації

((x:X).(a:A(x)).P(x,a))((g:(x:X)A(x)).(x:X).P(x,g(x)))

перепишеться

(x:X||a:A(x)P(x,a)||)||(g:(x:X)a(x))(x:X)P(x,g(x))||,

де «існує x:A таке, що B(x)» записується як ||(x:A)B(x)||. Це еквівалентно формулюванню, що для будь-якої множини X та будь-якого Y:X𝒰 такого, що кожне Y(x) є множиною, має місце (x:X||Y(x)||)||x:XY(x)||, де Y(x):(g:A(x))P(x,a). Та навпаки, A(x):Y(x) та P(x,a):1.

Це відповідає відомій еквівалентній формі класичної аксіоми вибору, а саме:

Дано набір непорожніх множин, їхній декартів добуток є непорожньою множиною.

Програмування

Пропозиційне обрізання дозволяє перевести тип \Type у пропозицію \Prop. У мові Arend є спеціальні універсуми \Prop та \Set, які складаються з пропозицій та множин, відповідно. Якщо відомо, що тип А міститься у \Prop (або \Set), то доказ відповідної властивості isProp (або isSet) у Arend може бути отриманий за допомогою вбудованої до прелюдії аксіоми Path.inProp:

\func inProp {A : \Prop} : \Pi (a a' : A) -> a = a'

Посилання