~~~~~~~~~~~~~~~~~~~~ Arc.Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~ 
Номер скриншота №:
✰ FDCA5D91743EE97D422F46E66D030286__1703750340 ✰
Заголовок документа оригинал.:
✰ Inductive type - Wikipedia ✰
Заголовок документа перевод.:
✰ Индуктивный тип — Википедия ✰
Снимок документа находящегося по адресу (URL):
✰ https://en.wikipedia.org/wiki/Inductive_type ✰
Адрес хранения снимка оригинал (URL):
✰ https://arc.ask3.ru/arc/aa/fd/86/fdca5d91743ee97d422f46e66d030286.html ✰
Адрес хранения снимка перевод (URL):
✰ https://arc.ask3.ru/arc/aa/fd/86/fdca5d91743ee97d422f46e66d030286__translat.html ✰
Дата и время сохранения документа:
✰ 24.06.2024 07:02:57 (GMT+3, MSK) ✰
Дата и время изменения документа (по данным источника):
✰ 28 December 2023, at 10:59 (UTC). ✰ 

~~~~~~~~~~~~~~~~~~~~~~ Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~~ 
Сервисы Ask3.ru: 
 Архив документов (Снимки документов, в формате HTML, PDF, PNG - подписанные ЭЦП, доказывающие существование документа в момент подписи. Перевод сохраненных документов на русский язык.)https://arc.ask3.ruОтветы на вопросы (Сервис ответов на вопросы, в основном, научной направленности)https://ask3.ru/answer2questionТоварный сопоставитель (Сервис сравнения и выбора товаров) ✰✰
✰ https://ask3.ru/product2collationПартнерыhttps://comrades.ask3.ru


Совет. Чтобы искать на странице, нажмите Ctrl+F или ⌘-F (для MacOS) и введите запрос в поле поиска.
Arc.Ask3.ru: далее начало оригинального документа

Индуктивный тип — Википедия Jump to content

Индуктивный тип

Из Википедии, бесплатной энциклопедии

В теории типов система имеет индуктивные типы , если у нее есть средства для создания нового типа из констант и функций, создающих члены этого типа. Эта функция выполняет роль, аналогичную структурам данных в языке программирования, и позволяет теории типов добавлять такие понятия, как числа , отношения и деревья . Как следует из названия, индуктивные типы могут быть самореферентными, но обычно только таким образом, который допускает структурную рекурсию .

Стандартный пример — кодирование натуральных чисел с использованием кодировки Пеано . Его можно определить в Coq следующим образом:

 Индуктивный   напр   .:   Тип   := 
    |    0   :   ест 
    |    С   :   нат   ->   нат  . 

Здесь натуральное число создается либо из константы «0», либо путем применения функции «S» к другому натуральному числу. «S» — это функция-преемник , которая представляет собой добавление 1 к числу. Таким образом, «0» равен нулю, «S 0» равен единице, «S(S0)» равен двум, «S(S(S0))» равен трем и так далее.

С момента своего появления индуктивные типы были расширены, чтобы кодировать все больше и больше структур, оставаясь при этом предикативными и поддерживая структурную рекурсию.

Ликвидация [ править ]

Индуктивные типы обычно имеют функцию для доказательства их свойств. Таким образом, «nat» может иметь (в синтаксисе Coq):

 nat_elim   :   (  forall   P   :   nat   ->   Prop  ,   (  P   0  )   ->   (  forall   n  ,   P   n   ->   P   (  S   n  ))   ->   (  forall   n  ,   P   n  )). 

Другими словами: для любого предложения «P» над натуральными числами, учитывая доказательство «P 0» и доказательство «P n -> P (n+1)», мы получаем обратно доказательство «для всех n, P n ". Это знакомый принцип индукции для натуральных чисел.

Реализации [ править ]

W- и M-типы [ править ]

W-типы являются хорошо обоснованными типами в интуиционистской теории типов (ITT). [1] Они обобщают натуральные числа, списки, двоичные деревья и другие «деревовидные» типы данных. Пусть U вселенная типов . Учитывая тип A : U и зависимое семейство B : A U , можно сформировать W-тип. . Тип A можно рассматривать как «метки» для (потенциально бесконечно многих) конструкторов определяемого индуктивного типа, тогда как B указывает (потенциально бесконечную) арность каждого конструктора. W-типы (соответственно M-типы) также можно понимать как хорошо обоснованные (соответственно необоснованные) деревья с узлами, помеченными элементами a : A , и где узел, помеченный a , имеет B ( a )-множество. поддеревья. [2] Каждый W-тип изоморфен исходной алгебре так называемого полиномиального функтора .

Пусть 0 , 1 , 2 и т. д. — конечные типы с обитателями 1 1 : 1 , 1 2 , 2 2 : 2 и т. д. Натуральные числа можно определить как W-тип.

с f : 2 U определяется как f (1 2 ) = 0 (представляет конструктор для нуля, который не принимает аргументов) и f (2 2 ) = 1 (представляет функцию-преемник, которая принимает один аргумент).

Можно определить списки для типа A : U как где

и 1 1 является единственным обитателем 1 . Значение соответствует конструктору пустого списка, тогда как значение соответствует конструктору, который добавляет a в начало другого списка.

Конструктор для элементов универсального W-типа имеет тип

Мы также можем записать это правило в стиле доказательства естественной дедукции :

Правило исключения для W-типов работает аналогично структурной индукции на деревьях. Если всякий раз, когда свойство (согласно интерпретации пропозиций как типов ) справедливо для всех поддеревьев данного дерева, оно справедливо и для этого дерева, тогда оно справедливо для всех деревьев.

В теориях экстенсионального типа W-типы (соответственно M-типы) могут быть определены с точностью до изоморфизма как исходные алгебры (соответственно конечные коалгебры) для полиномиальных функторов . В этом случае свойство инициалности (res.finality) непосредственно соответствует соответствующему принципу индукции. [3] В теориях интенсионального типа с аксиомой однолистности это соответствие сохраняется с точностью до гомотопии (пропозиционального равенства). [4] [5] [6]

M-типы двойственны W-типам, они представляют коиндуктивные (потенциально бесконечные) данные, такие как потоки . [7] М-типы могут быть производными от W-типов. [8]

индуктивные Взаимно определения

Этот метод позволяет определить несколько типов, которые зависят друг от друга. Например, определение двух предикатов четности для натуральных чисел с использованием двух взаимно индуктивных типов в Coq :

Индуктивное   четное   :   nat   ->   Prop   := 
   |    ноль_is_even   :   даже   O 
   |    S_of_odd_is_even   :   (  forall   n  :  nat  ,   нечетное   n   ->   четное   (  S   n  )) 
 с   нечетным   :   nat   ->   Prop   := 
   |    S_of_even_is_odd   :   (  forall   n  :  nat  ,   четное   n   ->   нечетное   (  S   n  )). 

Индукция-рекурсия [ править ]

Индукция-рекурсия началась как исследование пределов ITT. После обнаружения пределы были превращены в правила, которые позволили определить новые индуктивные типы. Эти типы могут зависеть от функции, а функция от типа, если оба они определены одновременно.

Типы юниверсов можно определить с помощью индукции-рекурсии.

Индукция-индукция [ править ]

Индукция-индукция позволяет определить тип и семейство типов одновременно. Итак, тип А и семейство типов .

Типы с более высокой индуктивностью [ править ]

Это текущая область исследований в теории гомотопических типов (HoTT). HoTT отличается от ITT типом идентичности (равенство). Высшие индуктивные типы не только определяют новый тип с константами и функциями, которые создают элементы типа, но также и новые экземпляры идентификационного типа, которые их связывают.

Простым примером является тип круга , который определяется двумя конструкторами: базовой точкой;

основа : круг

и петля;

цикл : база = база .

Существование нового конструктора для тождественного типа делает круг более индуктивным типом.

См. также [ править ]

  • Коиндукция допускает (эффективно) бесконечные структуры в теории типов.

Ссылки [ править ]

  1. ^ Мартин-Лёф, Пер (1984). Интуиционистская теория типов (PDF) . Самбин, Джованни. Неаполь: Библиополис. ISBN  8870881059 . ОСЛК   12731401 .
  2. ^ Аренс, Бенедикт; Каприотти, Паоло; Спадотти, Режис (12 апреля 2015 г.). Необоснованные деревья в гомотопической теории типов . Международные труды Лейбница по информатике (LIPIcs). Том. 38. стр. 17–30. arXiv : 1504.02949 . doi : 10.4230/LIPIcs.TLCA.2015.17 . ISBN  9783939897873 . S2CID   15020752 .
  3. ^ Дюбьер, Питер (1997). «Представление индуктивно определенных множеств с помощью хорошего порядка в теории типов Мартина-Лёфа». Теоретическая информатика . 176 (1–2): 329–335. дои : 10.1016/s0304-3975(96)00145-4 .
  4. ^ Аводи, Стив; Гамбино, Никола; Соякова, Кристина (18 января 2012 г.). «Индуктивные типы в теории гомотопических типов». arXiv : 1201.3898 [ math.LO ].
  5. ^ Аренс, Бенедикт; Каприотти, Паоло; Спадотти, Режис (12 апреля 2015 г.). Необоснованные деревья в гомотопической теории типов . Международные труды Лейбница по информатике (LIPIcs). Том. 38. стр. 17–30. arXiv : 1504.02949 . doi : 10.4230/LIPIcs.TLCA.2015.17 . ISBN  9783939897873 . S2CID   15020752 .
  6. ^ Аводи, Стив; Гамбино, Никола; Соякова, Кристина (21 апреля 2015 г.). «Гомотопически-начальные алгебры в теории типов». arXiv : 1504.05531 [ math.LO ].
  7. ^ ван ден Берг, Бенно; Марки, Федерико Де (2007). «Необоснованные деревья в категориях». Анналы чистой и прикладной логики . 146 (1): 40–59. arXiv : math/0409158 . дои : 10.1016/j.apal.2006.12.001 . S2CID   360990 .
  8. ^ Эбботт, Майкл; Альтенкирх, Торстен; Гани, Нил (2005). «Контейнеры: построение строго положительных типов» . Теоретическая информатика . 342 (1): 3–27. CiteSeerX   10.1.1.166.34 . дои : 10.1016/j.tcs.2005.06.002 .

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец оригинального документа.
Arc.Ask3.Ru
Номер скриншота №: FDCA5D91743EE97D422F46E66D030286__1703750340
URL1:https://en.wikipedia.org/wiki/Inductive_type
Заголовок, (Title) документа по адресу, URL1:
Inductive type - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть, любые претензии не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, денежную единицу можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)