Parte I: Un nuevo esquema gen´ erico CFLP(D) para la progra-
4. Resoluci´ on de objetivos en el esquema CFLP(D)
4.2. El c´alculo de estrechamiento perezoso CLNC (D)
4.2.4. Resultados de correcci´on y de completitud fuerte
∃X0, Xs0. f rom M → [X0|Xs0] 2 2 1 < 3, domain [X0] 1 2 2 ε `` DF ∃X0, Xs0. [M | f rom (M + 1)] → [X0|Xs0] 2 2 1 < 3, domain [X0] 1 2 2 ε `` DC ∃X0, Xs0. M → X0, f rom (M + 1) → Xs0 2 2 1 < 3, domain [X0] 1 2 2 ε `` SP{X07→ M } ∃Xs0. f rom (M + 1) → Xs0 2 2 1 < 3, domain [M ] 1 2 2 ε `` EL 2 2 1 < 3, domain [M ] 1 2 2 ε ``CS(∅) 2 2 M ∈ [1..2] 2 ε
Debido a que solveFD({1 < 3, domain [M ] 1 2}, ∅) = {M ∈ [1..2]} 2 ε. Por tanto,
obtenemos la primera respuesta computada: Π1 2 θ1 ≡ {M ∈ [1..2]} 2 ε. An´aloga-
mente, podemos aplicar la tercera regla de programa de check list:
∃X. check list (f rom M ) → X 2 2 X < 3 2 ε ``∗DF 2 2 M ∈ [3..4] 2 ε
para as´ı obtener la segunda respuesta computada: Π2 2 θ2 ≡ {M ∈ [3..4]} 2 ε.
Ninguna respuesta m´as puede ser computada, porque si aplicamos la cuarta regla de programa de check list volvemos a obtener una derivaci´on de fallo:
∃X. check list (f rom M ) → X 2 2 X < 3 2 ε ``DF
∃X0, Xs0, X. f rom M → [X0|Xs0], 4 → X2domain [X0] 5 7 2X < 32ε `` SP{X 7→ 4} ∃X0, Xs0. f rom M → [X0|Xs0] 2 domain [X0] 5 7 2 4 < 3 2 ε `` AC ∃X0, Xs0. f rom M → [X0|Xs0] 2 2 4 < 3, domain [X0] 5 7 2 ε `` SF{X0,Xs0} ¥ puesto que solveFD({4 < 3, domain [X0] 5 7}, {X0, Xs0}) = ¥. Como veremos en la
Subsecci´on 4.3.2, la introducci´on de ´arboles definicionales permite guiar eficiente- mente la computaci´on, evitando elecciones inadecuadas de reglas de programa. M´as a´un, veremos en el Ap´endice B que estas son exactamente las mismas respuestas computadas que se obtienen en la implementaci´on CFLP(FD) de T OY(FD). 4.2.4. Resultados de correcci´on y de completitud fuerte
En esta secci´on vamos a presentar las principales propiedades del c´alculo de reso- luci´on de objetivos CLNC (D): la correcci´on y completitud del c´alculo con respecto a la sem´antica declarativa de CFLP(D)-programas formalizada mediante la l´ogica para la reescritura con restricciones CRWL(D).
Los resultados que vamos a presentar, en especial el denominado Teorema de
Completitud y su correspondiente Lema de Progreso asociado, ponen de manifiesto
su dificultad t´ecnica, lo que hace que su demostraci´on resulte ser bastante m´as com- plicada que la de otros resultados te´oricos similares relacionados con los lenguajes de programaci´on l´ogico funcional sin restricciones [GHLR99, GHR01, Vad03a, Vad03b]. Se trata sin embargo de resultados te´oricos mucho m´as fuertes y m´as generales que los que se han obtenido en trabajos previos [Lop92, AGL94, ALR99] para lenguajes
126 4. Resoluci´on de objetivos en el esquema CFLP(D)
CFLP. Como principal diferencia con respecto al c´alculo de estrechamiento pere-
zoso con restricciones en el esquema CFLP(D, S, L) [Mar00], en nuestro esquema
CFLP(D) se proporciona una sem´antica l´ogica en la que las nociones formales de
respuesta correcta y de resolutor de restricciones se han fijado con total precisi´on. Nuestro primer resultado permite probar la correcci´on de un solo paso de trans- formaci´on de objetivos. Este resultado afirma que los pasos de transformaci´on del c´alculo CLNC (D) preservan la admisibilidad de los objetivos, fallan s´olo en caso de objetivos insatisfactibles y no introducen respuestas nuevas.
Lema 10 (Lema de Correcci´on) Sea P un CFLP(D)-programa. El c´alculo de
resoluci´on de objetivos CLNC (D) verifica las siguientes propiedades:
(1) Los pasos de transformaci´on del c´alculo preservan la admisibilidad de los ob- jetivos: Si G ``CLNC (D)G0 y G es un objetivo admisible, entonces G0 tambi´en
es un objetivo admisible. M´as a´un, f var(G0) ⊆ f var(G).
(2) Los pasos de transformaci´on fallan s´olo en el caso de objetivos insatisfactibles:
Si G ``CLNC (D)¥ entonces SolP(G) = ∅ (o equivalentemente, el conjunto de
respuestas AnsP(G) incluye s´olo respuestas triviales).
(3) Los pasos de transformaci´on no introducen nuevas respuestas: Si G ``CLNC (D)G0 y (Π2θ) ∈ Ans
P(G0) entonces (Π2θ) ∈ AnsP(G).
La demostraci´on del Lema de Correcci´on se incluye en el Ap´endice A. El siguiente
Teorema de Correcci´on se deduce f´acilmente a partir del Lema de Correcci´on. Este
resultado asegura que las respuestas computadas para un objetivo admisible G son respuestas correctas de G en el sentido dado en la Definici´on 18.
Teorema 6 (Correcci´on del C´alculo CLNC (D)) Si G0 es un objetivo inicial y
G0 ``∗
CLNC (D)Gn, donde Gn ≡ ∃U . 2 2 S 2 σ es un objetivo en forma resuelta,
entonces (S 2 σ) ∈ AnsP(G0).
Demostraci´on 11 Utilizando la Proposici´on 8 se tiene que (S 2 σ) ∈ AnsP(Gn).
Si ahora aplicamos repetidamente de atr´as hacia adelante el apartado (3) del Lema
de Correcci´on, obtenemos directamente que (S 2 σ) ∈ AnsP(G0).
¤ La completitud del c´alculo CLNC (D) se basa en la siguiente idea: siempre que se tenga una respuesta (Π 2 θ) ∈ AnsP(G) y G sea un objetivo admisible que no est´e ya en forma resuelta, existe una cantidad finita de posibles elecciones locales que permiten efectuar un primer paso de c´omputo G `` Gj (1 ≤ j ≤ l) de forma que los
nuevos objetivos Gj que se obtienen est´an m´as cerca de ser resueltos y cubren todas
4.2.4 Resultados de correcci´on y de completitud fuerte 127 hace uso de un sofisticado orden de progreso bien fundamentado. T´ecnicas similares ya han sido utilizadas en [GHLR99, GHR01, Vad03a, Vad03b, Vad07] para probar la completitud de c´alculos de estrechamiento perezoso en lenguajes FLP. En el contexto actual del esquema CFLP(D), el resolutor solveDha de ser tambi´en tenido en cuenta. Como consecuencia, el n´umero l de posibles elecciones locales puede ser m´as grande que 1 en general, y el orden de progreso ser´a en consecuencia t´ecnicamente m´as complicado que aquellos que se utilizan en los trabajos anteriormente citados. Definici´on 21 (Orden de Progreso para CLNC (D)) Sea P un CFLP(D)-pro-
grama, G ≡ ∃U . P 2 C 2 S 2 σ un objetivo admisible para P, y M : (Π2θ)
∈ AnsP(G) una respuesta para G con testigo M. Definimos los siguientes tama˜nos
asociados a G y a M:
El tama˜no restringido del testigo M = {{T1, . . . , Tn}} (representado por | M |)
es el multiconjunto de n´umeros naturales {{| T1 |, . . . , | Tn |}}, donde | Ti |
representa el tama˜no restringido de cada ´arbol de prueba Ti (1 ≤ i ≤ n), como
se defini´o en la Subsecci´on 3.1.3.
El tama˜no | G |1 es el n´umero de apariciones en G de expresiones de la forma
F ek con F una variable y k > 0.
El tama˜no | G |2 es el n´umero de apariciones en G de expresiones r´ıgidas y
pasivas hem que no son patrones.
El tama˜no | G |3es el tama˜no sint´actico total de los lados derechos de produccio-
nes en G.
El tama˜no restringido del almac´en de restricciones (representado por | S |) es 1 si S est´a en forma resuelta y 0 en otro caso.
Definimos un orden de progreso bien fundamentado sobre parejas (G, M):
(G, M) B (G0, M0) ⇔
def (| M |, | G |1, | G |2, | G |3, | S |) Âlex
(| M0 |, | G0 |
1, | G0 |2, | G0 |3, | S0 |)
donde Âlex es el producto lexicogr´afico de Âmul × >N× >N× >N× >N, Âmul es el
orden de multiconjuntos para multiconjuntos sobre los n´umeros naturales N, y >N
es el orden usual sobre N. En [BN98] se proporcionan definiciones concretas para las definiciones de todas estas nociones.
La siguiente tabla muestra el comportamiento de las diferentes transformaciones del c´alculo CLNC (D) con respecto a las cinco componentes del orden del producto lexi- cogr´afico que define B.
A continuaci´on ofrecemos el resultado principal que nos va a permitir demostrar la completitud del c´alculo CLNC (D):
128 4. Resoluci´on de objetivos en el esquema CFLP(D) REGLA | M | | G |1 | G |2 | G |3 | S | DC ºmul >N >N >N SP ºmul >N >N >N IM ºmul >N >N EL ºmul >N >N >N PF Âmul DF Âmul FV ºmul >N CS ºmul >N >N >N >N AC Âmul
Figura 4.1: El orden de progreso B
Lema 11 (Lema de Progreso) Asumamos un objetivo admisible G que no est´e en
forma resuelta y una respuesta no-trivial con testigo M : (Π2θ) ∈ AnsP(G).
(1) Hay una regla de transformaci´on en CLNC (D) aplicable al objetivo G. (2) Para cualquier regla RL del c´alculo CLNC (D) que sea aplicable al objetivo G,
existen l objetivos Gj con respuestas no-triviales y testigos Mj : (Πj 2 θj) ∈
AnsP(Gj) (1 ≤ j ≤ l) tales que:
G ``RLGj para cada 1 ≤ j ≤ l,
SolD(Π2θ) ⊆
Sl
j=1SolD(∃\G. Πj2θj) (bajo el supuesto de que el resolu-
tor sea idealmente completo si RL es alguna de las dos transformaciones
CS o SF),
(G, M) B (Gj, Mj) para cada 1 ≤ j ≤ l, donde B es el orden de progreso
bien fundamentado dado en la Figura 4.1.
Demostraci´on 12
(1) Si G ≡ ∃U . P 2 C 2 S 2 σ es un objetivo admisible que no est´a en forma
resuelta, entonces P , o bien C, no es vac´ıo. Vamos a proceder asumiendo gradualmente que ninguna regla, excepto una (que ser´a la que hemos denomi- nado EL), es aplicable a G, para as´ı concluir entonces que es la regla EL la que puede ser aplicada en ´ultimo caso. Observamos que las reglas de fallo no pueden ser aplicadas porque, en caso contrario, G podr´ıa no tener una respuesta no-trivial, debido al apartado (2) del Lema de Correcci´on.
Asumamos que la regla AC no es aplicable. Entonces, C deber´ıa ser vac´ıo y el
objetivo ser´ıa de la forma G ≡ ∃U . P 2 2 S 2 σ con P no vac´ıo. Asumamos
ahora que las reglas DC, SP, IM, PF, DF y FV no son aplicables. Entonces, estamos en el caso en el que todas las producciones de P son de la forma
4.2.4 Resultados de correcci´on y de completitud fuerte 129
hem → X o f enak→ X (k ≥ 0) o pen→ X o F ak→ X (k > 0)
donde hem es una expresi´on r´ıgida y pasiva pero no un patr´on y en todos
los casos X es una variable producida pero no demandada por el objetivo (en particular, X /∈ odvarD(S)). Consideramos ahora el conjunto χ de tales X0s,
esto es, χ = pvar(G).
Si la regla CS no es aplicable, entonces es que S debe estar ya en χ-forma
resuelta. Pero entonces, debido al hecho de que χ ∩ odvarD(S) = ∅ y a la
condici´on de Discriminaci´on de los resolutores de restricciones dada en la
Definici´on 5 (Subsecci´on 2.4.2), concluimos que χ ∩ var(S) = ∅. Elegimos ahora una variable X ∈ χ que sea minimal con respecto al orden de producci´on
À+P (tal elemento minimal ha de existir siempre, debido al n´umero finito de
variables que aparecen en G y a la propiedad NC de los objetivos admisibles). Esta variable X no puede aparecer ni en ninguna otra producci´on de P ni en la sustituci´on σ del objetivo por la condici´on de admisibilidad SL, por lo cual
se verifica que X /∈ var(P 2 C 2 S 2 σ). Por tanto, la regla EL puede
aplicarse a la producci´on donde la variable X aparece.
(2) Esta parte del Lema de Progreso se demuestra mediante un an´alisis de ca- sos, utilizando la tabla de la Figura 4.1 que muestra el comportamiento de las diferentes transformaciones del c´alculo CLNC (D) con respecto a las cin- co componentes del orden lexicogr´afico que definen el orden de progreso. Los detalles de esta demostraci´on se dan en el Ap´endice A.
¤ Finalmente, mediante reiteradas aplicaciones del Lema de Progreso se consigue de- mostrar el resultado de completitud que est´abamos buscando:
Teorema 7 (Completitud del C´alculo CLNC (D)) Supongamos un resolutor
idealmente completo. Sea G0 un objetivo inicial y (Π0 2 θ0) ∈ AnsP(G0) una res-
puesta no-trivial. Existe un n´umero finito de derivaciones que finalizan en objetivos en forma resuelta G0``∗ G
i (1 ≤ i ≤ k) tales que SolD(Π0 2 θ0) ⊆ Sk
i=1SolP(Gi).
Demostraci´on 13 Mediante aplicaciones reiteradas del Lema de Progreso, pode-
mos construir un ´arbol finitamente ramificado T cuya ra´ız sea M0 : (Π0 2 θ0) ∈
AnsP(G0), y tal que cada nodo M : (Π 2 θ) ∈ AnsP(G) asociado a un objetivo G
que no est´a en forma resuelta, tenga hijos Mj : (Πj 2 θj) ∈ AnsP(Gj) (1 ≤ j ≤ l).
Puesto que B es un orden bien fundamentado, no puede haber caminos infinitos en T . Debido al Lema de K¨onig, T es un ´arbol finito con k hojas asociadas a objetivos en forma resuelta Gi (1 ≤ i ≤ k) tales que G0``∗ Gi para cada 1 ≤ i ≤ k. Probamos
que SolD(Π0 2 θ0) ⊆ Sk
130 4. Resoluci´on de objetivos en el esquema CFLP(D) Caso base (p = 0). T tiene s´olo el nodo ra´ız M0 : (Π0 2 θ0) ∈ AnsP(G0),
donde G0 es un objetivo en forma resuelta. En este caso, k = 1, G1 ≡ G0, y
directamente SolD(Π0 2 θ0) ⊆ SolP(G0) usando la Proposici´on 8.
Caso inductivo (p > 0). T tiene un nodo ra´ız M0 : (Π0 2 θ0) ∈ AnsP(G0)
y sub´arboles Tj (1 ≤ j ≤ l), cada uno de ellos con ra´ız Mj : (Πj 2 θj) ∈
AnsP(Gj) y hojas asociadas a objetivos en forma resuelta Gj,i (1 ≤ i ≤ kj).
Probamos que SolD(Π0 2 θ0) ⊆ Sl
j=1
Skj
i=1 SolP(Gj,i). Mediante la aplicaci´on
del Lema de Progreso, tenemos SolD(Π02θ0) ⊆
Sl
j=1SolD(∃\G0. Πj2θj).
Asumamos que Wj son las variables cuantificadas existencialmente en ∃\G0.
Πj 2 θj. Por hip´otesis de inducci´on para cada 1 ≤ j ≤ l (la profundidad
de cada sub´arbol Tj es pj < p), SolD(Πj2θj) ⊆
Skj
i=1 SolP(Gj,i). M´as a´un,
puesto que Wj no son variables libres en Gj,i para todo 1 ≤ i ≤ kj, se tiene
tambi´en que SolD(∃Wj. Πj2 θj) ⊆ Skj
i=1 SolP(Gj,i), y el resultado se sigue
f´acilmente de ambas inclusiones.
¤ A partir de la demostraci´on del Teorema de Completitud, observamos que la com- pletitud del c´alculo CLNC (D) es fuerte en el sentido de que la elecci´on local de la regla de transformaci´on de objetivos aplicada en cada paso puede ser una elecci´on
don’t care. M´as a´un, el Ejemplo 11 muestra que el n´umero k de respuestas com-
putadas necesarias para cubrir las soluciones de la respuesta dada Π 2 θ ha de
permitirse que sea m´as grande que 1 en general. Una situaci´on similar ocurre en el
Teorema de Completitud de Maher para CLP(D) [JMMS98], aunque la sem´antica
subyacente y las t´ecnicas de demostraci´on sean bastantes diferentes en ese contexto. En nuestro contexto, la condici´on (6) de la Definici´on 5 (relativa al comportamiento de los resolutores de restricciones) es responsable del n´umero finito k de respuestas computadas en el Teorema de Completitud.
Obs´ervese asimismo que, de acuerdo con la condici´on (6) de completitud pedida en la Definici´on 5, tanto el apartado (2) del Lema de Progreso como el Teorema de
Completitud del c´alculo CLNC (D) solo se podr´ıan afirmar para el caso de soluciones
bien tipadas, y bajo el supuesto de que los pasos de c´omputo permitan preservar solu- ciones bien tipadas. Sin embargo, con el fin de separar los problemas de completitud relativos al resolutor del comportamiento de las restantes reglas de transformaci´on de objetivos, se ha optado por demostrar el Lema 11 y el Teorema 7 bajo el supuesto ideal de que se est´a haciendo uso de un resolutor completo. De esta forma, hemos podido garantizar la propiedad de progreso (y por tanto, la completitud del c´alcu- lo) con respecto a todas las soluciones, sean estas bien tipadas o no. Proceder de esta manera permite adem´as resaltar una caracter´ıstica importante del dise˜no del c´alculo de estrechamiento con restricciones: el c´alculo permite extender de manera
4.3 El c´alculo de estrechamiento demandado CDNC (D) 131