Egyszerűen beírt lambda kalkulus

Az egyszerűen begépelt lambda-kalkulus ( egyszerű típusos lambda-kalkulus , lambda-kalkulus egyszerű típusokkal , rendszerrel ) a típusos lambda-kalkulus rendszere , amelyben egy speciális "nyíl" típus van hozzárendelve egy lambda-absztrakcióhoz. Ezt a rendszert Alonzo Church javasolta 1940-ben [1] . A kombinatorikus logika lambda-számításhoz közeli formalizmusához Haskell Curry 1934- ben egy hasonló rendszert vett figyelembe [2] .

Formai leírás

Típusok és kifejezések szintaxisa

A rendszer alapváltozatában a típusokat változók halmazából állítják össze egyetlen bináris infix konstruktor segítségével . A hagyomány szerint a típusváltozókra görög betűket használnak, az operátort pedig jobb-asszociatívnak tekintik, vagyis a rövidítése . A görög ábécé második feléből származó betűket ( , , stb.) gyakran tetszőleges típusok jelölésére használják, nem csak típusváltozókat.

Az egyszerűen gépelt rendszernek két változata létezik. Ha ugyanazokat a kifejezéseket használjuk kifejezésként, mint a típus nélküli lambda-kalkulusban , akkor a rendszert implicit módon gépeltnek vagy Curry -típusúnak nevezzük . Ha a lambda-absztrakció változói típusokkal vannak ellátva, akkor a rendszert explicit typed -nek vagy Church typed -nek nevezzük . Példaként álljon itt egy azonos Curry-stílusú függvény: , és Church-stílusú: .

Csökkentési szabályok

A redukció szabályai nem különböznek a tipizálatlan lambda kalkulus szabályaitól . -a redukciót helyettesítéssel határozzuk meg

.

-csökkentést a következőképpen határozzuk meg

.

A -redukció megköveteli, hogy a változó ne legyen szabad a kifejezésben .

Kontextusok beírása és állítások típusa

A kontextus vesszővel elválasztott változók beírási utasításainak halmaza, például

A szövegkörnyezeteket általában nagy görög betűkkel jelöljük: . Ehhez a kontextushoz hozzáadhat egy „fresh” változót: ha  egy érvényes kontextus, amely nem tartalmazza a változót , akkor  az is érvényes kontextus.

A gépelési utasítás általános formája a következő:

Ez így hangzik: a szövegkörnyezetben egy kifejezés típusa .

Gépelési szabályok (egyház szerint)

Az egyszerűen gépelt lambda kalkulusban a típusok kifejezésekhez való hozzárendelése az alábbi szabályok szerint történik.

Alapigazság. Ha egy változóhoz egy kontextusban típus van hozzárendelve , akkor abban a kontextusban van típusa . Következtetési szabály formájában:

Bevezetési szabály . Ha valamilyen kontextusban a típust tartalmazó utasítással kibővítve a kifejezésnek típusa van , akkor az említett kontextusban (anélkül ) a lambda absztrakciónak típusa van . Következtetési szabály formájában:

szabály törlése . Ha valamilyen kontextusban egy kifejezés típusú és egy kifejezés típusos , akkor az alkalmazás típusos . Következtetési szabály formájában:

Az első szabály lehetővé teszi, hogy a kontextusban megadva típust rendeljen a szabad változókhoz. A második szabály lehetővé teszi, hogy a lambda absztrakciót nyíltípussal írja be, eltávolítva a kontextusból az ezen absztrakció által kötött változót. A harmadik szabály lehetővé teszi a pályázat (kérelem) beírását, feltéve, hogy a bal oldali pályázó rendelkezik megfelelő nyíltípussal.

Példák az egyházi típusú gépelési állításokra:

    (alapigazság)     (bevezetés )      (eltávolítás )

Tulajdonságok

Jegyzetek

  1. A. templom. A típusok egyszerű elméletének megfogalmazása // J. Szimbolikus logika. - 1940. - S. 56-68 .
  2. HB Curry. Funkcionalitás a kombinatív logikában // Proc Natl Acad Sci USA. - 1934. - S. 584-590 .
  3. W. W. Tait. Az I. véges típusú függvények intenzionális értelmezései // J. Szimbolikus logika. - 1967. - T. 32 (2) .

Irodalom