Ні, в цьому випадку прогнозованість і монотонність не є тісно пов'язаними.
Перевірка позитивності в Coq / Adga служить для того, щоб ви сприймали найменше фіксовану точку монотонної речі, приблизно.
Ось як можна думати про індуктивні типи з точки зору решіток та монотонних операторів. Нагадаємо, що теорема Кнастера-Тарського говорить, що на повній решітці кожен монотонний оператор f : L → L має найменшу фіксовану точку μ ( f ) . Далі ми можемо розглядати типи в теорії типів як такі, що утворюють ґрати під доцільністю. Тобто, тип S нижче T , якщо істина S тягне за собою , що з T . Тепер, що ми хотіли б зробити, це взяти монотонний оператор F для типів і використовувати Кнастер-Тарскі, щоб отримати інтерпретацію найменш фіксованої точки цього оператораLf:L→Lμ(f)STSTF . μ(F)
Однак типи в теорії типів не є лише решіткою: вони утворюють категорію. Тобто, враховуючи два типу і T , є потенційно багато способів для S , щоб бути нижче Т з одним способом для кожного доказу е : S → T . Тому оператор типу F також повинен зробити щось розумне з цих доказів. Відповідне узагальнення монотонності - функціональність . Тобто ми хочемо, щоб F мав оператора на типи, а також здійснював дію на докази, такі як якщо e : S → T , то F (STSTe:S→TFFe:S→T .F(e):F(S)→F(T)
Тепер функціональність зберігається за сумами та продуктами (тобто, якщо і G є ендофайнерами на типи, тоді F + G і F × G (діючі в точці)) також є функторами за типами (якщо припустимо, що в нашій алгебрі є суми та продукти Тим не менш, це не збережене в просторі функцій, оскільки експоненціальний біфунктор F → G є протилежним у лівому аргументі. Отже, коли ви пишете індуктивне визначення типу, ви визначаєте функтора, щоб взяти найменш фіксовану точку. Щоб переконатися, що він дійсно є функтором, вам потрібно виключити виникнення рекурсивного параметра в лівій частині функціональних просторів --- звідси перевірка позитивності.FGF+GF×GF→G
Імпредикативності (у значенні Система F) взагалі уникають, тому що це принцип, який змушує вас обирати між класичною логікою та теоретично заданими моделями. Ви не можете інтерпретувати типи як набори в класичній теорії множин, якщо у вас індексація у стилі F. (Див. Знаменитий Рейнольдс "Поліморфізм не заданий теоретичним".)
Категорично, непередбачуваність у стилі F говорить про те, що категорія типів і термінів утворює малу повну категорію (тобто, хоми та об’єкти є обома множинами, а межі всіх малих діаграм є). Класично це змушує категорію бути поетом. Багато конструктивістів є конструктивними, тому що вони хочуть, щоб їх теореми трималися в більшій системі, ніж просто класична логіка, і тому вони не хочуть доводити нічого, що було б класично помилковим. Отже, вони визивають непередбачуваний поліморфізм.
Однак поліморфізм дозволяє говорити про багато умов, які є класично «великими» всередині вашої теорії типу - і позитивність є однією з них! Оператор типу є функціональним, якщо ви можете створити поліморфний термін:F
Fmap:∀α,β.(α→β)→(F(α)→F(β))
Подивіться, як це відповідає функціональності? ІМО, це було б дуже приємним варіантом роботи в Coq, оскільки це дозволить вам робити загальне програмування набагато простіше. Синтаксичний характер перевірки позитивності є великою перешкодою для загального програмування, і я би радий торгувати можливістю класичних аксіом для більш гнучких функціональних програм.
EDIT: Питання, яке ви задаєте про різницю між Prop і Set, виникає з того, що розробники Coq хочуть дозволити вам думати про теореми Coq в наївних множинно-теоретичних термінах, якщо ви хочете, не змушуючи вас це робити. Технічно вони розділяють Prop і Set, а потім забороняють набори залежно від обчислювального вмісту Prop.
Таким чином, ви можете інтерпретувати Prop як значення істини в ZFC, які є булевими істинними та хибними. У цьому світі всі докази пропозицій рівні, і тому очевидно, що ви не повинні мати змогу розгалужуватися на доказ пропозиції. Тож заборона на множини залежно від обчислювального змісту доказів Prop є цілком розумною. Крім того, 2-елементна булева гратка, очевидно, є повною решіткою, тому вона повинна підтримувати непередбачувану індексацію, оскільки існують довільні задані значення. Обмеження предикативності для Sets виникає з факту (згаданого вище), що індексація стилю F є виродженою у класичних множинно-теоретичних моделях.
У Coq є інші моделі (це конструктивна логіка!), Але справа в тому, що з полиці вона ніколи не доведе нічого, що класичний математик здивував би.