Escolar Documentos
Profissional Documentos
Cultura Documentos
Orientador
Prof. Dr. Flvio Leonardo Cavalcanti de Moura
Braslia
2010
ex
CDU 004.4
Endereo:
Universidade de Braslia
Campus Universitrio Darcy Ribeiro Asa Norte
CEP 70910-900
BrasliaDF Brasil
Universidade de Braslia
Instituto de Cincias Exatas
COPPE/UFRJ
CIC/UnB
iv
Agradecimentos
algo bastante comum, que um aluno agradea em primeiro lugar seu mestre. De fato,
no h como no reconhecer, de primeira mo, a fantstica dedicao, pacincia e companheirismo empenhado pelo meu orientador, o professor Dr. Flvio de Moura. Dedico
tambm meus agradecimentos as contribuies e sugestes efetuadas pelos professores
Dr.
umento.
Flvio Barros, pela parceria na luta de cada dia. A minha rosa, linda Iraciara, agradeo
a pacincia prestada, todas a vezes que meu humor no ia bem, aps um dia cheio. Aos
meus tios daqui, Manoel e Cristina, no sei como expressar a gratido pelo suporte que
me foi dado, desde os primeiros dias de residncia nessa capital. Ao meu tio Ricardo e
minha av Derly, agradeo o amor incondicional e a fora dada a todo momento.
Aos
meus pais, Washington e Denise, agradeo minha existncia, minha educao e tudo que
pode haver de bom em mim. A Deus, a concincia regente de todas as coisas, agradeo o
fascinante e grande universo, com sua riqueza de detalhes e mistrios, que nos foi legado.
Resumo
O clculo
es explcitas que lidam com nomes , em oposio aqueles que codicam suas variveis
por ndices.
ex.
SN ex .
Esten-
-estrutural.
ex,
-reduo)
Palavras-chave:
vi
ex
Abstract
The
substitu-
tions calculi that deal with names , as opposed to those that encode variables by indices.
Delia Kesner developed the proofs, through a set of constructive ones, of important properties of the
ex
calculus.
-structural
-calculus
SN ex .
includes the explicit substitution (s[x/t]) in the grammar of the terms. We go foward by
dening the rewriting systems and the reduction relations for the
by formalizing some results for this calculus, as follows:
SIM (Simulation of One Step of
-Reduction)
ex
and we conclude
Keywords:
vii
ex-calculus
Sumrio
1 Introduo
2 Fundamentos
1
6
2.1
O sistema Coq
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2
Lgica formal
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
2.3
Sistemas de reescrita
2.4
Lgica nominal
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16
3 O Clculo
25
-equivalncia (/= )
3.1
Classes de
3.2
Recurso e induo
3.3
3.4
O conjunto
-estrutural
. . . . . . . . . . . . . . . . . . . . . . .
27
. . . . . . . . . . . . . . . . . . . . . . . .
30
/=
32
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
SN
. . . . . . . . . . . .
33
36
4.1
4.2
4.3
. . . . . . . . . . . . . . . . .
36
. . . . . . . . . . . . . . . . . . . . . .
39
45
ex, es)
5 Propriedades do ex
48
5.1
Composio completa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2
Simulao de um passo da
5.3
Perpetualidade
-reduo
49
. . . . . . . . . . . . . . . . . . . . .
51
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
52
56
58
viii
Lista de Figuras
1.1
2.1
Clculo
2.2
Demonstrao de
simplesmente tipado.
. . . . . . . . . . . . . . . . . . . . . . . .
no Coq. . . . . . . . . . . . . . . . . . . . . . .
2.3
2.4
Tipo indutivo
. .
2.5
2.6
2.7
2.8
2.9
Forma normal.
2.10 tomos.
all_perm
tree,
funo recursiva
e lema
n_leaf_gt_zero. .
. . . . . . . . .
13
. . . . . . . . . . . . . . . . . . .
14
. . . . . . . . . . . . . .
14
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18
n_leaf
-equivalncia.
. . . . . . . . . . . . . . . . . . . . . . .
19
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
. . . . . . . . . .
20
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
21
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
21
22
22
3.1
Denio da regra
3.2
-equivalncia
3.3
3.4
Conjunto
3.5
3.6
Teorema de
3.7
Teorema de induo
Phi.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
no clculo
. . . . . . . . . . . . . . . . . . . . . . . . . .
Phi n.
27
28
. . . . . . . . . . . . . . . . . .
29
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
29
-equivalncia
. . . . . . . . . . . . . .
29
30
-estrutural
para o Clculo
ix
. . . . . . . . . . . . .
30
3.8
3.9
4.1
4.2
Conjunto
4.3
Teorema de
4.4
4.5
Equao
4.6
4.7
Conjunto de regras do
4.8
Sistema de reescrita
4.9
Sistema de reescrita
Phi
. . . . . . . . . . . . .
31
. . . . . . . . . . . . . . . . .
31
. . . . . . . . . . . . . . . . . . . . . . .
37
39
-equivalncia
C. .
x.
39
. . . . . . . . . . . . . . . . . . . . . . .
40
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
41
ex. .
. . . . . . . . . . . . . . . . . . . . . .
41
. . . . . . . . . . . . . . . . . . . . . .
42
ex.
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
43
Bex.
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
43
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
43
ex
ex.
no Coq.
es.
. . . . . . . . . . . . . . . . . . . . . . .
44
45
ex
ex'. .
-Estrutural
para o clculo
ex.
. . . . . . . . . . . .
45
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
46
Phi
47
e f(Phi). . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.16 Meta-substituio no
ex,
47
5.1
Propriedades bsicas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
48
5.2
. . . . . . . . .
53
5.3
Propriedade IE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
53
5.4
Teorema da perpetualidade. . . . . . . . . . . . . . . . . . . . . . . . . . . .
53
5.5
. . . . . . . . . . . . . . . . .
55
5.6
55
SN ex .
lex+.
Captulo 1
Introduo
O clculo
ex
tituies explcitas [1] que lidam com nomes , em oposio aqueles que codicam suas
variveis por ndices.
Opta-
mos por realizar esse trabalho no sistema Coq [2], e a apresentao de tal soluo dada
nesse documento, juntamente com a vericao formal de algumas das propriedades do
ex.
Como motivao preliminar, gostaramos de inserir uma breve citao, bastante per-
logos,
para
linguagem e razo;
no que eles
pensassem que no havia linguagem sem razo, mas sim que no havia raciocnio sem
linguagem.
Tal armao gera uma reexo sobre o real signicado da palavra razo . De fato,
em Lgica Formal, tudo tem como base a interpretao de smbolos, isto , a denio de
uma gramtica e semnticas adjacentes. Em conjunto, esses dois conceitos do origem a
uma linguagem que viabilizar o estabelecimento de regras de deduo ou procedimentos
Mquinas podem
Thomas Hobbes recebeu notoriedade por escrever textos de losoa voltados para poltica, em defesa
do absolutismo, porm sua formao original foi matemtica.
O sistema Coq baseado em uma lgica de ordem superior, que tem como fundamento
terico o Clculo de Construes Indutivas (CCI) [2], o qual por sua vez uma extenso
de um formalismo denominado clculo
[8].
teoria desenvolvida por A. Church [9] na dcada de 30, e nada mais , que um sistema
particular de reescrita, o qual se tornou muito popular por ser um modelo terico de
computao equivalente s mquinas de Turing, ou seja, capaz de expressar qualquer
funo computvel. O clculo
( )
(x.a) b a{x/b},
dada por:
em
a,
pelo termo
b.
A denio formal do clculo considera a operao de substituio como uma metaoperao, isto , necessria a denio de um conjunto de regras exterior gramtica do
clculo para que se realize a operao de substituio. Tal diculdade motivou pesquisas
com modicaes do clculo
de suas regras. Nesse contexto foram desenvolvidos sistemas que internalizam a operao
de substituio e os clculos resultantes caram conhecidos como clculos de substitui-
es explcitas [1].
substituies explcitas
ex
-reduo.
A investigao de quais termos de um clculo so fortemente normalizveis desempenha um papel particularmente importante, pois tais objetos no possuem caminhos de
reduo de comprimento innito. Alm disso, pode-se realizar um paralelo entre termos e
programas; os termos fortemente normalizveis correspondem exatamente aqueles programas que no consomem um nmero innito de passos de execuo. Um exemplo simples,
de um programa que consome um nmero innitamente enumervel de passos, pode ser
dado por aquele realiza sequencialmente a impresso de todos os nmeros naturais em
uma lista (1,
que o conjunto
de parada.
De forma que muita ateno tem sido dada classicao das estratgias de reduo
no clculo
[11, 12, 13, 14, 15, 16, 17]. E assim, uma estratgia de reduo do clculo
de reduo de comprimento innito, caso ele exista; seno ela retorna algum caminho de
reduo de comprimento
nN
ex
que
ex.
clssica, como lei do terceiro excludo ou provas por contradio; e portanto podem ser
chamadas de provas construtivas, nos moldes do que esperado para execuo de uma
vericao formal, em um assistente como o Coq.
Inicialmente realizamos uma denio indutiva do clculo
as operaes de
-converso,
Essa
funo deveria ser denida para a totalidade dos termos da gramtica, porm no caso em
que temos de executar
(y.a){x/b},
(i)
(ii)
x = y;
y
b.
Isso coloca restries sobre a aplicao da funo, e assim a soluo comumente dada
considerar a recursividade no na totalidade dos termos, mas sim nas classes de equivalncia geradas pela relao
em
a;
= ,
onde
(y.a) = (z.a )
para todo
em
a,
por
z.
Nos anos 20 e 30, Frenkel e Mostowski criaram seu modelo de permutao com o
objetivo de provar a independncia do axioma de escolha (AC) e outros axiomas da teoria
de conjuntos. Esse trabalho foi posteriormente utilizado como base para denio de uma
nova teoria chamada Lgica Nominal [20, 21, 22], a qual oferece o subsdio necessrio
para se trabalhar com nomes ligados e
-equivalncia.
-equivalncia.
ex,
em [25]. E mais alm, zemos uso tambm da biblioteca CoLoR [26, 27] para se denir
-Reduo;
e um primeiro
-termos, ou seja,
, tambm o no
ex.
Perp_Lex
SN_Lex
Meta_subst
NF_Lex
T_Lex
Aux_Lex
Lsigma
Rel_Lex
sur_les_relations
Lex
Nominal_Logic
Axioms
ExtFset
AuxLib
Atoms
Permutations
Psets
Support
Freshness
(i)
(ii)
(iii)
T_Lex
(iv)
Meta_subst
(v)
ex
ex';
ex;
(vi)
(vii)
LSigma
Rel_Lex
[1];
ex;
(viii)
NF_Lex
ex;
(ix)
SN_Lex
ex;
(x)
http://www.cic.unb.br/ flavio/msc/lex.tar.gz
Captulo 2
Fundamentos
Intitulamos essa primeira seo por Fundamentos porque, de fato, os conceitos aqui abordados sero utilizados ao longo de todas as demais sees do texto. A primeira subseo
tem como objetivo fornecer uma rpida introduo ao funcionamento do sistema Coq [2];
a seguinte subseo inicia uma discusso sobre a denio de sintaxes abstratas atravs
de termos; a terceira aborda os fundamentos e propriedades de Sistemas de Reescrita de
Termos; e conclumos esse captulo com uma breve apresentao da Lgica Nominal, que
inclui trechos do cdigo do arquivo
Nominal_Logic
da especicao.
[8] e
Nesse domnio,
Ele tambm
atende a um pblico de matemticos que busca formalizar teorias que envolvam provas
longas. Suas demostraes so efetuadas de uma maneira interativa e, quando possvel,
com o auxlio de ferramentas de aplicao automtica.
tabelecido em Coq sobre um grande nmero de teorias, o qual pode ser encontrado em
suas bibliotecas padro ou em contribuies diversas, como no site de Contribuies de
simplesmente tipado:
Var (x : A) :A
x
App
Lam
e1 : A B
e1 e2 : B
Na regra
LAM
da Figura acima,
ocorrncias livres de
Exemplo 2.1.1.
:: (x : A) t : B
((x:A) . t) : (x : A), B
e2 : A
simplesmente tipado.
(v : A), B
equivalente
A B,
se
no possui
v.
atravs da aplicao desse pequeno conjunto de regras, e esse trabalho exibido a seguir:
:: (H : ab : A, R a b) :: (a : A) :: (b : A)
Lam
App
App
Lam
A,
Var (b : A) A)
(b :
Var (a : A) :A)
(a
(H b) : (c : A, R b c)
(H b a) : (R b a)
:: (H : ab : A, R a b) :: (a : A) ((b:A) .H b a) : (b : A, R b a)
:: (H : ab : A, R a b) ((a b:A) .H b a) : (ab : A, R b a)
((H:ab:A,R a b)(a b:A) H b a) : ((ab : A, R a b) ab : A, R b a)
Lam
H a b.
e apply
Comandos
Respostas do Coq
Variable A declared
Variable R declared
Variable A : Set.
Variable R : A->A->Prop.
Lemma all_perm:
(forall (a b:A), R a b)->
(forall (a b:A), R b a).
======================================= (1 / 1)
(forall (a b:A), R a b)-> forall (a b:A), R b a
Proof.
H : forall (a b:A), R a b
a : A
b : A
======================================= (1 / 1)
R b a
intros H a b.
apply H.
Qed.
Proof Completed
all_perm
no Coq.
O desenvolvimento completo de uma teoria envolve basicamente trs tipos de construes: denies indutivas, funes recursivas e proposies. Propriedades admitidas
sem demostrao recebem o nome de Axioma, caso contrrio recebem a denominao de
zero) e
um natural;
S O
um natural;
S S O
tambm a notao:
O 0; S O 1; S S O 2; S S S O 3, ...
Inductive nat : Set :=
| O:nat
| S:nat -> nat.
Figura 2.3: Denio indutiva do tipo nat.
com uma funo recursiva que conta o nmero de folhas da rvore dada como argumento,
e um lema que arma que o nmero de folhas em uma rvore estritamente maior que
zero, como mostrado na Figura 2.4.
funo recursiva
n_leaf
e lema
n_leaf_gt_zero.
tree
tree,
n_leaf_gt_zero
rvore tem um nmero de folhas maior que zero. A demostrao bastante simples, e
Arith atravs do
de teoremas j demostrados.
atravs do comando
b.
abstrair os detalhes de sintaxe em termos de palavras ou smbolos, atravs da construo de termos. Isso permite o uso de duas ferramentas inter-relacionadas extremamente
teis: a recurso e as provas por induo sobre a estrutura dos termos. Ento seguimos
primeiramente com algumas denies.
Denio 2.2.1
Exemplo 2.2.2.
(Alfabeto)
smbolos.
Um
So exemplos de alfabetos:
1.
A = {0, 1, 2, ..., 9}
2.
3.
A = {a, b, c, ..., z}
A = {, , a, d, x, f, ), (}
4.
A = {c1 , c2 , c3 , ...}
(deno-
Deseja-se construir linguagens formais nas quais se possa formular os axiomas, teoremas, e provas. Em tal contexto os conectivos, os quanticadores e a relao de igualdade
aparecem com um papel de suma importncia. Portanto so includos os seguintes smbolos nas chamadas linguagens de primeira ordem:
o ou ),
(para o existe ) e
(para no ),
(para o e ),
(para
10
Denio 2.2.3.
(denotado por
A)
(i)
(ii)
(iii)
(iv)
(v)
(vi)
(vii)
v0 , v1 , v2 , ...
c0 , c1 , c2 , ...
, , , ,
,
), (
Para
[variveis]
[constantes]
[conectivos]
[quanticadores]
[igualdade]
[parnteses]
n 1:
n-rias;
n-rias;
f c v3 R
por:
t1 , t2 , ..., tn
so termos e
um smbolo de funo
n-ria,
ento
f (t1 , ..., tn )
tambm um termo.
(F1) Se
t1
t2
so termos, ento
(F2) Se as palavras
R t1 ... tn
t1 , t2 , ..., tn
uma frmula;
so termos e
um smbolo de relao
n-ria,
ento
uma frmula;
(F3) Se
(F3) Se
t1 t2
so frmulas, ento
( ), ( ), ( )
( )
tambm so
frmulas;
(F4) Se
uma frmula e
tambm so frmulas.
Denio 2.2.5
ordem
Denio 2.2.6
(Composio de substituies)
substituies. A
Uma
substituio de primeira
composio
do conjunto:
11
Sejam
Denio 2.2.7
termo
t,
(i) Se
(ii) Se
(Conjunto de subtermos)
denotadado por
S(t),
t f t1 .... tn ,
conjunto de subtermos
de um dado
S(t) = t;
i N:
ento para
S(t) =
{ti } S(ti )
i=1
Observao:
s S(t),
Se
Denio 2.2.8
termo
t,
(i) Se
(ii) Se
t,
ento
O(t),
chamado
subtermo prprio de t.
O conjunto de
posies vlidas de um
t f t1 .... tn ,
denido por:
denotado por
subtermo de t.
chamado
S (t),
denotado por
s S (t),
Se
Denio 2.2.9
de um dado termo
Observao:
ento
ento para
O(t) = {};
i N:
O(t) = {}
{i | O(ti )}
i=1
Exemplo 2.2.10.
Se
ento
O(t) = {} {1 }, {1 1 } {1 2 } {2 } = {, 1 , 1 1 , 1 2 , 2 }.
Notao 2.2.11.
Para
O(t),
o subtermo na posio
de
denotado por
t| ,
assim:
t, O(t)
t| t;
t|i ti | .
Exemplo 2.2.12.
12
g,
e direita a folha
S(t) = {
c.
O n
o n raiz
f,
um n
E nesse caso:
t|1
Notao 2.2.13. s[ t]
s|
t
Denio 2.2.14
o termo
por
t,
tc
(ii) Se
tx
t f t1 .... tn ,
Seja
um termo.
O(s),
fv(t) denota o
(i) Se
(iii) Se
ento para
= ;
= {x};
i N:
fv(t)
fv(ti )
i=1
quais so orientadas para se computar a forma mais simples possvel de um dado objeto.
Denio 2.3.1
sobre
M . (M, )
(Sistema de reescrita)
um
Seja
sistema de reescrita.
um conjunto e
(M, )
=
13
(iii)
u v
(1)
(v)
uv
n
u v sse w, u w v
+
n
= n1 o fecho transitivo de
n
= n0 o fecho reexivo-transitivo
(2)
(iv)
sse
n+1
de
Variable A : Set.
Inductive explicit_rel_plus (R : A -> A -> Prop) : A -> A -> Prop :=
| relplus_1step :
forall x y : A, R x y -> explicit_rel_plus R x y
| relplus_trans1 :
forall x y z : A, R x y ->
explicit_rel_plus R y z -> explicit_rel_plus R x z.
Figura 2.7: Fecho transitivo de uma relao binria.
Variable A : Set.
Inductive explicit_star (R : A -> A -> Prop) : A -> A -> Prop :=
| star_refl : forall x : A, explicit_star R x x
| star_trans1 :
forall x y z : A, R x y -> explicit_star R y z -> explicit_star R x z.
Figura 2.8: Fecho reexivo-transitivo de uma relao binria.
No arquivo sur_les_relations [25] encontramos denies indutivas para os fechos
+
respectivamente nas Figuras 2.7 e 2.8. Mas elas no so a transcrio literal da Denio
2.3.1. De fato, a denio indutiva de fecho-reexivo na Figura 2.7 arma que: xy, se
+
+
+
x y , ento x y ; e alm disso xyz, se x y e y z , ento x z . Contudo
essa caracterizao indutiva acaba por ser logicamente equivalente ao que apresentado
na Denio 2.3.1. O mesmo ocorre com a denio do fecho reexivo-transitivo.
Se
Denio 2.3.2.
(i) Uma
Seja
regra l r
varivel e fv(r)
um conjunto de termos:
14
l, r M ,
sendo que
no uma
(ii) Um
tem) um conjunto
R dene a relao
R sobre M da seguinte forma;
t1 , t2 , t1 R t2 , se e somente se, existem:
R;
de reduo de termos,
denota por
Para todo
(1)
l r R,
(2)
O(t1 )
t1 | l
t2 t1 [ r]
t,
uma
forma normal.
E se para qualquer termo, a ordem de aplicao das regras do sistema no relevante,
pois a forma normal resultante, caso exista nica, este sistema ser denominado conu-
ente. Seguem portanto as denies formais desses conceitos, juntamente com exemplos
das denies de forma normal e fortemente normalizvel em Coq.
Denio 2.3.3.
Denio 2.3.4
u, v, w M
v w).
todo
Denio 2.3.5
R ,
Se
(Conuncia)
com
v u w,
(Forma Normal)
se para todo
existe algum
Um elemento
no ocorre que u R v.
Em Coq denimos
NF
Um sistema de reescrita
Denota-se
v N F R.
Denio 2.3.6
u
iN
Denio 2.3.7
(Caminho de Reduo)
termos,
i , com
. De forma que:
ui ui+1 .
Denio 2.3.8
zvel
(Normalizao fraca)
n N,
Um elemento
Se um caminho de reduo
uM
diferente de
Denota-se:
u WN R .
15
n 1;
fracamente normaliu
Denio 2.3.9
zvel
(Normalizao forte)
Um elemento
Denota-se:
uM
fortemente normali-
u SN R .
Denio 2.3.10
u SN R ,
de u, o qual
Se
[8], como por exemplo no Teorema 3.4.5, e tambm em vericaes das extenses do clculo . Em especial abordamos as caractersticas de normalizao do ex [10], e assim as
Denies 2.3.5, 2.3.6, 2.3.7, 2.3.9 e 2.3.10 exercem papel fundamental, nas formalizaes
apresentadas na Seo 5.3.
-equivalncia conveniente.
classes de -equivalncia?
-equivalncia
Exemplo 2.4.1.
P , atravs de
P (a) P (x.a);
y fv(t) t{y/u} t.
/
16
De fato, se realizarmos induo estrural ordinria, isso , aquela que no considera classes
de
-equivalncia,
t x.s:
y fv(s) s{y/u} s,
/
{y/u}
em
(x.s)
e fazer uso da
x fv(u)
/
-equivalncia.
Ela busca
-equivalncia
tamente obter uma formalizao dos princpios de induo e recurso sobre classes de
-equivalncia,
fornecer um resumo dos principais conceitos que resultam nos teoremas de induo e
recurso aplicados a gramtica do clculo
ex.
Os princpios usuais de induo e recurso estrutural so parametrizados por uma
assinatura algbrica que especica quais so os possveis construtores dos termos.
Ne-
cessitamos ento xar uma noo de assinatura que tambm especique as ligaes de
variveis que ocorram nos termos, aqui utilizaremos a noo de assinatura nominal [24].
Do ponto de vista formal as ligaes de variveis precisam ser atmicas, no sentido de
que suas estruturas so imateriais, se comparadas por um critrio de distino entre dois
nomes de mesmo tipo.
assinatura nominal.
Record, o qual permite uma maleabilidade maior nas declaraes sobre o tipo
tipo
Denio 2.4.2
indutiva:
(Aridade)
O Conjunto de
17
aridades
a A
a A
s D
1
uma aridade;
uma aridade;
uma aridade;
so aridades, ento
1 2
uma aridade;
uma aridade.
Denio 2.4.3.
O conjunto de
a Aa
pertence a
:1
(iii) O termo
t1 : 1
(v) Se
a,
a Aa
t:
ento
t:
a:a
denido por:
um termo;
um termo, ento
Kt : s
tambm um termo;
t2 : 2
indica que
um tomo de sort
K:s
(iv) Se
t:
termos
t1 , t2 : 1 2
a
um termo, ento
t: a
tambm um termo;
tambm um termo.
, T() o
ar T() Ar() a funo de designao
de um termo t para uma nica aridade . Para cada Ar(), denota-se T() o
subconjunto {t T() | ar(t) = }, de termos de aridade .
Denotam-se
Ar()
so termos, ento
Exemplo 2.4.4.
do clculo
Exemplicando:
A constante
A varivel
X (a b)
reresentada por
representada por
represntado por
X x.(x y)
A a, b
representado por
D;
V x;
A V x, V y
18
D:t
V :vt
A:ttt
L: v tt
X xz.((x y) z))
representado por
(L
A A V x, V y , V z ).
-equivalncia) associada a , os quais os sorts so as aridades de , os constru, somados a construtores para a unidade, pares e ligaes de tomos,
tores so aqueles de
-equivalncia, t = t :
(onde
Denio 2.4.5
(Denio de
assinatura nominal
(= .1)
a relao
a A
a Aa
a = a : a
(= .3)
(= .5)
a A
(= .4)
:1
a, a , a Aa
(= .2)
(= .5), atm(t)
(K : s C )
t = t :
Kt = Kt : s
t1 = t1 : 1
t2 = t2 : 2
t1 , t2 = t1 , t2 : 1 2
-equivalncia.
t; e t{a :=
a em t por
Denio 2.4.6
seguintes funes
Em uma
a atm( a, t, a , t ) t{a := a } = t {a := a } :
/
a t = a t : a
Figura 2.12:
Na regra
denidas
Dado um termo, as
19
(i)
(ii)
(iii)
(iv)
(v)
atm(a)
atm(Kt)
atm( )
atm( t1 , t2 )
atm( a t)
{a}
atm(t)
atm(t1 ) atm(t2 )
{a} atm(t)
=
=
=
=
=
a se a = a
a se a = a
= K(t{a := a })
=
= t1 {a := a }, t2 {a := a }
=
a {a := a } t{a := a }
a {a := a } =
(i)
(ii)
(Kt){a := a }
(iii)
{a := a }
(iv)
t1 , t2 {a := a }
(v) ( a t){a := a }
-termos
fresh (novo) para um objeto matemtico. Isso permite caracterizar no somente tomos
novos para termos, o que coincide com a denio do conjunto de variveis que no
ocorrem livres no termo, mas tambm denir o signicado de tomo novo para objetos
de tipo funcional. Ento, consideremos o seguinte conjunto de armaes:
(i) Seja
( )(a) := ( (a));
P erm
onde
para
e de
para
a,
(a a ),
que
xando os todos os
demais tomos;
(v) um fato bsico de teoria de grupos, que qualquer
P erm
igual a composio
[(a a ), (b b ), (c c )]
um elemento de
Por exemplo:
P erm.
20
se
a, a , b, b , c, c A
ento
Denio 2.4.7
pertencente a
.x,
(Ao de Permutaes)
(P erm X X),
(i)
(ii)
Uma ao de
.x = x
.( .x) = ( ).x
so denidos primeiro para tomos, como uma funo que recebe um par ordenado de
elementos e um terceiro elemento a ser trocado. Se o terceiro elemento for igual a qualquer
um dos outros dois, no par, ento ele ser trocado, caso contrrio nada realizado. A ao
de um swap sobre um objeto qualquer do tipo
Denio 2.4.8
X,
e um elemento
x X:
A A um conjunto de tomos,
= [(a a )] P erm, tem-se .x = x,
(i) Sendo
e
(ii) Se
de
(iii)
Set
suporte de
x,
denida atravs do
Dada uma ao de
Record SwapT.
P erm,
a, a A
/
denominado um
um conjunto
de mesmo sort
suporte de x;
suporte nito de x;
um conjunto nominal se todo elemento x possui um suporte nito;
21
(iv) Se
ento o
de
denotado por
Demonstrao. No item (iv) dessa denio, consideramos a existncia do um mnimo nmero de elementos para o conjunto suporte, e de fato necessitamos provar a
existncia desse mnimo. Se
x.
Mas se
A1
A2 ),
logo
(a a )
tambm xa
A1
ou no
xX
Variable A : AtomT.
Variable X : Set.
Variable P : PsetT A X.
Definition supports (F : aset A) (x : X) :=
forall a b, In a F -> In b F -> perm P [(a, b)] x = x.
Figura 2.16: Conjunto Suporte.
f resh
Denio 2.4.9
(Fresh)
Se
x X
Definition freshP (a : A) (x : X) :=
exists F : aset A, In a F supports P F x.
Figura 2.17: Predicado Fresh.
A Denio 2.4.9 bastante abrangente, pois dados quaisquer dois elementos de conjuntos nominais, possvel conceber se um ou no novo para o outro. Basta vericar ser
interseo de seus menores suportes vazia. O Predicado
Ele permite caracterizar somente o fato de um tomo ser novo ou no para um elemento
de um conjunto nominal.
22
Lema 2.4.10
(Freshness)
X, y Y, f Y f s Z, P erm
(i)
(ii)
(iii)
Se
X, Y
Sejam
Para todo
X Y,
Y , de modo que se
f X Y , ento .f igual o mapeamento de cada x X para .(f ( 1 .x)) Y . Essa
de tomos sobre o conjunto
de todas as funes de
para
(2.1)
A,
ento
.f
suportada por
{(a) | a A}
(tal
X f s Y := {f X Y | A
de funes com suporte nito de
para
nito
Y,
A, A
suporte de
f}
X X,
X,
o usual conjunto
Essas classes de
devido a prpria
mais prxima da
(i) tomos : Se
a A
23
tal que
e = [a] .
Nesse
(ii)
[ ] , a qual denotada
( );
(iv) Pares : Se
i = 1, 2,
escreve-se
-equivalncia,
alcanando uma denio precisa para os termos com ocorrncias de variveis ligadas.
Mais alm, nas Seces 3 e 4.2, forneceremos exemplos de aplicaes de tais conceitos,
no estabelecimento dos princpios de induo e recurso
gramticas dos clculos
ex.
24
-estrutural,
para as respectivas
Captulo 3
O Clculo
O Clculo
Alonzo Church [9] na dcada de 30. Inicialmente Church trabalhava em uma teoria que
envolvia funes e lgica, objetivando uma fundamentao terica para tais conceitos, mas
na totalidade o sistema desenvolvido continha inconsistncias, tal como foi demonstrado
por Kleene e Rosser em [31]. Assim o subsistema formado somente pela parte da teoria
de funes, cuja a consistncia foi demonstrada por Church [32], se tornou um modelo
eciente. O curioso que, de acordo com Russell [33], a nomenclatura Clculo
surgiu
x.2x + 1,
2x + 1.
No entanto os
da letra x, mas a sua esquerda, o que resultou em x.2x + 1. Depois em uma outra
publicao apareceu
x.2x + 1,
a ::= x | (a a) | (x.a)
A denio acima que representar que, um termo
(3.1)
e corpo
a.
Se a um
a .
(a b);
e abstrao
(x.a),
25
Set :=
-> tm
tm -> tm
-> tm -> tm.
em Coq, dada acima. Mas esse tipo de
Inductive
so sempre injetivos por denio, no entanto no caso do construtor abstrao (lam) isso
no deveria ser verdade, se quisermos incluir a relao de
igualdade (=) pr-construda no Coq, pois:
-equivalncia na relao de
x = ya = b. A soluo dada
x.a = y.b
via uma
de um termo podem ser obtidas atravs dos princpios de recurso ordinria (que no
necessitam considerar a relao de
-equivalncia
entre termos).
no termo.
Denio 3.0.11
a )
Denimos o
:= {x}
(ii) fv(a b)
:=
(iii) fv(x.a)
fv(a) fv(b)
:=
fv(a) \ {x}
Denio 3.0.12
termo
a ,
(i) Se
(ii) Se
(iii) Se
(Comprimento de um termo
a x,
ento
a (a0 a1 ),
a x.a0 ,
A funo comprimento
de um
L(a) = 0;
ento
ento
L(a) = L(a0 ) + 1.
e dada por:
Denio 3.0.13
a{x/b}
a )
con-
(Regra
) (x.a)b a{x/b}
cias livres de
em
por
b.
funo recursiva. Dada a denio da gramtica do clculo (Seo 3.1) e de tal funo
recursiva (Seo 3.2), possvel denir a regra
26
lizando aqui uma notao criada nos arquivos da especicao, para denotar aplicaes
((a b)
b})
:= (a ! b)),
abstraes (x.a
:= & x, a)
criamos a notao:
:= {x :=
prpria regra
e a meta-substituio (a{x/b}
a ->_Beta b := rule_beta a b.
Denio 3.0.14
distintas, a
(Meta-substituio para
-termos)
Sendo
a, b
(i)
y{x/b} := y ,
x, y
variveis
x{x/b} := b
(ii)
se
x=y
(iii)
(iv)
(y.t){x/b} = y.t{x/b},
A restrio x
se
= y e y fv(b)
/
x=y
no item
y
/
fv(b)
Exemplo 3.0.15.
O termo
y.x
y;
aplicando a substituio
y.y ,
{x/y}
no
a este termo
que a representao da
y.x,
o que seria
pois as condies
(y.t). A
-equivalncia, onde qualquer termo
(z.t ) -equivalente a (y.t) (fato denotado por z.t = y.t) desde que z j no ocorra
livre em t e t seja igual a termo t, com o renomeamento de todas as ocorrncias livres de y
por z . Ento por exemplo: x.x(z x) = y.y(z y). Barendregt [8] abordou essa questo,
do item
(iv)
t ,
propondo uma condio de higiene para os termos: Os nomes utilizados para variveis
livres devero ser sempre distintos dos nomes dados para variveis ligadas em um termo .
27
isto , o conjunto
-equivalncia.
Consideram-
/= .
(x.a)
x,
logo seu
Exemplo 3.1.1.
f :RR
f (x) = x
f :RR
f (y) = y
comforme exibido
por:
(= .D)
(= .L)
(= .V )
D = D
a, a , a AV
a AV
V a = V a
(= .A)
u = u : t & v = v : t
A u, v = A u , v : t
Figura 3.2:
-equivalncia
no clculo
de um termo devero ser designadas por ndices e as variveis livres por nomes. Esse tipo
de formalizao conhecida como locally nameless representation [34, 35], e originalmente
surge em implementaes para o assistente de prova Isabelle/HOL [4]. Nomes so denidos
pela estrutura atmica conforme mostrado na Figura 2.10.
A denio indutiva
Phi
Phi
n se o maior ndice de uma varivel pendurada que ocorre nele, menor que n. Entende-se
por varivel pendurada de ndice n, uma varivel do tipo pbound n que ocorre em um
posio livre no termo. No difcil de se vericar que (n : nat), Phi n Phi (n + 1).
subconjunto de termos bem formados. De um modo geral, dado um termo t, seu tipo
Phi 0,
o que
Phi
Exemplo 3.1.2.
(i)
(ii)
(iii)
Phi 0.
dot Phi 0;
x Phi 0;
( 0) Phi 0;
28
Phi,
so dados por:
(iv)
(v)
0 Phi 1
(( 0)(1 x)) Phi 2;
.
.
.
Phi 3
Phi 2
Phi 1
Phi 0
Phi n.
de tipo
Phi n,
Phi,
pelo ndice
Phi.
dot
var
app
lam
:
(a
(s
(x
tm := pdot 0.
: tmvar) : tm := pfree 0 a.
t : tm) : tm:= papp 0 s t.
: tmvar) (b : tm) : tm := plam 0 (abs x b).
Os princpios de induo e recurso ordinria estrutural sobre termos, isto , no considerando as classes
exemplo, das construes de funes recursivas para conjunto de variveis livres e para o
29
abs,
-equivalncia,
Theorem eq_lam :
forall a b s,
In b (fvar s) ->
& a, s = & b, (perm tmP [(a, b)] s).
Figura 3.6: Teorema de
-equivalncia
Teorema 3.2.1
junto
(i)
(ii)
(Teorema de Induo
um subcon-
D S;
a AV , V a S ;
(iii)
e1 e2 S, A (e1 , e2 ) S ;
(iv)
nito
AV , a e, a F L a.e S .
/
Theorem tm_induction :
forall (P : tm -> Type) (F : aset tmvar),
(P dot) ->
(forall a, P (var a)) ->
(forall s, P s -> forall t, P t -> P (s ! t)) ->
(forall a, In a F -> forall s, P s -> P (& a, s)) ->
forall x : tm, P x.
Figura 3.7: Teorema de induo
-estrutural
para o Clculo
F;
e alm
disso uma condio nita para ligaes (FCB), a qual exige que sempre exista um
a AV ,
isto , indexadas pelos construtores, todas das quais com um suporte nito
30
tal que
aF
/
x, a # fL (a, x).
de funes (mdulo equivalncia extencional), tal que essa famlia tem comportamento de
uma funo recursiva sobre
Teorema 3.2.2
/= .
(Teorema de Recurso
-estrutural
para o clculo
e funes:
Suponhamos que
fD X
fV AV f s X
fA X X f s X
fL AV X f s X
F.
satisfeita:
F (f /= f s X )
satisfazendo:
(i)
(ii)
f (D) = fD ;
f (V a) = fV a;
(iii)
f (A (e1 , e2 )) = fA (f e1 , f e2 );
(iv)
substituio, utilizando o Teorema 3.2.2. Esse trabalho foi desenvolvido em Coq, tambm
por Aydemir et al em [23].
Section Meta_substitution.
Variable y : tmvar.
Variable s : tm.
Definition meta_subst : tm -> tm :=
tm_rec tm
dot
(fun x => if atom_eqdec tmvar x y then s else (var x))
(fun s s' t t' => s' ! t')
(fun x t t' => & x, t')
(add y (fvar s)).
Lemma meta_subst_supp_dot :
supports tmP (add y (fvar s)) dot.
Lemma meta_subst_supp_var :
supports (tmvarP > tmP) (add y (fvar s))
(fun x : tmvar => if atom_eqdec tmvar x y then s else var x).
Lemma meta_subst_supp_app :
supports (tmP > tmP > tmP > tmP > tmP)
(add y (fvar s)) (fun _ s' _ t' : tm => s' ! t').
Lemma meta_subst_supp_lam :
supports (tmvarP > tmP > tmP > tmP)
(add y (fvar s))
(fun (x : tmvar) (_ t' : tm) => & x, t').
meta_subst
desejado, ou seja, verica-se a sequncia de armaes abaixo, quem descrevem que para
32
cada construtor haver a propagao da funo de forma recursiva, sendo que no caso do
construtor abstrao a varivel ligada no poder pertencer a conjunto
conjunto
F.
E por m o
meta_subst.
3.4 O conjunto SN
A obteno de um conjunto de regras indutivas para denio do conjunto
SN ,
algo
ex,
SN ex .
a)
Exemplo 3.4.1. (y.(x.x y)y)) bb (y.(x y){x/a}) b := (y.(a y)) b
(y.(a
(a y){y/b}
:= (a b)
Exemplo 3.4.2. (x.(x x)) (x.(x x)) (x.(x x)) (x.(x x))
O processo de reduo de um termo no nico, no Exemplo 3.4.1 havia duas possibilidades para aplicao da regra
Quando adotado um
procedimento de escolha para qual parte o termo dever ser primeiramente reduzida, esse
processo chamado de Estratgia de Reduo [18].
Uma estratgia de reduo do clculo
33
(i) maximal, se ela computa para um termo, o maior caminho de reduo at uma forma
normal, caso ela exista; seno ela retorna um caminho de reduo de comprimento
;
(ii) minimal, se ela computa para um termo, o menor caminho de reduo at uma forma
normal, caso ela exista; seno ela retorna um caminho de reduo de comprimento
;
(iii) perptua, se ela computa para um termo, um caminho de reduo de comprimento
n N at uma forma normal, se ela existe; seno ela retorna um caminho de reduo
de comprimento .
Os seguintes lemas so teis para se demonstrao de que uma dada estratgia de
reduo perptua no clculo
SN .
Lema 3.4.3
que
x
/
n 1
Assumindo que
a1 SN
sempre
a0 {x/a1 } a2 ...an
...
E dado que,
aa bb :
(n
a0 {x/a1 } a2 ...an SN .
34
Corolrio 3.4.4.
Se
a1 SN ,
n 1:
Lema 3.4.5
(i)
(ii)
(iii)
(Caracterizao Indutiva de
SN )
Seja
a1 , ..., an X x a1 ...an X ;
a X x.a X ;
a1 X e a0 {x/a1 } a2 ...an X (x.a0 ) a2 ...an X ;
Ento
SN = X .
SN X
X SN .
Para
1.
2.
3.
derivaes de
35
Captulo 4
Clculos de substituies explcitas
No clculo
-reduo
e a troca de parmetros
da
Bruijn (, )
de de Bruijn [36] para designao de variveis. Essa notao considera qualquer varivel
como um ndice natural
A gramtica do
n.
um pouco mais complexa do que a do clculo
duas classes de objetos : termos e substituies. A notao com ndices de de Bruijin tem
-converso, j que um termo do tipo 1 reptodos os termos x.x, onde x pode ser renomeado
metavariveis,
varivel um conceito que denido para cada clculo de modo particular, mas sempre representa um
buraco, isso , um lugar no termo que pode ser preenchido por uma variedade de outros termos.
36
por qual outra varivel. Em contrapartida os clculos com ndices adicionam uma diculdade com relao a manipulao de sua notao, que mais adequada mquinas do
que a humanos.
TERMOS
SUBSTITUIES
M, N
S, T
:=
:=
1 | X | M | (M N ) | M [S]
id | | M.S | S T
(Beta)
(M N )
M [N.id]
(App)
(M N )[S]
(M [S] N [S])
(Abs)
(M )[S]
M [1.(S )]
(Clos)
M [S][T ]
M [S T ]
(Varcons)
1 [M.S]
(Id)
M [id]
(Assoc)
(S1 S2 ) T S1 (S2 T )
(Map)
(M.S) T
M [T ](S T )
(IdL)
id S
(IdR)
S id
(4.1)
(ShiftCons) (M.S)
(VarShift)
1.
id
(Scons)
1 [S].( S)
(Eta )
(M 1)
N,
se
M = N []
Exemplo 4.1.1.
O conjunto de regras do
(Beta),
pela regra
do
demais regras.
Exemplo 4.1.2.
(x.(x x) z
((1 1)) 1[]2
(1 1)[1[]2 .id]
((1[1[]2 .id]) (1[1[]2 .id]))
(Beta)
(App)
(Varcons)
37
no clculo
(x x){x/z} := (z z)
(1 1)[1[]2 .id]
((1[1[]2 .id]) (1[1[]2 .id]))
(1[]2 1[]2 ) (z z)
No
clculo
dos termos.
Denio 4.1.3
a funo
(i)
(ii)
(iii)
Onde
(Meta-substituio no clculo
do clculo
m 1 , se m > n
N
, se m = n
m {n/N } :=
m
, se m n
M +i
(a)
(M N )+i := (M +i N +i )
(b)
(M )+i = (M +(i+1) )
{
n + 1 , se n > i
+i
n :=
n
, se n i
(c)
Observao:
A elevao de um termo
Exemplo 4.1.4.
e no clculo
sua
0-potncia
denotada por
M +.
[37].
Ns a
citamos nesse texto, no somente porque ela um exemplo importante como comparao
com os demais clculos, mas pelo fato de que o clculo
Coq, realizada [25], a qual serve de referncia para as novas especicaes de clculos de
substituies explcitas. Inicialmente ns adaptamos a especicao de [25] para denir
a gramtica do clculo
-equivalncia
Quando avanamos,
que estudar os conceitos desenvolvidos nas seces 2.4 e 3.2, os quais aparecem aplicados
na especicao do clculo
em [23].
38
cao explcita da denio 3.0.14, tal que ela continue funcionando, mdulo
o que resumidamente, resulta no clculo
-equivalncia,
(4.2)
Phi
Theorem eq_lam :
forall a b s,
In b (fvar s) ->
& a, s = & b, (perm tmP [(a, b)] s).
Theorem eq_subst :
forall a b s t,
In b (fvar s) ->
s [a | t] = (perm tmP [(a, b)] s) [b | t] .
Figura 4.3: Teorema de
-equivalncia
Phi,
Denio 4.2.1
de um dado termo
tT,
tT)
39
:= {x}
fv(x.u)
:= fv(u) \ {x}
fv(u v)
:= fv(u) fv(V )
fv(u[x/v]) := (fv(u) \ {x}) fv(v)
fv(x)
Denio 4.2.2
(Comprimento de
tT)
t x,
ento
A funo comprimento
L de um termo t T ,
L(t) = 0;
(ii) Se
t (s v),
ento
(iii) Se
t x.s,
ento
L(t) = L(s) + 1;
(iv) Se
t s[x/v],
ento
(x.t)u
x[x/u]
t[x/u]
(tu)[x/v]
(y.t)[x/v]
B
Var
Gc
App
Lamb
t[x/u]
u
t
t[x/v] u[x/v]
y.t[x/v]
se
x fv(t)
/
x.
O sistema de reescrita acima (Figura 4.4) pode ser visto como o mnimo desenvolvimento necessrio para se incluir a operao de substituio de forma explcita. Entretanto,
a implementao do operador de substituio explcita tem um preo. De fato, enquanto
o clculo
(4.3)
Diferentes solues so adotadas com intuito de fechar este diagrama. Uma soluo
a adio da regra de reescrita:
se
y fv(u)
(4.4)
40
no con-
uente em termos abertos (termos com meta-variveis), o que uma decincia desse
sistema.
&x
/
x, e anexada ao sistema
A equao
t[x/u][y/v] =C t[y/v][x/u]
se
y
/
fv(u)
ex.
, ,
tem
composio completa, mas no preservam a normalizao forte, como foi constatado por
Mllies [42]. Mesmo assim, a composio completa e a normalizao forte podem ocorrer
juntas; este , por exemplo, o caso do clculo
ex
e do
es
[10].
t[y/v][x/u]
Equao:
t[x/u][y/v] =C
Regras:
(x.t)u
x[x/u]
t[x/u]
(tu)[x/v]
(y.t)[x/v]
t[x/v][y/v]
B
Var
Gc
App
Lamb
Comp
C.
se
se
x fv(t)
/
se
y fv(u)
t[x/u]
u
t
t[x/v] u[x/v]
y.t[x/v]
t[y/v][x/u[y/v]]
ex.
B,
Bx para a
= =C . De
relao de equivalncia
reduo (mdulo
=e )
t ex t
t ex t
sse
sse
s, s
s, s
tal que
tal que
41
B x.
denidas por:
t =e s x s =e t
t =e s Bx s =e t
ex
na raiz de um
no Coq.
ex
42
N
M N
M N.
ex.
As relaes de reduo
dos sistemas
ex
Bex,
rel_ex
rel_lex,
Bex.
rel_lex.
43
ex.
ex,
Equaes:
t[x/u][y/v]
Regras:
(x.t)u
x[x/u]
t[x/u]
(tu)[x/v]
(tu)[x/v]
(tu)[x/v]
(y.t)[x/v]
t[x/v][y/v]
t[x/v][y/v]
=C
t[y/v][x/u]
B
V ar
Gc
App1
App2
App3
Lamb
Comp1
Comp2
t[x/u]
u
t
se x fv(t)
/
(t[x/v] u[x/v]) x fv(t) & x fv(u)
(t u[x/v])
x fv(t) & x fv(u)
/
t[x/v] u
x fv(t) & x fv(u)
/
y.t[x/v]
t[y/v][x/u[y/v]] se y fv(u) & y fv(t)
t[x/u[y/v]]
se y fv(u) & y fv(t)
/
se
es.
e a funo (f ) da sintaxe
para a sintaxe
C
MC
conuente;
A conuncia em
meta-termos desejvel, dado que muitas vezes se quer elaborar provas com lacu-
PSN
SIM
FC
normalizveis no clculo
-reduo
f (t) z f (t );
Um passo de
ento
preserva a
-normalizao-forte,
z ;
tambm o so no
no clculo
z .
Ou seja, se
t t
Adaptamos aqui uma tabela realizada em [10] que aponta, para alguns clculos de
substituies explcitas, a presena ou no, das propriedades acima mencionadas:
44
Clculo
PSN
SIM
FC
Sim
No
Sim
Sim
No
Sim
Sim
Sim
Sim
Sim
Sim
No
No
Sim
Sim
Sim
[43]
MC
Sim
No
Sim
Sim
ex
es,
-estrutural
ex,
no tivemos
adaptao possui um grau de complexidade relativamente baixo. Contudo, quando buscamos realizar o mesmo trabalho com o Teorema de recurso
fv(s) fv(t), ns
temos possivelmente
dado que
ocorrer livre em
t.
pode
Theorem tm_induction :
forall (P : tm -> Type) (F : aset tmvar),
(P dot) ->
(forall a, P (var a)) ->
(forall s, P s -> forall t, P t -> P (s ! t)) ->
(forall a, In a F -> forall s, P s -> P (& a, s)) ->
(forall a, In a F -> forall s, P s -> forall t, P t ->
P (s [a | t])) ->
forall x : tm, P x.
Figura 4.13: Teorema de induo
-Estrutural
para o clculo
ex.
ex, o que muito semelhante ao que ocorre na Denio 3.0.14 para clculo .
Mas
necessrio levar em considerao um novo caso, para a situao onde o termo uma
substituio explcita, isto , a recurso em
Denio 4.3.1
distintas, a
t[y/u]{x/v}.
(Meta-substituio no Clculo
ex)
Sendo
u, b T
x, y
variveis
(i)
x{x/b} = b
(ii)
y{x/b} = y
(iii)
(iv)
(y.t){x/b} = y.t{x/b},
(v)
se
y
/
t[y/u]{x/b} = t{x/b}[y/u{x/b}],
fv(b)
y
/
se
fv(b)
t[y/u]{x/v};
de um gramtica auxiliar (ex'), onde a substituio explcita fosse substituda por uma
espcie de segunda abstrao, ou seja, uma substituio que no carrega o seu argu-
ex.
ex
ex'
(x | (a a) | x.a | a[x/a]) (x | (a a) | x.a | a[x])
Figura 4.14:
ex
ex'.
s[x]
por
t,
(s[x/t])
ex
levada na
Phi
Phi
f(Phi)
(s[x] t)
s[x/t]
na
Phi',
prova de que
Phi
de
em
Phi'.
Phi
e f(Phi),
Phi
x
(s t)
x.s
s[x/t]
Exemplo 4.3.2.
termo
f(Phi)
x
(s t)
x.s
(s[x] t)
Phi
e f(Phi).
:=
:=
f 1
y[y/(z z)]
: Phi' Phi,
, no
domnio f(Phi) Phi'. Esse fato demostrado atravs de induo sobre Phi. De posse
1
dessas duas funes ( e
), denimos a meta-substituio no clculo ex como sendo:
1
u{x/b} := f (f(u){x/f(b)} ).
f f
ex,
ex
Isso feito
Por
47
Captulo 5
Propriedades do ex
Em [19], foi demonstrado, de maneira construtiva, que o clculo
ex
possui importantes
propriedades como C e MC, FC, SIM e a PSN (fato que exibido na tabela da Figura 4.12.
Aqui ser dada especial ateno a demonstrao das propriedades relativas a terminao
do
ex,
Lema 5.0.3
(i) Se
(Propriedades bsicas)
t R t ,
ento fv(t
Seja
R {ex, ex},
t, t , u
termos.
) fv(t);
(ii) Se
e sejam
t{x/u} R t {x/u}.
Ento em particular
R, e
induo -
u,
Se
u = x,
Se
u = y = x,
u{x/t} = t R t = u{x/t };
y{x/t} = y = y{x/t }
48
e portanto
y{x/t} R y{x/t };
Se
u = (u v ),
por hiptese de
Se
u = x.u ,
Se
y=x
ento
por hiptese de
ento
u = y.u ,
ento
Se
Se
y = x e u = u [y/v ], ento u [y/v ]{x/t} = u {x/t}[y/v {x/t}] R u {x/t }[y/v {x/t }],
Sejam
uT.
Ento
t,
Se
t = x,
Se
t = y = x,
Se
Se
t = x.u ,
Se
y=x
ento
estrutural sobre
ento
y[x/u] Gc y = y{x/u};
ento
ento
t = x.u ,
Se
t = u [x/v ],
ento
ento
u [x/v ] = u [y/v ],
-induo
C.
t[x/u] ex t{x/u}.
Se
y=x
t = u [y/v ],
49
com
y = x
e os demais passos so
Exemplo 5.1.2.
Lemma full_comp:forall x t u,
t [x | u] ->_ex+ (t { x := u}).
Sejam
ento
varivel,
uT,
t[x/u] ex t{x/u}.
Proof.
intros x t u. pattern t.
apply tm_induction'.
induo
(* dot *)
-estrutural
sobre
x = fv()
/
[x/u] Gc = {x/u}
(* var *)
(* a = x *)
(* a <> x *)
a = x a {x} = fv(x)
/
a[x/u] Gc a = a{x/u}
(* app *)
y {x} fv(u)
/
(* lam *)
(y := (& a, s [x | u])).
auto with lex. auto with lex.
50
(* subst *)
y {x} fv(u)
/
x fv(v )
(* In x (fvar t') *)
intro H3.
apply Rplus_transitive with
(y := s [x | u] [ a | (t' [x | u])]);
(* In x (fvar t') *)
intro H3.
Qed.
A especicao do clculo
ex
de [23], proporciona uma grande proximidade entre provas em papel e lpis e suas respectivas formalizaes em Coq.
necessrio tomar certo cuidado, as teorias e bibliotecas implictas nessa prova que viabilizam tal conforto nas formalizaes. Se analisarmos de forma isolada a construo da
gramtica do clculo, baseda no arquivo
Nominal_Logic,
t .
Se
t t ,
+
+
ex ex ex , ento t ex t
t,
e como
ento
Sejam
t ex t .
A demonstrao do Lema 5.2.1 em Coq , de fato, bastante curta, por que ela
feita por induo na relao de reduo
(notacionada por
->_L),
somente atravs da
sur_les_realations.
Reduct_Lex
5.3 Perpetualidade
ex da seguinte forma: se t = xt1 ...tn , reescrevet = x.u, reescreve-se u; se t = (x.s)uvn ,
t = s[x/u]vn , e u SN ex , reescreve-se a cabea do
ti
Denio 5.3.1
perptua .
(Estratgia
un N F ex t
t
(p-var)
xun tvm
xun t vm
t
x.t
t
(p-abs)
x.t
u SN ex
(p-subs1)
t[x/u]un
t{x/u}un
(x.t)uun
t[x/u]un
u SN ex u
/
u
(p-subs2)
t[x/u]un
t[x/u ]un
v,
ento
u = v.
E alm disso,
(p-subst1)
Na sequncia, os primeiros
Lema 5.3.2.
Se
t,
ento
t ex t .
e aplicao
(ii)
(iii)
(iv)
(p-abs) x.t
x.t , por hiptese
+
e portanto x.t ex x.t ;
(p-subst1) t[x/u]vn
t{x/u}vn .
que
(p-subst2) t[x/u]vn
Ento pelo Lema 5.0.3
t ex t
t ex t
(x.t)u B t[x/u]
+
t[x/u] ex t{x/u},
t[x/u]vn ex t{x/u}vn ;
Temos que
de induo
de induo
(p-B) (x.t)uun
t[x/u]un . Temos
+
(p-B)
+
+
52
demostrados no arquivo
t ex t (t un ) ex
Lema 5.3.3
(Propriedade
IE . u SN
)
ex
t{x/u} SN ex
ento
lex+.
t[x/u] SN ex .
propriedade reside no fato de que, a prova em papel e lpis considera uma extenso da
gramtica do
ex
IE
Teorema 5.3.4
t SN ex
ento
(Teorema da Perpetualidade)
t SN ex .
Sejam
t, t T
n
tal que,
= max{n | s N F R : s R s }.
t.
Se
Ento, efetuando-
, temos:
(ii)
(p-abs) t = x.s
Se x.s SN ex ,
(iv)
(v)
x.s = t , e s
s.
s SN ex .
induo s SN ex e logo x.s SN ex ;
ento
(p-B) t = (x.s)uun
s[x/u]un = t . Se s[x/u]un SN ex ,
ento s, u, un SN ex . Ento deve-se mostrar, por induo sobre
lex (s) + lex (u) + i lex (ui ), que toda ex-reduo de (x.s)uun pertence a SN ex .
Conclui-se que (x.s)uun SN ex ;
(p-subst1) t = s[x/u]vn
s{x/u}vn = t
e pela hiptese de que s{x/u}vn SN ex ,
e portanto s[x/u]vn SN ex ;
u SN ex .
conclui-se que
s[x/u], vn SN ex
(p-subst2) t = s[x/u]vn
s[x/u ]vn = t , u SN ex e u
/
u.
Se s[x/u ]vn SN ex , ento em particular u SN ex , e assim u SN ex ,
por hiptese de induo. Dado que u SN ex e u SN ex ,
/
pode-se concluir qualquer proposio construtiva, em especial t SN ex
SN ex
SN
SN ex .
realizada na biblioteca
Mas, no conseguimos
ainda avanar na demostrao de fatos simples sobre esse predicado, como por exemplo
a armao de que: qualquer subtermo de um termo fortemente normalizvel tambm
fortemente normalizvel. Necessitamos da prova de tais lemas para que possamos conluir
a formalizao de 5.3.4.
Esse teorema fornece a garantia de que a denio da estratgia 5.3.1 perptua. Uma
caracterizao indutiva do conjunto
SN ex
3.4.5. Tal caracterizao foi estendida para clculos com substituies explcitas em [44,
45], mas nesses trabalhos so consideradas muitas regras de inferncia para se caracterizar
termos fortemente normalizveis da forma
de
SN ex
onde necessrio somente uma regra para cada objeto da sintaxe do clculo
ex.
Denio 5.3.5
t1 , ..., tn ISN n 0
(var)
xt1 ...tn ISN
ISN )
Proposio 5.3.6. SN
ex
.
u ISN
(abs)
x.u ISN
= ISN .
54
X t SN ex t ISN
X t ISN t SN ex
e aplicao
do Teorema 5.3.4.
SN ex .
em papel e lpis de 5.3.6. Como ainda no obtivemos tais resultados, consideramos esse
trabalho como pertencente a um escopo futuro de realizao.
para o
ex)
Se
t SN ,
ento
t SN ex .
t SN
(Lema
Se
t = xtn
aplicao da
Se
t = x.s
aplicao da
com
com
e ento por
55
Captulo 6
Concluso e trabalhos futuros
A tarefa de vericao formal de uma teoria algo desaador e estimulante.
Pois a
ex,
Nosso trabalho,
e suas propriedades de
normalizao.
Uma questo importante, a escolha de um determinado assitente de prova para
realizao de formalizaes, que algo de cunho mais pessoal, do que tcnico. No entanto,
nossa opo pelo assistente Coq levou tambm em considerao o tipo de teoria com o
qual esse sistema trabalha, que o CCI (Clculo de Contrues Indutivas).
A teoria
ex,
assim
como qualquer outra elaborada em um ambiente construtivo, possa ser tambm utilizada
para tal m.
Alguns dos exemplos mais conhecidos de clculos de substituies explcitas, designam
suas variveis atravs da notao de ndices de de Bruijn. Esse tipo de notao nasceu
para realizar a tarefa de construo de linguagens de programao, no ambiente em que
uma mquina pode interpretar com rapidez e agilidade os termos da gramtica do clculo.
A grande vantagem dessa abordagem que ela dispensa o uso de
termos, dado que um objeto do tipo
-equivalncia entre
a /= .
ex,
uality for full and safe composition (in a constructive setting); e nos sentimos, de certo
56
modo, seduzidos pela caracterstica construtiva das provas realizadas, pela simplicidade
de notao e do conjunto de regras de reescrita, aliados ao poder do clculo, que possui
muitas das propriedades esperadas para uma extenso do clculo
Contudo a designao de variveis por nomes tem seu preo. No Coq denies indutivas no consideram ligaes de variveis, ento qualquer construtor necessariamente
injetivo, isto , dado
K:
um construtor e
x 1 , x 2 : , K x 1 = K x 2 x1 = x2 .
Isso
=, pr-contruda no Coq:
x.a = y.b
x = y a = b e s[x/v] = t[y/v]
s = t x = y . H dois caminhos
a seguir, a primeira opo seria a construo de uma relao = no contida em =; a
tituio explcita, no h injetividade com respeito a relao
do clculo, e considerar
contida em
=.
/ HOL [4]. Tal trabalho apresentado por Christian Urban [34] e ele gerou motivaes
para que formalizaes de sintaxes com ligaes fossem estendidas a outros assistentes
de prova, como o Coq. O artigo [23], de B. Aydemir et al, apresenta uma biblioteca de
Lgica Nominal [20, 21, 22] (que se encontra no arquivo
a gramtica do clculo
-estrutural
[24] do
Nominal_Logic ),
e formaliza
-estrutural
para a gramtica do
ex.
ex e ex',
para o ex.
ex .
-reduo
SN
(Fortemente Normalizvel)
SN ex ,
e do Teorema da Preservao
da funo de meta-substituio no
ex,
das provas. Finalizando, consideramos tambm um outro ponto interessante a ser abordado: a questo de comparao, com respeito as propriedades de normalizao, entre o
clculo
ex
ex'.
http://www.cic.unb.br/ flavio/msc/lex.tar.gz
57
Referncias
[1] M. Abadi, L. Cardelli, P.-L. Curien, and J.-J. Lvy. Explicit substitutions. Journal
In Proc.
16th Annual Conference on Computer Science and Logic (CSL-07), LNCS. SpringerVerlag, 2007. 3, 5, 16, 41, 44, 45
[11] H. Barendregt, J. Bergstra, J. W. Klop, and H. Volken.
In
-calculi
with types.
1992. 6
59
http://coq.inria.fr/contribs/. 6
[30] M. Ayala-Rincn and F. L. C. de Moura.
Principia Mathematica.
Cambridge University
1910-1913. 25
[34] C. Urban. Nominal Techniques in Isabelle/HOL. Journal of Automated Reasoning,
40(4):327356, 2008. 28, 57
[35] A.
Charguraud.
The
locally
nameless
http://arthur.chargueraud.org/research/2009/ln/.
Acessado
representation.
em
21/06/10,
2010. 28
[36] N. G. de Bruijn.
France-Japan
CTRS, volume 656 of Lecture Notes in Computer Science, pages 3650. Springer,
1992. 39, 45
[39] R. Lins.
In 8th
calculi with explicit substitution and garbage collection. In Computer Science in the
Typed
-calculi
In
s-calculus:
60
[44] S. Lengrand, P. Lescanne, D. Dougherty, M. Dezani-Ciancaglini, and S. van Bakel. Intersection types for explicit substitutions. Information and Computation, 189(1):17
42, 2004. 54
[45] E. Bonelli.
61