Зале́жний тип (англ. dependent type) в інформатиці та логіці — тип, який залежить від деякого значення. Залежні типи відіграють ключову роль в інтуїціоністській теорії типів і побудові функційних мов програмування таких як , Agda, [en] та .
Наприклад, тип, що описує n-кортежі дійсних чисел, є залежним, оскільки він «залежить» від величини n.
Рішення про рівність залежних типів у програмі може вимагати обчислень. Якщо в залежних типах допущено використання довільних значень, то рішення про рівність типів може включати перевірку рівності результату роботи двох довільних програм. Таким чином, перевірка типу стає нерозв'язною задачею.
Ізоморфізм Каррі — Говарда дозволяє будувати типи для вираження як завгодно складних математичних властивостей. Якщо надано конструктивне доведення того, що тип «заселений» (тобто, існує хоча б одне значення цього типу), компілятор зможе перевірити це доведення і перетворити його на виконуваний код, що обчислює значення. Наявність перевірки доведень робить залежно-типізовані мови схожими з програмним забезпеченням автоматизації доведень (наприклад, інтерактивне доведення теорем Coq).
Системи лямбда-куба
Генк Барендрегт розробив лямбда-куб як засіб класифікації систем типів за трьома осями. Кожен із восьми кутів кубічної діаграми відповідає системі типів. У найбіднішій вершині куба міститься , а в найбагатшій — числення конструкцій. Трьом осям куба відповідають три різні доповнення до просто типізованого лямбда-числення: доповнення залежних типів, доповнення поліморфізму і доповнення конструкторів типів вищого порядку.
Формальне визначення
Дуже спрощено залежний тип можна подати як тип індексованого сімейства множин. Формальніше, для типу (де — всесвіт типів), можна визначити сімейство типів , що зіставляє кожному терму тип , що записується як . Функцію, чия область значень варіюється залежно від її аргументу, називають залежною функцією. Тип цієї функції називають залежним добутком типів, пі-типом або просто залежним типом. Залежний тип записують для цього випадку як
або
- .
Якщо є константою, то залежний тип спрощується до звичайної функції . Інакше кажучи, рівнозначний функційному типу . Назва «пі-тип» наголошує, що такий тип є декартовим добутком типів. Пі-типи також можна подати як моделі кванторів загальності.
Наприклад, якщо — кортеж з дійсних чисел, то — тип функцій, які для будь-якого натурального повертають кортеж дійсних чисел розміру . Звичайний функційний простір є тим окремим випадком, коли область значень не залежить від вхідного параметра: наприклад, — тип функцій з натуральних у дійсні, що позначаються у .
є важливим прикладом залежних функцій, тобто функції, що мають залежний тип. Для певного заданого типу такі функції обробляють значення цього типу, чи значення типу, побудованого з урахуванням цього типу. Поліморфна функція, що повертає значення типу , матиме поліморфний тип, що записується як
Література
- Chlipala, A. Certified Programming with Dependent Types: A Pragmatic Introduction to the Coq Proof Assistant. — MIT Press, 2013. — 440 p. — . (текст із сайту автора(англ.))
- Jeremy Paul Condit. Dependent Types for Safe Systems Software. — PhD dissertation. — University of California at Berkeley, 2007.
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Zale zhnij tip angl dependent type v informatici ta logici tip yakij zalezhit vid deyakogo znachennya Zalezhni tipi vidigrayut klyuchovu rol v intuyicionistskij teoriyi tipiv i pobudovi funkcijnih mov programuvannya takih yak Agda en ta Napriklad tip sho opisuye n kortezhi dijsnih chisel ye zalezhnim oskilki vin zalezhit vid velichini n Rishennya pro rivnist zalezhnih tipiv u programi mozhe vimagati obchislen Yaksho v zalezhnih tipah dopusheno vikoristannya dovilnih znachen to rishennya pro rivnist tipiv mozhe vklyuchati perevirku rivnosti rezultatu roboti dvoh dovilnih program Takim chinom perevirka tipu staye nerozv yaznoyu zadacheyu Izomorfizm Karri Govarda dozvolyaye buduvati tipi dlya virazhennya yak zavgodno skladnih matematichnih vlastivostej Yaksho nadano konstruktivne dovedennya togo sho tip zaselenij tobto isnuye hocha b odne znachennya cogo tipu kompilyator zmozhe pereviriti ce dovedennya i peretvoriti jogo na vikonuvanij kod sho obchislyuye znachennya Nayavnist perevirki doveden robit zalezhno tipizovani movi shozhimi z programnim zabezpechennyam avtomatizaciyi doveden napriklad interaktivne dovedennya teorem Coq Sistemi lyambda kubaGenk Barendregt rozrobiv lyambda kub yak zasib klasifikaciyi sistem tipiv za troma osyami Kozhen iz vosmi kutiv kubichnoyi diagrami vidpovidaye sistemi tipiv U najbidnishij vershini kuba mistitsya a v najbagatshij chislennya konstrukcij Trom osyam kuba vidpovidayut tri rizni dopovnennya do prosto tipizovanogo lyambda chislennya dopovnennya zalezhnih tipiv dopovnennya polimorfizmu i dopovnennya konstruktoriv tipiv vishogo poryadku Formalne viznachennyaDuzhe sprosheno zalezhnij tip mozhna podati yak tip indeksovanogo simejstva mnozhin Formalnishe dlya tipu A U displaystyle A mathcal U de U displaystyle mathcal U vsesvit tipiv mozhna viznachiti simejstvo tipiv B displaystyle B sho zistavlyaye kozhnomu termu a A displaystyle a A tip B a U displaystyle B a mathcal U sho zapisuyetsya yak B A U displaystyle B A to mathcal U Funkciyu chiya oblast znachen variyuyetsya zalezhno vid yiyi argumentu nazivayut zalezhnoyu funkciyeyu Tip ciyeyi funkciyi nazivayut zalezhnim dobutkom tipiv pi tipom abo prosto zalezhnim tipom Zalezhnij tip zapisuyut dlya cogo vipadku yak P x A B x displaystyle Pi x A B x abo P x A B x displaystyle Pi x A B x Yaksho B displaystyle B ye konstantoyu to zalezhnij tip sproshuyetsya do zvichajnoyi funkciyi A B displaystyle A to B Inakshe kazhuchi P x A B displaystyle Pi x A B rivnoznachnij funkcijnomu tipu A B displaystyle A to B Nazva pi tip nagoloshuye sho takij tip ye dekartovim dobutkom tipiv Pi tipi takozh mozhna podati yak modeli kvantoriv zagalnosti Napriklad yaksho Vec R n displaystyle mbox Vec mathbb R n kortezh z n displaystyle n dijsnih chisel to P n N Vec R n displaystyle Pi n mathbb N mbox Vec mathbb R n tip funkcij yaki dlya bud yakogo naturalnogo n displaystyle n povertayut kortezh dijsnih chisel rozmiru n displaystyle n Zvichajnij funkcijnij prostir ye tim okremim vipadkom koli oblast znachen ne zalezhit vid vhidnogo parametra napriklad P n N R displaystyle Pi n mathbb N mathbb R tip funkcij z naturalnih u dijsni sho poznachayutsya N R displaystyle mathbb N to mathbb R u ye vazhlivim prikladom zalezhnih funkcij tobto funkciyi sho mayut zalezhnij tip Dlya pevnogo zadanogo tipu taki funkciyi obroblyayut znachennya cogo tipu chi znachennya tipu pobudovanogo z urahuvannyam cogo tipu Polimorfna funkciya sho povertaye znachennya tipu C displaystyle C matime polimorfnij tip sho zapisuyetsya yak 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 iz sajtu avtora angl Jeremy Paul Condit Dependent Types for Safe Systems Software PhD dissertation University of California at Berkeley 2007