Я відносно новий в теорії типів і залежному програмуванні. Я вивчав обчислення конструкцій (CoC) та інших систем чистого типу. Мені особливо цікаво використовувати його як захист проміжного представлення для системи компілятора.
Я розумію , що (з) рекурсивні типи представимо , обчислювально , використовуючи в якості єдиного типу конструктора. Я, проте, читав, що їх не можна використовувати для побудови доказів за допомогою індукції (вибачте, я зараз не можу знайти!), Наприклад, що я не міг довести, що у звичайному CoC (навіть якщо вводиться як ).
Я припускаю, що саме тому вони побудували обчислення індуктивних конструкцій (CIC). Це правильно? Але чому? Я не зміг знайти жодного матеріалу, який би пояснював, чому подібні докази не можуть бути представлені без використання (спільно) індуктивних типів як примітивів. Якщо це неправда, то навіщо їх додавати як примітиви в CIC?