Система F

Система F (полиморфное лямбда-исчисление, система , типизированное лямбда-исчисление второго порядка) — система типизированного лямбда-исчисления, отличающаяся от просто типизированной системы наличием механизма универсальной квантификации над типами. Эту систему разработал в 1972 году Жан-Ив Жирар [1] в контексте теории доказательств в логике. Независимо от него подобную систему предложил в 1974 году Джон Рейнольдс[2]. Система F позволяет формализовать концепцию параметрического полиморфизма в языках программирования и служит теоретической основой для таких языков программирования как Haskell и ML.

Система F допускает конструирование термов, зависящих от типов. Технически это достигается через механизм абстрагирования терма по типу, что в результате даёт новый терм. Традиционно для такой абстракции используют символ большой лямбды . Например, взяв терм типа и абстрагируясь по переменной типа , получаем терм . Этот терм представляет собой функцию из типов в термы. Применяя эту функцию к различным типам, мы будем получать термы с идентичной структурой, но разными типами:

— терм типа ;
— терм типа .

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

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

Синтаксис типов

Типы Системы F конструируются из набора переменных типа с помощью операторов и . По традиции для переменных типа используют греческие буквы. Правила формирования типов таковы:

  • (Переменная типа) Если — переменная типа, то — это тип;
  • (Стрелочный тип) Если и являются типами, то — это тип;
  • (Универсальный тип) Если является переменной типа, а — типом, то — это тип.

Внешние скобки часто опускают, оператор считают правоассоциативным, а действие оператора продолжающимся вправо насколько это возможно. Например, — стандартное сокращение для .

Синтаксис термов

Термы Системы F конструируются из набора термовых переменных (, , и т.д.) по следующим правилам

  • (Переменная) Если — переменная, то — это терм;
  • (Абстракция) Если является переменной, — типом, а — термом, то — это терм;
  • (Применение) Если и являются термами, то — это терм;
  • (Универсальная абстракция) Если является переменной типа, а — термом, то — это терм;
  • (Универсальное применение) Если является термом, а — типом, то — это терм.

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

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

  • (Абстракция по Карри) Если является переменной, а — термом, то — это терм,

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

Правила редукции

Помимо стандартного для лямбда-исчисления правила -редукции

в системе F в стиле Чёрча вводится дополнительное правило,

,

позволяющее вычислять применение терма к типу через механизм подстановки типа вместо переменной типа.

Контексты типизации и утверждение типизации

Контекстом, как и в просто типизированном лямбда-исчислении, называется множество утверждений о приписывании типов различным переменным, разделённых запятой

В контекст можно добавить «свежую» для этого контекста переменную: если — допустимый контекст, не содержащий переменной , а — тип, то — тоже допустимый контекст.

Общий вид утверждения о типизации таков:

Это читается следующим образом: в контексте терм имеет тип .

Правила типизации по Чёрчу

В Системе F, типизированной по Чёрчу, приписывание типов термам осуществляется в соответствии со следующими правилами:

(Начальное правило) Если переменная присутствует с типом в контексте , то в этом контексте имеет тип . В виде правила вывода

(Правило введения ) Если в некотором контексте, расширенном утверждением, что имеет тип , терм имеет тип , то в упомянутом контексте (без ), лямбда-абстракция имеет тип . В виде правила вывода

(Правило удаления ) Если в некотором контексте терм имеет тип , а терм имеет тип , то применение имеет тип . В виде правила вывода

(Правило введения ) Если в некотором контексте терм имеет тип , то в этом контексте терм имеет тип . В виде правила вывода

Это правило требует оговорки: переменная типа не должна встречаться в утверждениях типизации контекста .

(Правило удаления ) Если в некотором контексте терм имеет тип , и — это тип, то в этом контексте терм имеет тип . В виде правила вывода

Правила типизации по Карри

В Системе F, типизированной по Карри, приписывание типов термам осуществляется в соответствии со следующими правилами:

(Начальное правило) Если переменная присутствует с типом в контексте , то в этом контексте имеет тип . В виде правила вывода

(Правило введения ) Если в некотором контексте, расширенном утверждением, что имеет тип , терм имеет тип , то в упомянутом контексте (без ), лямбда-абстракция имеет тип . В виде правила вывода

(Правило удаления ) Если в некотором контексте терм имеет тип , а терм имеет тип , то применение имеет тип . В виде правила вывода

(Правило введения ) Если в некотором контексте терм имеет тип , то в этом контексте этому терму может быть приписан и тип . В виде правила вывода

Это правило требует оговорки: переменная типа не должна встречаться в утверждениях типизации контекста .

(Правило удаления ) Если в некотором контексте терм имеет тип , и — это тип, то в этом контексте этому терму может быть приписан и тип . В виде правила вывода

Пример. По начальному правилу:

Применим правило удаления , взяв в качестве тип

Теперь по правилу удаления имеем возможность применить терм сам к себе

и, наконец, по правилу введения

Это пример терма, типизируемого в Системе F, но не в просто типизированной системе.

Представление типов данных

Система F обладает достаточными выразительными средствами, для того чтобы напрямую реализовать многие типы данных, используемые в языках программирования. Будем работать в версии Чёрча системы F.

Пустой тип. Тип

необитаем в системе F, то есть в ней отсутствуют термы с таким типом.

Единичный тип. У типа

в системе F имеется единственный находящийся в нормальной форме обитатель — терм

.

Булев тип. В системе F задается так:

.

У этого типа ровно два обитателя, отождествляемых с двумя булевыми константами

Конструкция условного оператора

Эта функция удовлетворяет естественным требованиям

и

для произвольного типа и произвольных и . В этом легко убедиться, раскрыв определения и выполнив -редукции.

Тип произведения. Для произвольных типов и тип их декартова произведения

населён парой

для каждых и . Проекции пары задаются функциями

Эти функции удовлетворяют естественным требованиям и .

Тип суммы. Для произвольных типов и тип их суммы

населён либо термом типа , либо термом типа , в зависимости от применённого конструктора

Здесь , . Функция, осуществляющая разбор случаев (сопоставление с образцом), имеет вид

Эта функция удовлетворяет следующим естественным требованиям

и

для произвольных типов , и и произвольных термов и .

Числа Чёрча. Тип натуральных чисел в системе F

населён бесконечным количеством различных элементов, получаемых посредством двух конструкторов и :

Натуральное число может быть получено -кратным применением второго конструктора к первому или, эквивалентно, представлено термом

Свойства

  • Просто типизированная система обладает свойством типовой безопасности: при -редукциях тип лямбда-терма остаётся неизменным, а сама типизация не мешает продвижению вычислений.
  • В своей диссертации Жан-Ив Жирар показал[1], что Система F обладает свойством сильной нормализации: любой допустимый терм за конечное число -редукций приводится к единственной нормальной форме.
  • Система F является импредикативной[англ.] системой, поскольку переменная типа, связываемая квантором всеобщности при определении универсального типа, может замещаться самим определяемым объектом. Например, терм единичного типа может быть применён к собственному типу, порождая терм типа . Как показал Джо Уэллс в 1994 году[3], задача вывода типов для версии Карри Системы F неразрешима. Поэтому при практической реализации языков программирования обычно используют ограниченные, предикативные версии полиморфизма: пренекс-полиморфизм (полиморфизм в стиле ML), полиморфизм ранга 2 и т.п. В случае пренекс-полиморфизма областью определения переменных типа служат только типы без кванторов. В этих системах задача вывода типов разрешима, такой вывод базируется на алгоритме Хиндли — Милнера.
  • Соответствие Карри — Ховарда связывает Систему F с минимальной интуиционистской логикой высказываний второго порядка[англ.], формулы которой построены из пропозициональных переменных с помощью импликации и универсальной квантификации по высказываниям. При этом значения (истина), (ложь), связки (отрицание), (конъюнкция) и (дизъюнкция), а также (квантор существования) могут быть определены так

Отметим, что соответствие Карри — Ховарда ставит в соответствие истине — единичный тип, лжи — пустой тип, конъюнкции — произведение типов, а дизъюнкции — их сумму.

Примечания

  1. 1 2 Girard, Jean-Yves. Interprétation fonctionnelle et élimination des coupures de l’arithmétique d’ordre supérieur : Ph.D. thesis. — Université Paris 7, 1972.
  2. John C. Reynolds. Towards a Theory of Type Structure. — 1974. Архивировано 31 октября 2014 года.
  3. Wells J. B. Typability and type checking in the second-order lambda-calculus are equivalent and undecidable // Proceedings of the 9th Annual IEEE Symposium on Logic in Computer Science (LICS). — 1994. — С. 176–185. Архивировано 22 февраля 2007 года.

Литература

Read other articles:

Carex lanceolata Klasifikasi ilmiah Kerajaan: Plantae Divisi: Tracheophyta Kelas: Liliopsida Ordo: Poales Famili: Cyperaceae Genus: Carex Spesies: Carex lanceolata Nama binomial Carex lanceolataBoott Carex lanceolata adalah spesies tumbuhan seperti rumput yang tergolong ke dalam famili Cyperaceae. Spesies ini juga merupakan bagian dari ordo Poales. Spesies Carex lanceolata sendiri merupakan bagian dari genus Carex.[1] Nama ilmiah dari spesies ini pertama kali diterbitkan oleh Boott. ...

 

Kadato KieKedaton Sultan TidoreTampak depan Kedaton Sultan Tidore (Kadato Kie) di TidoreInformasi umumJenisKadatonGaya arsitekturLang Kie Jiko Sorabi[1]LokasiSoasio, Tidore, Tidore KepulauanNegara IndonesiaMulai dibangun1657; Dibangun Kaicil GolofinoRampung1812-1856; Diperluas dan dibuat lebih permanen 2004-2010; Dibangun kembaliDibongkar1912; Hancur karena konflik Istana Kesultanan Tidore (Kadato Kie) di Tidore. Kadato Kie (Istana Kie), juga disebut Kedaton Tidore, adalah istana...

 

Show cave in Turkey This article is about the cave in Aydın, Turkey. For the cave in Crete, Greece, see Cave of Zeus. Cave of ZeusZeus MağarasıA view of the cave near the entranceLocation of the cave in TurkeyLocationDilek Peninsula-Büyük Menderes Delta National Park, Güzelçamlı, Kuşadası, Aydın, TurkeyCoordinates37°42′41″N 27°12′57″E / 37.71139°N 27.21583°E / 37.71139; 27.21583Depth10–15 m (33–49 ft)Length20 m (66 ft) The...

Borough in Estonia Small borough in Harju County, EstoniaKiiuSmall boroughKiiu TowerKiiuLocation in EstoniaCoordinates: 59°27′05″N 25°22′58″E / 59.45139°N 25.38278°E / 59.45139; 25.38278Country EstoniaCounty Harju CountyMunicipality Kuusalu ParishPopulation (01.01.2012)[1] • Total859 Kiiu is a small borough (Estonian: alevik) in Kuusalu Parish, Harju County, northern Estonia. It has a population of 859 (as of 1 January 2012).&#...

 

1918 film True BlueDirected byFrank LloydWritten byFrank LloydProduced byWilliam FoxStarringWilliam FarnumKathryn AdamsCharles ClaryCinematographyWilliam C. FosterProductioncompanyFox FilmDistributed byFox FilmRelease dateMay 5, 1918Running time60 minutesCountryUnited StatesLanguagesSilentEnglish intertitles True Blue is a 1918 American silent Western film directed by Frank Lloyd and starring William Farnum, Kathryn Adams and Charles Clary.[1] Cast William Farnum as Bob McKeever Kathr...

 

2020年夏季奥林匹克运动会波兰代表團波兰国旗IOC編碼POLNOC波蘭奧林匹克委員會網站olimpijski.pl(英文)(波兰文)2020年夏季奥林匹克运动会(東京)2021年7月23日至8月8日(受2019冠状病毒病疫情影响推迟,但仍保留原定名称)運動員206參賽項目24个大项旗手开幕式:帕维尔·科热尼奥夫斯基(游泳)和马娅·沃什乔夫斯卡(自行车)[1]闭幕式:卡罗利娜·纳亚(皮划艇)&#...

密西西比州 哥伦布城市綽號:Possum Town哥伦布位于密西西比州的位置坐标:33°30′06″N 88°24′54″W / 33.501666666667°N 88.415°W / 33.501666666667; -88.415国家 美國州密西西比州县朗兹县始建于1821年政府 • 市长罗伯特·史密斯 (民主党)面积 • 总计22.3 平方英里(57.8 平方公里) • 陸地21.4 平方英里(55.5 平方公里) • ...

 

本條目存在以下問題,請協助改善本條目或在討論頁針對議題發表看法。 此條目需要編修,以確保文法、用詞、语气、格式、標點等使用恰当。 (2013年8月6日)請按照校對指引,幫助编辑這個條目。(幫助、討論) 此條目剧情、虛構用語或人物介紹过长过细,需清理无关故事主轴的细节、用語和角色介紹。 (2020年10月6日)劇情、用語和人物介紹都只是用於了解故事主軸,輔助�...

 

  الإمارات الإِمَارات العربِيَّة المُتَّحِدة علم الإمارات العربية المتحدة شعار الإمارات العربية المتحدة موقع دولة الإمارات العربية المتحدة في جنوب غرب آسيا الشعار الوطنيالله - الوطن - الرئيس النشيد: عيشي بلادي الأرض والسكان إحداثيات 24°24′N 54°18′E / 24.4°N 54.3°E...

 大日本帝国內閣第二次西園寺内閣だいにじ さいおんじないかく第14任內閣總理大臣西園寺公望肖像內閣總理大臣西園寺公望(第14任)成立日期1911年(明治44年)8月30日總辭日期1912年(大正元年)12月21日執政黨/派系立憲政友會選舉第11屆日本眾議院議員總選舉(日语:第11回衆議院議員総選挙)眾議院解散1912年(明治45年)5月15日內閣閣僚名簿(首相官邸) 第二屆�...

 

NGC 6504   الكوكبة الجاثي  رمز الفهرس 2MASX J17560570+3312300 (Two Micron All-Sky Survey, Extended source catalogue)MCG+06-39-027 (فهرس المجرات الموروفولوجي)NGC 6504 (الفهرس العام الجديد)UGC 11053 (فهرس أوبسالا العام)UZC J175605.7+331231 (فهرس زفيكي المحدّث)Z 1754.2+3312 (فهرس المجرات وعناقيد المجرات)Z 199-29 (فهرس المجرات وعناقيد المجرات)2...

 

Cet article présente la liste des noms des 158 batailles gravées sur l’arc de triomphe de l’Étoile à Paris, qui ont été menées par la Première République et le Premier Empire[1] entre 1792 et 1815 : Sur les faces intérieures des grandes arcades sont gravés les noms de 96 batailles (24 sur chacun des quatre piliers). Sur les faces intérieures des petites arcades sont gravés les noms de 32 batailles (8 sur chacun des quatre piliers). Elles sont regroupées en deux paires d...

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

 

This article is part of a series onPolitics of France Constitutions Fifth Republic Declaration of the Rights of Man and of the Citizen Executive President (list) Emmanuel Macron (LREM) Prime Minister (list) Gabriel Attal (LREM) Government Attal Legislature National Assembly: Membership President: Yaël Braun-Pivet Senate President: Gérard Larcher Congress of the French Parliament Judiciary Constitutional Council Council of State Court of Cassation Court of Audit Cour de Justice de la Répub...

 

مانديليو لا نابول    شعار الاسم الرسمي (بالفرنسية: Mandelieu-la-Napoule)‏(بالفرنسية: Mandelieu)‏    الإحداثيات 43°32′44″N 6°56′15″E / 43.545555555556°N 6.9375°E / 43.545555555556; 6.9375 [1]  [2] تقسيم إداري  البلد فرنسا[3]  خصائص جغرافية  المساحة 31.37 كيلومتر مربع[1]  ...

Pour les articles homonymes, voir Castel. René CastelPortrait de Castel par Louis Germain (1831).FonctionDéputé françaisCalvados10 septembre 1791 - 20 septembre 1792BiographieNaissance 6 octobre 1758VireDécès 15 juin 1832 (à 73 ans)ReimsNationalité françaiseFormation Lycée Louis-le-GrandActivités Homme politique, poète, naturalisteAutres informationsChaire Lycée Louis-le-GrandŒuvres principales Suites à Buffonmodifier - modifier le code - modifier Wikidata René Richard L...

 

Walter Gropius nel 1919 Walter Adolph Gropius (Berlino, 18 maggio 1883 – Boston, 5 luglio 1969) è stato un architetto, designer e urbanista tedesco. È stato uno dei fondatori del Bauhaus. Assieme a Le Corbusier, Frank Lloyd Wright, Alvar Aalto e Ludwig Mies van der Rohe è ricordato come uno dei maestri del Movimento Moderno in architettura. Le sue Officine Fagus, costruite tra il 1911 e il 1913 ad Alfeld an der Leine, sono state iscritte nel 2011 nella Lista dei Patrimoni Mondiali dell'U...

 

1813 battle during the War of the Sixth Coalition This article includes a list of general references, but it lacks sufficient corresponding inline citations. Please help to improve this article by introducing more precise citations. (September 2014) (Learn how and when to remove this message) Battle of SehestedPart of the Dano-Swedish War (1813–1814)Slaget ved Sehested, by Jørgen V. SonneDate10 December 1813[1]LocationSehested, Holstein54°22′00″N 9°49′00″E / þ...

Upcoming national, provincial, and local elections in the country 2025 Philippine general election ← 2022 May 12, 2025 (2025-05-12) 2028 → Senate election← 20222028 →12 (of the 24) seats to the Senate of the Philippines13 seats needed for a majority   Alliance Bagong Pilipinas Liberal   Alliance Makabayan PDP Incumbent Senate President Francis Escudero NPC House of Representatives elections← 20222028 →A...

 

Voce principale: National Basketball Association 1960-1961. NBA Playoffs 1961Il logo delle FinaliDettagli della competizioneSport Pallacanestro OrganizzatoreNBA Periodo—11 aprile 1961 Data1961 VerdettiTitolo East Boston Celtics Titolo West St. Louis Hawks Campione Boston Celtics(4º titolo) Cronologia della competizioneed. successiva →     ← ed. precedente Modifica dati su Wikidata · Manuale Gli NBA Playoffs 1961 si conclusero con la vit...