依赖类型

计算机科学逻辑中,依赖类型(或依值类型dependent type)是指依赖于值的类型,其理论同时包含了数学基础中的类型论和计算机编程中用以减少程序错误类型系统两方面。在 Per Martin-Löf直觉类型论中,依赖类型可对应于谓词逻辑中的全称量词存在量词;在依赖类型函数式编程语言ATS英语ATS (programming language)AgdaDependent ML英语Dependent MLEpigram英语Epigram (programming language)F*Idris中,依赖类型系统通过极其丰富的类型表达能力使得程序规范得以借助类型的形式被检查,从而有效减少程序错误。

依赖类型的两个常见实例是依赖函数类型(又称依赖乘积类型Π-类型)和依赖值对类型(又称依赖总和类型Σ-类型)。一个依赖类型函数的返回值类型可以依赖于某个参数的具体值,而非仅仅参数的类型,例如,一个输入参数为整型值n的函数可能返回一个长度为n的数组;一个依赖类型值对中的第二个值可以依赖于第一个值,例如,依赖类型可表示这样的类型:它由一对整数组成,其中的第二个数总是大于第一个数。

依赖类型增加了类型系统的复杂度。由于确定两个依赖于值的类型的等价性需要涉及具体的计算,若允许在依赖类型中使用任意值的话,其类型检查将会成为不可判定问题;换言之,无法确保程序的类型检查一定会停机。

由于Curry-Howard同构揭示了程序语言的类型论与证明论的直觉逻辑之间的紧密关联性,以依赖类型系统为基础的编程语言大多同时也作为构造证明与可验证程序的辅助工具而存在,如 Coq 和 Agda(但并非所有证明辅助工具都以类型论为基础);近年来,一些以通用和系统编程为目的的编程语言被设计出来,如 Idris。

一些以证明辅助为主要目的的编程语言采用强函数式编程(total functional programming),这消除了停机问题,同时也意味着通过它们自身的核心语言无法实现任意无限递归,不是图灵完全的,如 Coq 和 Agda;另外一些依赖类型编程语言则是图灵完全的,如 Idris、由 ML 衍生而来的 ATS 和 由 F# 衍生而来的 F*。

形式化定义

Π-类型

在全类(论域中全部类型构成的类型) 中给定一个类型 ,存在着类型族 为每一项 赋予一个类型 。一个值域依赖于其参数的函数,称之为一个依赖类型函数,该函数的类型则称之为依赖类型依赖乘积类型Π-类型。在此例子中,依赖类型可以写作

B为常数,则依赖类型退化成一般形态的函数 。即 等价于函数类型

被称之为“Π-类型”的原因是它可以被看作是类型的笛卡尔积。Π-类型同时也可被看作是全称量词的模型。

例如,表示实数-元组类型,则 表示这样的函数类型:给定一个自然数n,该函数返回一个大小为n的实数元组。一般的函数空间可以看作依赖型函数的一个特例,当函数返回值类型实质上并不依赖于输入时,如 即为从自然数到实数的函数类型,它可以在简单类型lambda演算中被写作

多态是依赖类型函数的一个重要实例。给定一个类型,函数作用于该类型的元素之上。一个返回元素类型为C的多态函数可能拥有如下的多态类型:

Σ-类型

依赖函数类型的对偶是依赖值对类型(或依赖总和类型Σ-类型)。它与余积不交并的概念相类似。Σ-类型可以被理解成存在量词的模型。写作:

依赖值对类型表示一个值对,其中第二项的类型依赖于第一项的值。若

。若B为常数,则依赖值对类型退化为一般的乘积类型,即笛卡尔积

Lambda 立方

Henk Barendregt 提出了 Lambda 立方模型,用于对不同的类型系统的表达能力加以区分。Lambda 立方的八个顶点分别对应各自的类型系统,简单类型lambda演算位于表达能力最低的顶点上,而构造演算(calculus of constructions)则位于表达能力最强的顶点上。

一阶依赖类型

一阶依赖类型 ,对应于逻辑框架 LF,是通过把简单类型lambda演算的函数空间一般化为依赖乘积类型而获得的。

二阶依赖类型

二阶依赖类型 ,通过允许对 类型构造子的量化得到。此时,依赖乘积类型涵括了简单类型lambda演算中的系统F 中的

高阶依赖类型多态 lambda 演算

高阶类型系统 扩充了 ,使之支持 Lambda 立方中的全部四种表达形式:从项到项的函数、从类型到类型的函数、从项到类型的函数、以及从类型到项的函数。这对应于构造演算(calculus of constructions),而构造演算则是证明辅助器 Coq 所基于的构造归纳演算[1]理论的基础。

依赖类型编程语言

语言 是否活跃开发中 范式[脚注 1] 策略(tactics) 证明项 终止检查 类型允许依赖于[脚注 2] 全类 证明无关性 是否支持程序抽取 程序抽取是否消除无关项
Agda [2] 纯函数式 少且有限[脚注 3] 是(可选) 任意项 是(可选)[脚注 4] 证明无关性参数[4] HaskellJavaScript [4]
ATS英语ATS (programming language) [5] 函数式 / 命令式 [6] ? ? ? ?
Cayenne[7] 纯函数式 任意项 ? ?
Gallina(Coq [8] 纯函数式 任意项 [脚注 5] Haskell、SchemeOCaml
Dependent ML英语Dependent ML [脚注 6] ? ? ? 自然数 ? ? ? ?
Guru[9] [10] 纯函数式[11] hypjoin[12] [11] 任意项 Carraway
Idris [13] 纯函数式[14] [15] 是(可选) 任意项 [15]
Matita英语Matita [16] 纯函数式 任意项 OCaml
Nuprl英语Nuprl 纯函数式 任意项 ? ?
F* 函数式 / 命令式 ? ? ? ? ? ? ? ?
PVS英语Prototype Verification System ? ? ? ? ? ? ? ?
Sage[17] ? 混合类型检查 ? ? ? ? ? ? ? ?
Twelf英语Twelf 逻辑式 ? 是(可选) 任意(LF)项 ? ?

脚注

  1. ^ 这里专指核心语言之编程范式,而非任何 tactic 或代码生成子语言的范式。
  2. ^ 受到语义约束,诸如全类(universe)的约束。
  3. ^ 求解器。[3]
  4. ^ 可选的全类、可选的全类多态、可选的显式全类指定。
  5. ^ 全类,由全类约束自动推导(不同于 Agda 的全类多态)和可选的全类约束回显。
  6. ^ 已由 ATS 取代。

参见

参考文献

  1. ^ Announce:Calculus of Inductive Constructions. [2019-04-12]. (原始内容存档于2020-11-11). 
  2. ^ Agda download page. [2014-08-24]. (原始内容存档于2019-06-27). 
  3. ^ Agda Ring Solver. [2014-08-24]. (原始内容存档于2009-04-17). 
  4. ^ 4.0 4.1 Announce: Agda 2.2.8. [2014-08-24]. (原始内容存档于2011-07-18). 
  5. ^ ATS Changelog. [2014-08-24]. (原始内容存档于2012-03-02). 
  6. ^ email from ATS inventor Hongwei Xi. [2014-08-24]. (原始内容存档于2013-02-04). 
  7. ^ Augustsson, Lennart. Cayenne – a language with dependent types. ICFP '98. Proceedings of the third ACM SIGPLAN international conference on Functional programming. 1998: 239–250. CiteSeerX 10.1.1.47.155可免费查阅. S2CID 18331937. doi:10.1145/289423.289451可免费查阅. 
  8. ^ Coq CHANGES in Subversion repository. [2014-08-24]. (原始内容存档于2018-09-29). 
  9. ^ Guru页面存档备份,存于互联网档案馆
  10. ^ Guru SVN. [2014-08-24]. (原始内容存档于2015-11-18). 
  11. ^ 11.0 11.1 Aaron Stump. Verified Programming in Guru (PDF). 6 April 2009 [28 September 2010]. (原始内容 (PDF)存档于2009年12月29日). 
  12. ^ Adam Petcher. Deciding Joinability Modulo Ground Equations in Operational Type Theory (PDF). 1 April 2008 [14 October 2010]. (原始内容存档 (PDF)于2010-07-19). 
  13. ^ Idris git repository. [永久失效連結]
  14. ^ Idris, a language with dependent types - extended abstract (PDF). [2014-08-24]. (原始内容 (PDF)存档于2011-07-16). 
  15. ^ 15.0 15.1 Edwin Brady. How does Idris compare to other dependently-typed programming languages?. 
  16. ^ Matita SVN. [2014-08-24]. (原始内容存档于2006-05-08). 
  17. ^ Sage页面存档备份,存于互联网档案馆

延伸阅读

Read other articles:

Людина із золотою рукоюThe Man with the Golden Arm Жанр драмаРежисер Отто ПремінгерПродюсер Отто ПремінгерСценарист Волтер НьюманЛьюїс МельцерБен ХектНа основі роману Нельсона Альгрена[en]У головних ролях Френк СінатраЕлінор ПаркерКім НовакАрнольд СтенгДеррен МакГевінРоберт Штр

 

Este artigo não cita fontes confiáveis. Ajude a inserir referências. Conteúdo não verificável pode ser removido.—Encontre fontes: ABW  • CAPES  • Google (N • L • A) (Setembro de 2020) A Pia do Urso, que dá nome ao ecoparque. O Ecoparque Sensorial da Pia do Urso é um ecoparque localizado no lugar da Pia do Urso, freguesia de São Mamede, concelho da Batalha, distrito de Leiria, em Portugal. Constitui-se em um espaço rural...

 

Artikel ini sebatang kara, artinya tidak ada artikel lain yang memiliki pranala balik ke halaman ini.Bantulah menambah pranala ke artikel ini dari artikel yang berhubungan atau coba peralatan pencari pranala.Tag ini diberikan pada Mei 2016. Knock, KnockSutradara Eli Roth Produser Miguel Asensio Colleen Camp John T. Degraye Cassian Elwes Nicolás López (Chilean director) Eli Roth Ditulis oleh Guillermo Amoedo Nicolás López Eli Roth PemeranKeanu ReevesLorenza IzzoAna de ArmasSinematograferAn...

穆罕默德·布莱克 個人信息全名 Mohammed bin Ibrahim bin Mohammed Al-Breik出生日期 (1992-09-15) 1992年9月15日(31歲)出生地點  沙烏地阿拉伯利雅德身高 1.72米位置 右后卫俱乐部信息現在所屬 希拉尔球衣號碼 2青年隊2009–2014 希拉尔職業俱乐部*年份 球隊 出场 (进球)2014– 希拉尔 144 (5)2015 → 阿爾拉德 13 (0)国家队‡2015– 沙特阿拉伯 42 (1) * 職業俱乐部出场次數與进球數僅計算國內...

 

CityRail Tentang Mode Kereta komuterKereta antarkotaGerbong Pemilik Pemerintah New South Wales Daerah Operasi Greater Sydney Bisnis Didirikan 1990 Operasi Jaringan 2,060 km Stasiun 305 Sistem Tiket Automated Fare Collection System Angkutan umum | lbs Logo CityRail hingga 2013 Concourse  Central Railway Station, stasiun utama jaringan CityRail. Stasiun ini dibuka di tempat ini pada 1906. CityRail adalah sebuah divisi operasi dari RailCorp, sebuah perusahaan milik pemerintah negara ba...

 

هذه المقالة يتيمة إذ تصل إليها مقالات أخرى قليلة جدًا. فضلًا، ساعد بإضافة وصلة إليها في مقالات متعلقة بها. (نوفمبر 2019) تابيثا جوليان   معلومات شخصية الميلاد 19 أغسطس 1967 (56 سنة)  سان أنطونيو  مواطنة الولايات المتحدة  الزوج مايكل لويس  الحياة العملية المدرسة الأم جا...

Mountain of Antarctica Adélie penguins breed in the IBA Mount Archer is a rock peak immediately south of Archer Point on the west side of Harald Bay in Antarctica. The peak was mapped from aerial photos taken in February 1959 by the ANARE (Australian National Antarctic Research Expeditions) led by Phillip Law. It is named after Archer Point.[1] Important Bird Area A 204 ha site comprising the lower eastern extremity of Mount Archer and the whole of neighbouring Kartografov Islan...

 

17th–18th-century dispute among Catholic missionaries Not to be confused with Great Rites Controversy. Matteo Ricci (left) and Xu Guangqi (Chinese: 徐光啓) (right) in the Chinese edition of Euclid's Elements (Chinese: 幾何原本) published in 1670 The Chinese Rites controversy (simplified Chinese: 中国礼仪之争; traditional Chinese: 中國禮儀之爭; pinyin: Zhōngguó Lǐyí Zhī Zhēng) was a dispute among Catholic missionaries over the religiosity of Confu...

 

Mountain in Potosí Department, Bolivia This article is about the mountain in the Potosí Department, Bolivia. For other uses, see Kuntur Nasa. Kuntur NasaCordillera de los Frailes, looking west. Pari Chata is on the right in the background, left of it is the Pillku Mayu valley. Kuntur Nasa is partly visible behind Pari Chata (darker mountain on the left)Highest pointElevation3,800 m (12,500 ft)Coordinates19°20′S 66°3′W / 19.333°S 66.050°W / -19....

Serbian pop-folk singer Indira RadićИндира РадићRadić in 2012Background informationBirth nameIndira SubotićBorn (1966-06-14) 14 June 1966 (age 57)Dragalovci, SR Bosnia and Herzegovina, SFR YugoslaviaGenresfolk, turbo-folk, pop-folkOccupation(s)SingerYears active1991–presentLabelsDiskos, PGP-RTS, Grand Production (formerly ZaM/Zabava miliona)Musical artist Indira Radić (née Subotić; Serbian Cyrillic: Индира Радић, née Суботић; born 14 June 1...

 

RawasariKelurahanNegara IndonesiaProvinsiDaerah Khusus Ibukota JakartaKota AdministrasiJakarta PusatKecamatanCempaka PutihKodepos10570Kode Kemendagri31.71.05.1003 Kode BPS3173050001 Luas1,25 km²Jumlah penduduk25.857 jiwaKepadatan20.685,60 jiwa/km² Sebuah pasar malam di Rawasari, Jakarta Pusat. Rawasari adalah sebuah kelurahan di Kecamatan Cempaka Putih, Jakarta Pusat, Daerah Khusus Ibukota Jakarta, Indonesia. Pranala luar lbsKecamatan Cempaka Putih, Kota Administrasi Jakarta Pusat, Dae...

 

Discipline of philosophy that deals with language and meaning Not to be confused with Linguistic philosophy or philosophy of linguistics. Part of a series onPhilosophy  Philosophy portal Contents Outline Lists Glossary History Categories Disambiguation Philosophies By period Ancient Ancient Egyptian Ancient Greek Medieval Renaissance Modern Contemporary Analytic Continental By region African Egypt Ethiopia South Africa Eastern philosophy Chinese Indian Indonesia Japan Korea Vietnam I...

Ethiopian television channel Television channel LTV EthiopiaCountryEthiopiaNetworkTelevision networkProgrammingPicture format1080p (HDTV) & 576i (SDTV), 16:9)OwnershipOwnerGemechis BubaHistoryLaunchedJanuary 2017; 6 years ago (2017-01)LinksWebsitehttps://ltvethiopia.tv/ LTV Ethiopia is an Ethiopian satellite television channel owned and started by Gemechis Buba. It was created for the purpose of spreading the Ethiopian culture to the world through its programming an...

 

1943 novel by Roald Dahl For other uses, see Gremlin (disambiguation). The Gremlins Cover of the first edition of The GremlinsAuthorRoald DahlIllustratorBill JusticeAl DempsterCountryUnited KingdomLanguageEnglishPublished1943 Walt Disney Company (original)Dark Horse Comics (current)Media typeHardbackISBN1-59307-496-4 The Gremlins is a children's book written by British author Roald Dahl and published in 1943.[1] In writing the book, Dahl draws on his own experience as a Royal Air...

 

This biography of a living person needs additional citations for verification. Please help by adding reliable sources. Contentious material about living persons that is unsourced or poorly sourced must be removed immediately from the article and its talk page, especially if potentially libelous.Find sources: Heinke van der Merwe – news · newspapers · books · scholar · JSTOR (June 2021) (Learn how and when to remove this template message) Rugby playerHe...

PausAnastasius IIIAwal masa kepausanSeptember 911Akhir masa kepausanNovember 913PendahuluSergius IIIPenerusLandoInformasi pribadiNama lahirAnastasiusLahirtanggal tidak diketahuiRoma, ItaliaMeninggalNovember 913Roma, ItaliaPaus lainnya yang bernama Anastasius Paus Anastasius III, nama lahir Anastasius (???-November 913), adalah Paus Gereja Katolik Roma sejak September 911 hingga November 913. Didahului oleh:Sergius III Paus911 – 913 Diteruskan oleh:Lando Artikel bertopik Paus dalam Gere...

 

ZX Interface 1 ZX Spectrum + Interface 1 + Microdrive ZX Interface 1 с подключенным ZX Microdrive ZX Interface 1 — модуль расширения для компьютера ZX Spectrum, выпущенный Sinclair Research Ltd в 1983 году. Цена устройства составила 49,95 фунтов без ZX Microdrive, и 79,95 фунтов с одним Microdrive. Позже цена комплекта с Microdrive была увеличена до 99...

 

Australian rules footballer Australian rules footballer Eden Zanker Zanker playing for the Casey Demons in July 2019Personal informationDate of birth (1999-11-11) 11 November 1999 (age 24)Original team(s) Bendigo Pioneers (TAC Cup Girls)Draft No. 6, 2017 AFL Women's draftDebut Round 5, 2018, Melbourne vs. Brisbane, at Casey FieldsHeight 183 cm (6 ft 0 in)Position(s) ForwardClub informationCurrent club MelbourneNumber 29Playing career1Years Club Games (Goals)2018...

Le groupe H de la coupe du monde de football de 2006, qui s'est disputée en Allemagne du 9 juin au 9 juillet 2006, comprend quatre équipes dont les deux premières se qualifient pour les huitièmes de finale de la compétition. Le tirage au sort, effectué le 9 décembre 2005 à Leipzig, a placé les équipes d'Espagne, de Tunisie, d'Ukraine et d'Arabie saoudite dans le groupe H. Supporters ukrainiens, le 23 juin 2006 à Berlin. Classement Classement Rang Équipe Pts J G N P Bp Bc Diff 1 Es...

 

American politician (1927–2021) For other people with the same name, see Edwin Edwards (disambiguation). Edwin EdwardsEdwards in 198650th Governor of LouisianaIn officeJanuary 13, 1992 – January 8, 1996LieutenantMelinda SchwegmannPreceded byBuddy RoemerSucceeded byMike FosterIn officeMarch 12, 1984 – March 14, 1988LieutenantRobert Louis Freeman Sr.Preceded byDave TreenSucceeded byBuddy RoemerIn officeMay 9, 1972 – March 10, 1980LieutenantJimmy FitzmorrisPrec...

 

Strategi Solo vs Squad di Free Fire: Cara Menang Mudah!