De Bruijn notation

Inom matematisk logik är De Bruijn-notationen en syntax för termer i λ-kalkylen som uppfanns av den holländska matematikern Nicolaas Govert de Bruijn . Det kan ses som en omkastning av den vanliga syntaxen för λ-kalkylen där argumentet i en applikation placeras bredvid dess motsvarande binder i funktionen istället för efter den senares kropp.

Formell definition

Termer ( ) i De Bruijn-notationen är antingen variabler ( ), eller har ett av två vagnprefix . Abstraktionsvagnen , skriven , motsvarar det vanliga λ-bindemedlet i λ-kalkylen , och applikatorvagnen , skrivet , motsvarar argumentet i en tillämpning i λ-kalkylen.

Termer i den traditionella syntaxen kan konverteras till De Bruijn-notationen genom att definiera en induktiv funktion för vilken:

Alla operationer på λ-termer pendlar med avseende på översättningen. Till exempel, den vanliga β-reduktionen,

i De Bruijn-notationen är, förutsägbart,

En egenskap hos denna notation är att abstraktor- och applikatorvagnar av β-redex är parade som parenteser. Betrakta till exempel stadierna i β-reduktionen av termen där redexerna är understrukna:

Således, om man ser applikatorn som en öppen parenter (' ( ') och abstraktorn som en parentes (' ] '), så är mönstret i termen ovan ' (( ](]] '. De Bruijn kallade en applikator och dess motsvarande abstraktor i denna tolkning partner och vagnar utan partners ungkarlar En sekvens av vagnar, som han kallade ett segment , är välbalanserad om alla dess vagnar är partner.

Fördelar med De Bruijn-notationen

I ett välbalanserat segment kan de samarbetade vagnarna flyttas runt godtyckligt och så länge pariteten inte förstörs förblir innebörden av termen densamma. Till exempel, i exemplet ovan kan applikatorn föras till sin abstraktor , eller abstraktorn till applikatorn. Faktum är att alla kommutativa och permutativa omvandlingar på lambda-villkor kan enkelt beskrivas i termer av paritetsbevarande omordningar av samarbetade vagnar. Man får alltså en generaliserad konverteringsprimitiv för λ-termer i De Bruijn-notationen.

Flera egenskaper hos λ-termer som är svåra att ange och bevisa med den traditionella notationen uttrycks lätt i De Bruijn-notationen. Till exempel, i en typteoretisk miljö, kan man enkelt beräkna den kanoniska klassen av typer för en term i ett typningssammanhang, och återställa typkontrollproblemet till en att verifiera att den kontrollerade typen är en medlem av denna klass. De Bruijn notation har också visat sig vara användbar i calculi för explicit substitution i ren typ system .

Se även