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] .
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ú: .
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 .
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 .
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 )