Como o Lambda Calculus é um tipo específico de sistema de Term Writing?

13

Agora podemos ver que a Igreja estava associada ao Cálculo Lambda de Digitação Simples . De fato, parece que ele explicou o Cálculo Lambda de Digitação Simples para reduzir o mal-entendido sobre o Cálculo Lambda.

Agora, quando John McCarthy criou o Lisp, ele o baseou no cálculo Lambda . Isso é por sua própria admissão quando ele publicou "Funções recursivas de expressões simbólicas e seu cálculo por máquina, Parte I" . Você pode ler aqui .

Agora sabemos que o núcleo do Mathematica é um sistema semelhante ao Lisp , mas, em vez de se basear apenas no Lambda Calculus, é baseado em um sistema de reescrita de termos .

Aqui o autor declara:

O Mathematica é fundamentalmente um sistema de reescrita de termos ... um conceito mais geral do que o Cálculo Lambda por trás do Lisp.

Parece que o Cálculo Lambda é uma pequena parte de uma categoria muito mais geral. (Como um pensamento bastante revelador, este era mais um conceito fundamental). Estou tentando ler mais sobre isso para ter uma perspectiva.

Minha pergunta é: Como o Lambda Calculus é um tipo específico de sistema de redação de termos?

Hawkeye
fonte

Respostas:

15

A resposta é que depende do que você quer dizer com Sistema de reescrita a termo .

Quando foi introduzido, o conceito de Term Rewrite Systems , ou TRSes, descreveu o que agora é chamado de TRSes de primeira ordem , que é simplesmente um conjunto de regras de computação da forma

lr

lr

t:= x  f(t1,,tn)

xfΣfΣ

Var(r)Var(l)

β

(λx.t) ut[u/x]
λxtλ

SKΣ={S, K,app}

app(app(K,x),y)x
app(app(app(S,x),y),z)app(app(x,z),app(y,z))

Há outra codificação mais intuitiva que envolve termos lambda com índices de Bruijn e substituições explícitas, mas não vou abordar aqui.


λ

t := x(t1,,tn)  f(x11xi11.t1,,x1nxinn.tn)

fΣxjitiabs(x.t)λx.t

βηβ

Portanto, os lados esquerdo estão restritos a um subconjunto agradável, geralmente os "padrões de Miller". Vários resultados para o caso de primeira ordem são generalizados, embora haja algumas surpresas desagradáveis.

λ βη

λβ

app(abs(x.y(x)),z)y(z)

Uma visão geral bastante decente das definições e dos resultados básicos é fornecida por Nipkow e Prehofer aqui .

cody
fonte