Yksinkertaisesti kirjoitettu lambdalaskenta ( yksinkertainen kirjoitettu lambdalaskenta , lambdalaskenta yksinkertaisilla tyypeillä , järjestelmä ) on kirjoitettu lambda -laskentajärjestelmä , jossa erityinen "nuoli"-tyyppi on määritetty lambda-abstraktiolle. Tätä järjestelmää ehdotti Alonzo Church vuonna 1940 [1] . Haskell Curry harkitsi samanlaista järjestelmää lambda -laskua lähellä olevan kombinatorisen logiikan formalismille vuonna 1934 [2] .
Järjestelmän perusversiossa tyypit muodostetaan muuttujajoukosta käyttämällä yhtä binääriliitekonstruktoria . Perinteisesti kreikkalaisia kirjaimia käytetään tyyppimuuttujille, ja operaattoria pidetään oikea-assosiatiivisena, eli se on lyhenne sanoista . Kreikan aakkosten toisen puoliskon kirjaimia ( , , jne.) käytetään usein merkitsemään mielivaltaisia tyyppejä, ei vain tyyppimuuttujia.
Yksinkertaisesti kirjoitetusta järjestelmästä on kaksi versiota. Jos termeinä käytetään samoja termejä kuin tyypittämättömässä lambda-laskennassa , niin järjestelmää kutsutaan implisiittisesti kirjoitetuksi tai Curry -tyyppiseksi . Jos lambda-abstraktion muuttujat on merkitty tyypeillä, järjestelmää kutsutaan eksplisiittisesti kirjoitetuksi tai kirkkotyyppiseksi . Esimerkkinä tässä on identtinen Curry-tyylinen funktio: , ja Church-tyylinen: .
Pelkistyssäännöt eivät eroa tyypittämättömän lambda -kiven säännöistä . -vähennys määritellään korvaamisen kautta
.-vähennys määritellään seuraavasti
.Reduktio edellyttää, että muuttuja ei ole vapaa termissä .
Konteksti on joukko pilkuilla erotettuja muuttujien kirjoituskäskyjä, esimerkiksi
Kontekstit merkitään yleensä isoilla kreikkalaisilla kirjaimilla: . Voit lisätä kontekstiin muuttujan "fresh" tälle kontekstille: jos on kelvollinen konteksti, joka ei sisällä muuttujaa , se on myös kelvollinen konteksti.
Kirjoituslausekkeen yleinen muoto on:
Tämä kuuluu seuraavasti: kontekstissa termillä on tyyppi .
Yksinkertaisesti kirjoitetussa lambda-laskennassa tyyppien määrittäminen termeihin tapahtuu alla olevien sääntöjen mukaisesti.
Axiom. Jos muuttujalle on määritetty tyyppi kontekstissa , sillä on tyyppi kyseisessä kontekstissa . Päätelmäsäännön muodossa:
Johdanto sääntö . Jos jossain kontekstissa, laajennettynä lauseella, jossa on tyyppi , termillä on tyyppi , niin mainitussa yhteydessä (ilman ) lambda-abstraktiolla on tyyppi . Päätelmäsäännön muodossa:
poista sääntö . Jos jossain kontekstissa termi on tyyppiä ja termi on tyyppiä , sovellus on tyyppiä . Päätelmäsäännön muodossa:
Ensimmäisen säännön avulla voit määrittää tyypin vapaille muuttujille määrittämällä ne kontekstissa. Toisen säännön avulla voit kirjoittaa lambda-abstraktion nuolityypillä ja poistaa tämän abstraktion sitoman muuttujan kontekstista. Kolmas sääntö sallii hakemuksen (hakemuksen) kirjoittamisen edellyttäen, että vasemmalla hakijalla on sopiva nuolityyppi.
Esimerkkejä kirkon tyylisistä kirjoitusväitteistä:
(aksiooma) (johdanto ) (poisto )