Формування теорії кінцевих множин в теорії типів


10

Більшість помічників доказування мають формалізацію поняття "скінченна множина". Ці формалізації, однак, дико відрізняються (хоча можна сподіватися, що всі вони по суті рівнозначні!). Я не розумію на даний момент - це проектний простір, які плюси та мінуси кожної формалізації.

Зокрема, я хотів би зрозуміти наступне:

  • Чи можу я аксіоматизувати кінцеві множини (тобто типи, населені кінцевою кількістю мешканців) у простої теорії типу? Система F? Які недоліки зробити це таким чином?
  • Я знаю, що це можна зробити «елегантно» у залежно набраній системі. Але, з класичної точки зору, отримані визначення здаються надзвичайно чужими. [Я не кажу, що вони помиляються, далеко не це!]. Але я не розумію, чому вони теж "праві". Я розумію, що вони вибирають правильну концепцію, але більш глибокою причиною "сказати це саме так" є те, що я не повністю розумію.

В основному, я хотів би аргументованого введення в проектний простір формалізацій поняття "скінченна множина" в теорії типів.

Відповіді:


8

Я знаю, що це можна зробити «елегантно» у залежно набраній системі. Але, з класичної точки зору, отримані визначення здаються надзвичайно чужими.

Чи можете ви пояснити, що ви маєте на увазі під «чужим»? Мені здається, ви формалізуєте поняття скінченної множини точно однаково в теорії типів і в теорії множин.

У теорії множин ви продовжуєте визначати множину як Потім ви визначаєте предикат скінченності як: Де означає ізоморфізм множин.Жiн(н)Р я п я т е ( Х ) п N .

Жiн(н){кN|к<н}
A B
Жiнiте(Х)нN.ХЖiн(н)
АБ

У теорії типів ви можете зробити точно те ж саме! Зауважимо, що - це тип з елементами (оскільки другий компонент пари не є коректним). Тоді ви можете визначити конструктор типу скінченності як: Де означає ізоморфізм типів.

Жiн(н)Σк:N.ifк<нтгоденUнiтелсеVоiг
Жiн(н)н
Жiнiте(Х)Σн:N.ХЖiн(н)
АБ

Чуже, тому що я коли-небудь бачив необроблені визначення без супровідного тесту, який пояснює, як читати ці визначення. Плюс той факт, що звичайне визначення фінів, зроблене індуктивно, далі затьмарює речі. Ваше коротке пояснення - це те, що мені потрібно було натиснути.
Жак Каретт

5

Дозвольте мені побачити, чи можу я додати щось корисне до відповіді Ніла. "Проектний простір" для кінцевих наборів набагато більший конструктивно, тому що це класично, тому що різні визначення "кінцевого" не повинні конструктивно узгоджуватися. Різні визначення в теорії типів дають дещо різні поняття. Ось кілька можливостей.

Куратовський кінцеві безлічі ( -кінцева) можна охарактеризувати як вільний -semilattices: задано безліч, типу або об'єкт Х , елементи вільного -semilattice K ( X ) можуть бути thougth як кінцеві підмножини X . Дійсно, кожен такий елемент породжується:КХК(Х)Х

  • нейтральний елемент , який відповідає порожньому набору, або0
  • генератор , що відповідає синглетону { x } , абохХ{х}
  • з'єднання двох елементів, що відповідає об'єднанню.SТ

Еквівалентна формулювання є: S X є До -Звичайно , якщо, і тільки якщо існує п N і сюр'єкція е : { 1 , ... , п } S .К(Х)SХКнN е:{1,,н}S

е:{1,,н}SКSХх,уS.х=ухуD(Х)КХ

К(Х)D(Х)0

Вирішуючи, що таке "правильне" визначення, ви повинні звернути увагу на те, що ви хочете робити з кінцевими множинами. І єдиного правильного визначення немає. Наприклад, у якому сенсі "кінцевим" є сукупність складних коренів поліноміального скінченного ?

Дивіться конструктивно скінченне? Тьєррі Кокенд та Арно Співак для детального обговорення кінцевості. Урок полягає в тому, що кінцевість далеко не очевидна конструктивно.


Правильно, я знав достатньо всього цього, щоб знати, що моє питання не тривіальне. Тепер я можу піти і перечитати частини бібліотек Coq, Isabelle та Agda, які мають справу з кінцевими наборами, і маю надію зрозуміти, який вибір (каламбур) вони зробили.
Жак Каретт

АК(А)D(А)А

Для справедливості, часто використовуються кінцеві набори для формалізації аспектів перевірки програми, і в цьому випадку зазвичай можна припустити, що рішуча рівність має місце.
коді
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.