Jednoduše zadaný lambda kalkul

Jednoduše typovaný lambda kalkul ( simple typed lambda calculus , lambda kalkulus s jednoduchými typy , system ) je systém typovaného lambda kalkulu , ve kterém je lambda abstrakci přiřazen speciální typ "šipka". Tento systém navrhl Alonzo Church v roce 1940 [1] . Pro formalismus kombinatorické logiky blízko lambda kalkulu uvažoval o podobném systému Haskell Curry v roce 1934 [2] .

Formální popis

Syntaxe typů a termínů

V základní verzi systému jsou typy konstruovány ze sady proměnných pomocí jediného konstruktoru binárních infixů . Podle tradice se pro typové proměnné používají řecká písmena a operátor je považován za asociativní vpravo, to znamená, že jde o zkratku pro . Písmena z druhé poloviny řecké abecedy ( , , atd.) se často používají k označení libovolných typů, nejen typových proměnných.

Existují dvě verze jednoduchého systému. Pokud jsou jako termíny použity stejné termíny jako v netypovém lambda kalkulu , pak se systém nazývá implicitně typovaný nebo psaný Currym . Pokud jsou proměnné v lambda abstrakci označeny typy, pak se systém nazývá explicitně typovaný nebo Church typed . Jako příklad uvádíme identickou funkci ve stylu Curry: a Church-style: .

Pravidla snížení

Pravidla pro redukci se neliší od pravidel pro netypizovaný počet lambda . -redukce je definována prostřednictvím substituce

.

-snížení je definováno následovně

.

-redukce vyžaduje, aby proměnná nebyla v termínu volná .

Kontexty psaní a výrazy typu

Kontext je sada příkazů pro psaní proměnných oddělených čárkami, např.

Kontexty se obvykle označují velkými řeckými písmeny: . Pro tento kontext můžete do kontextu přidat proměnnou „fresh“: pokud  je platný kontext, který neobsahuje proměnnou , pak je  to také platný kontext.

Obecná forma typizačního příkazu je:

To zní následovně: v kontextu má výraz typ .

Pravidla psaní (podle Churche)

V jednoduše zadaném lambda kalkulu se přiřazování typů termínům provádí podle níže uvedených pravidel.

Axiom. Pokud je proměnné přiřazen typ v kontextu , pak má v tomto kontextu typ . Ve formě odvozovacího pravidla:

Úvodní pravidlo . Pokud v nějakém kontextu, rozšířeném o příkaz, který má typ , má výraz typ , pak ve zmíněném kontextu (bez ) má lambda abstrakce typ . Ve formě odvozovacího pravidla:

odstranit pravidlo . Pokud je v nějakém kontextu termín typu a termín je typu , pak je aplikace typu . Ve formě odvozovacího pravidla:

První pravidlo umožňuje přiřadit typ volným proměnným jejich zadáním v kontextu. Druhé pravidlo vám umožňuje zadat abstrakci lambda pomocí typu šipky, čímž se z kontextu odstraní proměnná vázaná touto abstrakcí. Třetí pravidlo umožňuje napsat žádost (přihlášku) za předpokladu, že levý žadatel má vhodný typ šipky.

Příklady tvrzení o psaní v církevním stylu:

    (axiom)     (úvod )      (odstranění )

Vlastnosti

Poznámky

  1. A. Kostel. Formulace jednoduché teorie typů // J. Symbolická logika. - 1940. - S. 56-68 .
  2. HB Curry. Funkčnost v kombinační logice // Proc Natl Acad Sci USA. - 1934. - S. 584-590 .
  3. W. W. Tait. Intenzionální interpretace funkcionálů konečného typu I // J. Symbolická logika. - 1967. - T. 32 (2) .

Literatura