Каппа есептеу - Kappa calculus

Жылы математикалық логика, категория теориясы, жәнеесептеу техникасы, каппа есептеу Бұлресми жүйе анықтау үшін бірінші реттіфункциялары.

Айырмашылығы жоқ лямбда есебі, каппа есептеуінде жоқжоғары ретті функциялар; оның функциялары маңызды емес бірінші сынып объектілері. Kappa-calculus «typedlambda calculus-тің бірінші ретті фрагментін қайта құру» ретінде жойылуы мүмкін.[1]

Оның функциялары бірінші деңгейдегі объектілер болмағандықтан, каппакалькулез өрнектерін бағалау қажет емесжабылу.

Анықтама

Төмендегі анықтама Хасегаваның 205 және 207 беттеріндегі сызбаларға сәйкес келтірілген.[1]

Грамматика

Kappa калькулясы тұрады түрлері және өрнектер, төмендегі бағдарламамен берілген:

Басқа сөздермен айтқанда,

  • 1 түрі
  • Егер және болып табылады түрі болып табылады.
  • Кез келген айнымалы өрнек болып табылады
  • Егер τ бұл сол кездегі түр өрнек болып табылады
  • Егер τ бұл сол кездегі түр өрнек болып табылады
  • Егер τ типі, ал e - өрнек өрнек болып табылады
  • Егер және онда өрнектер болып табылады өрнек болып табылады
  • Егер х - айнымалы болса, τ типі, ал e - өрнек, содан кейін өрнек болып табылады

The және жазылушылары идентификатор, !, және егер оларды мәтінмәннен бірмәнді түрде анықтауға болатын болса, арезиметрлер алынып тасталады.

Жақындастыру көбінесе-ның тіркесімі үшін аббревиатура ретінде қолданылады және құрамы:

Теру ережелері

Мұнда презентацияда секвенциялар қолданылады) жай терілген лямбда есептеуімен салыстыруды жеңілдету үшін гипотетикалық пікірлерден гөрі. Бұл үшін Хасегавада кездеспейтін қосымша Var ережесі қажет[1]

Каппа есептеуінде өрнек екі түрге ие: оның типі қайнар көзі және оның түрі мақсат. Белгі e өрнегінің бастапқы типі бар екенін көрсету үшін қолданылады және мақсатты түрі .

Каппа есептеуіндегі өрнектер келесі ережелерге сәйкес типтерге бөлінеді:

(Var)
(Идентификатор)
(Жарылыс)
(Comp)
(Көтеру)
(Каппа)

Басқа сөздермен айтқанда,

  • Var: болжау деген тұжырым жасауға мүмкіндік береді
  • Идентификатор: кез келген түрі үшін τ,
  • Жарылыс: кез келген түрі үшін τ,
  • Комп: егер мақсатты түрі түріне сәйкес келеді олар өрнек құру үшін жасалуы мүмкін көзі түрімен және мақсатты түрі
  • Көтеру: егер , содан кейін
  • Каппа: егер біз қорытынды жасай алсақ деген болжам бойынша , содан кейін қорытынды жасауға болады бұл болжамсыз бұл

Теңдіктер

Kappa calculus келесі теңдіктерге бағынады:

  • Бейтараптық: Егер содан кейін және
  • Қауымдастық: Егер , , және , содан кейін .
  • Мерзімі: Егер және содан кейін
  • Көтеруді азайту:
  • Kappa-Reduction: егер х сағатта бос болмаса

Соңғы екі теңдік - есептеуді азайту ережелері, солдан оңға қарай қайта жазу.

Қасиеттері

Түрі 1 деп санауға болады бірлік түрі. Осыған байланысты аргумент типі бірдей және нәтиже типі болатын кез келген екі функция 1 тең болуы керек - өйткені типтің жалғыз мәні бар 1 екі функция әр аргумент үшін осы мәнді қайтаруы керек (Терминалдылық).

Түрі бар өрнектер «тұрақтылар» немесе «жер типінің» мәндері ретінде қарастырылуы мүмкін; бұл себебі 1 бірлік типі болып табылады, сондықтан бұл типтегі функция міндетті түрде тұрақты функция болып табылады. Каппа ережесі абстракциялауға тек абстракцияланатын айнымалы типі болған кезде ғана мүмкіндік беретінін ескеріңіз кейбіреулер үшін τ. Бұл барлық функциялардың бірінші ретті болуын қамтамасыз ететін негізгі механизм.

Категориялық семантика

Kappa calculus ішкі тіл болуға арналғанконтексттік тұрғыдан толық санаттар.

Мысалдар

Бірнеше аргументтері бар өрнектердің бастапқы типтері бар, олар «оң теңгерімсіз» екілік ағаштар. Мысалы, f, A, B және C типті үшоқұжатпен және нәтиженің D типімен болады

Егер сол жақ-ассоциативті қатарластықты анықтайтын болсақ аббревиатура ретінде , содан кейін - мұны, , және - біз бұл функцияны қолдана аламыз:

Өрнектен бастап көзі түрі бар 1, бұл «негізгі мән» және басқа функцияға аргумент ретінде берілуі мүмкін. Егер , содан кейін

Үлкен типтегі функция сияқты lambda calculus-да ішінара қолдану мүмкін:

Алайда жоғары типтер жоқ (яғни ) қатысады. Екенін ескеріңіз, себебі көзі түрі f a емес 1, келесі өрнекті осы уақытқа дейін айтылған жорамалдарға сәйкес теру мүмкін емес:

Бірнеше бағдарламалар бірнеше оқулықтар үшін қолданылатындықтан, оны білу қажет емес ақыл-ой оның типтелуін анықтау үшін функция инераторының; мысалы, егер біз мұны білсек содан кейін өрнек

j c

ретінде терілген болса, жақсы терілген j түрі бар

кейбіреулер үшін α

және β. Бұл қасиет есептеу кезінде маңызды негізгі түрі типтің грамматикасын шектеу арқылы терілген лямбда калькулясынан жоғары ретті функцияларды алып тастау әрекеті қиын болатын нәрсе.

Тарих

Барендрегт алғашында енгізілген[2] комбинациялық алгебра контекстіндегі «функционалдық толықтығы» термині. Каппа есептеу Ламбектің күшімен пайда болды[3] ерікті санаттар үшін функционалды толықтықтың тиісті аналогын тұжырымдау (қараңыз: Гермида мен Джейкобс,[4] бөлім 1). Кейінірек Хасегава каппакалькулусты қолданбалы (қарапайым болса да) бағдарламалау тіліне айналдырды, соның ішінде натурал сандар арифметикасы және алғашқы рекурсия.[1] Қосылымдар көрсеткілер кейінірек тергеуге алынды[5] Power, Thielecke және басқалар.

Нұсқалар

Көмегімен каппа есептеуінің нұсқаларын зерттеуге боладықұрылымдық типтер сияқты сызықтық, аффин,және тапсырыс берді түрлері. Бұл кеңейтулер үшін шектеуді жою қажет өрнек. Мұндай жағдайда × типтегі оператор шынайы декарттық өнім емес және әдетте жазылады мұны түсінікті ету үшін.

Әдебиеттер тізімі

  1. ^ а б c г. Хасегава, Масахито (1995). «Терілген лямбда калькулясын бағдарламалаудың екі категориялы тілдеріне бөлу». Питте, Дэвид; Райдехард, Дэвид Е .; Джонстон, Петр (ред.). Санат теориясы және информатика. Санаттар теориясы және компьютерлік ғылымдар: 6-шы халықаралық конференция, CTCS '95 Кембридж, Ұлыбритания, 7–11 тамыз, 1995 ж.. Информатика пәнінен дәрістер. 953. Springer-Verlag Берлин Гейдельберг. 200–219 бет. CiteSeerX  10.1.1.53.715. дои:10.1007/3-540-60164-3_28. ISBN  978-3-540-60164-7. ISSN  0302-9743. Түйіндеме«Адам» жауап береді «Бұл не? κ-категориялар? «тақырыбында MathOverflow (31 тамыз, 2010).
  2. ^ Барендрегт, Хендрик Питер, ред. (1 қазан 1984). Ламбда есебі: оның синтаксисі және семантикасы. Логика және математика негіздері бойынша зерттеулер. 103 (Қайта қаралған ред.) Амстердам, Солтүстік Голландия: Elsevier Science. ISBN  978-0-444-87508-2.
  3. ^ Ламбек, Йоахим (1 тамыз 1973). «Декарттық категориялардың функционалды толықтығы». Математикалық логиканың жылнамалары (1974 ж. наурызында жарияланған). 6 (3–4): 259–292. дои:10.1016/0003-4843(74)90003-5. ISSN  0003-4843. Түйіндеме«Адам» жауап береді «Бұл не? κ-категориялар? «тақырыбында MathOverflow (31 тамыз, 2010).
  4. ^ Гермида, Клаудио; Джейкобс, Барт (желтоқсан 1995). «Анықталмаған фибрациялар: полиморфты лямбда кальцили үшін контексттік және функционалдық толықтығы». Информатикадағы математикалық құрылымдар. 5 (4): 501–531. дои:10.1017 / S0960129500001213. ISSN  1469-8072.
  5. ^ Қуат, Джон; Тилеке, Хайо (1999). Видерман, Джири; ван Эмде Боас, Питер; Нильсен, Могенс (ред.) Фрейд- және жабық κ-Санаттар. Автоматика, тілдер және бағдарламалау: 26-шы Халықаралық Коллоквиум, ICALP'99 Прага, Чехия, 11-15 шілде, 1999 ж.. Информатика пәнінен дәрістер. 1644. Springer-Verlag Берлин Гейдельберг. 625-663 бет. CiteSeerX  10.1.1.42.2151. дои:10.1007/3-540-48523-6_59. ISBN  978-3-540-66224-2. ISSN  0302-9743.