Википедия

Зависимый тип

Зависимый тип (англ. dependent type) в информатике и логике — тип, который зависит от некоторого значения. Зависимые типы играют ключевую роль в интуиционистской теории типов и построении функциональных языков программирования таких как ATS, Agda, [англ.] и Idris.

К примеру, тип, описывающий n-кортежи действительных чисел, является зависимым, так как он «зависит» от величины n.

Решение о равенстве зависимых типов в программе может потребовать вычислений. Если в зависимых типах допущено использование произвольных значений, то решение о равенстве типов может включать в себя проверку равенства результата работы двух произвольных программ. Таким образом, проверка типа становится неразрешимой задачей.

Изоморфизм Карри — Ховарда позволяет строить типы для выражения сколь угодно сложных математических свойств. Если предоставлено конструктивное доказательство того, что тип «заселён» (то есть, существует хотя бы одно значение этого типа), компилятор сможет проверить это доказательство и превратить его в исполняемый код, вычисляющий значение. Наличие проверки доказательств делает зависимо-типизированные языки схожими с программным обеспечением автоматизации доказательств (например, интерактивный доказатель теорем Coq).

Системы лямбда-куба

Хенк Барендрегт разработал лямбда-куб в качестве средства классификации систем типов по трём осям. Каждый из восьми углов кубической диаграммы соответствует системе типов. В наиболее бедной вершине куба находится просто типизированное лямбда-исчисление, а в наиболее богатой — исчисление конструкций. Трём осям куба соответствуют три различных дополнения к просто типизированному лямбда-исчислению: дополнение зависимых типов, дополнение полиморфизма и дополнение конструкторов типов высшего порядка.

Формальное определение

Очень упрощённо зависимый тип можно представить как тип индексированного семейства множеств. Более формально, для типа image (где image — вселенная типов), можно определить семейство типов image, сопоставляющее каждому терму image тип image, что записывается как image. Функция, чья область значений варьируется в зависимости от её аргумента, называется зависимой функцией. Тип этой функции называется зависимым произведением типов, пи-типом или просто зависимым типом. Зависимый тип записывается для данного случая как

image

или

image

Если image является константой, то зависимый тип упрощается до обычной функции image. Иначе говоря, image равнозначен функциональному типу image. Название «пи-тип» подчёркивает, что такой тип является декартовым произведением типов. Пи-типы также могут быть представлены как модели кванторов всеобщности.

Например, если image — кортеж из image вещественных чисел, то image — тип функций, которые для всякого натурального image возвращают кортеж вещественных чисел размера image. Обычное [англ.] является тем частным случаем, когда область значений не зависит от входного параметра: например, image — тип функций из натуральных в вещественные, обозначаемых image в просто типизированном лямбда-исчислении.


Полиморфные функции являются важным примером зависимых функций, то есть функций, имеющих зависимый тип. Для некоторого заданного типа такие функции обрабатывают значения этого типа, или значения типа, построенного на основе этого типа. Полиморфная функция, возвращающая значения типа image, будет иметь полиморфный тип, записываемый как

image

Литература

  • Chlipala, A. Certified Programming with Dependent Types: A Pragmatic Introduction to the Coq Proof Assistant. — MIT Press, 2013. — 440 p. — ISBN 9780262026659. (текст с сайта автора (англ.))
  • Jeremy Paul Condit. Dependent Types for Safe Systems Software. — PhD dissertation. — University of California at Berkeley, 2007.

Википедия, чтение, книга, библиотека, поиск, нажмите, истории, книги, статьи, wikipedia, учить, информация, история, скачать, скачать бесплатно, mp3, видео, mp4, 3gp, jpg, jpeg, gif, png, картинка, музыка, песня, фильм, игра, игры, мобильный, телефон, Android, iOS, apple, мобильный телефон, Samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Сеть, компьютер, Информация о Зависимый тип, Что такое Зависимый тип? Что означает Зависимый тип?

Zavisimyj tip angl dependent type v informatike i logike tip kotoryj zavisit ot nekotorogo znacheniya Zavisimye tipy igrayut klyuchevuyu rol v intuicionistskoj teorii tipov i postroenii funkcionalnyh yazykov programmirovaniya takih kak ATS Agda angl i Idris K primeru tip opisyvayushij n kortezhi dejstvitelnyh chisel yavlyaetsya zavisimym tak kak on zavisit ot velichiny n Reshenie o ravenstve zavisimyh tipov v programme mozhet potrebovat vychislenij Esli v zavisimyh tipah dopusheno ispolzovanie proizvolnyh znachenij to reshenie o ravenstve tipov mozhet vklyuchat v sebya proverku ravenstva rezultata raboty dvuh proizvolnyh programm Takim obrazom proverka tipa stanovitsya nerazreshimoj zadachej Izomorfizm Karri Hovarda pozvolyaet stroit tipy dlya vyrazheniya skol ugodno slozhnyh matematicheskih svojstv Esli predostavleno konstruktivnoe dokazatelstvo togo chto tip zaselyon to est sushestvuet hotya by odno znachenie etogo tipa kompilyator smozhet proverit eto dokazatelstvo i prevratit ego v ispolnyaemyj kod vychislyayushij znachenie Nalichie proverki dokazatelstv delaet zavisimo tipizirovannye yazyki shozhimi s programmnym obespecheniem avtomatizacii dokazatelstv naprimer interaktivnyj dokazatel teorem Coq Sistemy lyambda kubaHenk Barendregt razrabotal lyambda kub v kachestve sredstva klassifikacii sistem tipov po tryom osyam Kazhdyj iz vosmi uglov kubicheskoj diagrammy sootvetstvuet sisteme tipov V naibolee bednoj vershine kuba nahoditsya prosto tipizirovannoe lyambda ischislenie a v naibolee bogatoj ischislenie konstrukcij Tryom osyam kuba sootvetstvuyut tri razlichnyh dopolneniya k prosto tipizirovannomu lyambda ischisleniyu dopolnenie zavisimyh tipov dopolnenie polimorfizma i dopolnenie konstruktorov tipov vysshego poryadka Formalnoe opredelenieOchen uproshyonno zavisimyj tip mozhno predstavit kak tip indeksirovannogo semejstva mnozhestv Bolee formalno dlya tipa A U displaystyle A mathcal U gde U displaystyle mathcal U vselennaya tipov mozhno opredelit semejstvo tipov B displaystyle B sopostavlyayushee kazhdomu termu a A displaystyle a A tip B a U displaystyle B a mathcal U chto zapisyvaetsya kak B A U displaystyle B A to mathcal U Funkciya chya oblast znachenij variruetsya v zavisimosti ot eyo argumenta nazyvaetsya zavisimoj funkciej Tip etoj funkcii nazyvaetsya zavisimym proizvedeniem tipov pi tipom ili prosto zavisimym tipom Zavisimyj tip zapisyvaetsya dlya dannogo sluchaya kak P x A B x displaystyle Pi x A B x ili P x A B x displaystyle Pi x A B x Esli B displaystyle B yavlyaetsya konstantoj to zavisimyj tip uproshaetsya do obychnoj funkcii A B displaystyle A to B Inache govorya P x A B displaystyle Pi x A B ravnoznachen funkcionalnomu tipu A B displaystyle A to B Nazvanie pi tip podchyorkivaet chto takoj tip yavlyaetsya dekartovym proizvedeniem tipov Pi tipy takzhe mogut byt predstavleny kak modeli kvantorov vseobshnosti Naprimer esli Vec R n displaystyle mbox Vec mathbb R n kortezh iz n displaystyle n veshestvennyh chisel to P n N Vec R n displaystyle Pi n mathbb N mbox Vec mathbb R n tip funkcij kotorye dlya vsyakogo naturalnogo n displaystyle n vozvrashayut kortezh veshestvennyh chisel razmera n displaystyle n Obychnoe angl yavlyaetsya tem chastnym sluchaem kogda oblast znachenij ne zavisit ot vhodnogo parametra naprimer P n N R displaystyle Pi n mathbb N mathbb R tip funkcij iz naturalnyh v veshestvennye oboznachaemyh N R displaystyle mathbb N to mathbb R v prosto tipizirovannom lyambda ischislenii Polimorfnye funkcii yavlyayutsya vazhnym primerom zavisimyh funkcij to est funkcij imeyushih zavisimyj tip Dlya nekotorogo zadannogo tipa takie funkcii obrabatyvayut znacheniya etogo tipa ili znacheniya tipa postroennogo na osnove etogo tipa Polimorfnaya funkciya vozvrashayushaya znacheniya tipa C displaystyle C budet imet polimorfnyj tip zapisyvaemyj kak P A U A C displaystyle Pi A mathcal U A to C LiteraturaChlipala A Certified Programming with Dependent Types A Pragmatic Introduction to the Coq Proof Assistant MIT Press 2013 440 p ISBN 9780262026659 tekst s sajta avtora angl Jeremy Paul Condit Dependent Types for Safe Systems Software PhD dissertation University of California at Berkeley 2007 V state ne hvataet ssylok na istochniki sm rekomendacii po poisku Informaciya dolzhna byt proveryaema inache ona mozhet byt udalena Vy mozhete otredaktirovat statyu dobaviv ssylki na avtoritetnye istochniki v vide snosok 11 dekabrya 2021

NiNa.Az

NiNa.Az - Абсолютно бесплатная система, которая делится для вас информацией и контентом 24 часа в сутки.
Взгляните
Закрыто