En la informática teórica , en particular en la reescritura de términos , un ordenamiento de caminos es un orden total estricto bien fundado (>) en el conjunto de todos los términos tales que
- f (...) > g ( s 1 ,..., s n ) si f . > g y f (...) > s i para i =1,..., n ,
donde ( . >) es un orden de precedencia total dado por el usuario en el conjunto de todos los símbolos de función .
Intuitivamente, un término f (...) es mayor que cualquier término g (...) construido a partir de términos s i menores que f (...) usando un símbolo raíz de menor precedencia g . En particular, por inducción estructural , un término f (...) es mayor que cualquier término que contenga solo símbolos menores que f .
Un ordenamiento de caminos se usa a menudo como ordenamiento de reducción en la reescritura de términos, en particular en el algoritmo de completación de Knuth-Bendix . Como ejemplo, un sistema de reescritura de términos para " multiplicar " expresiones matemáticas podría contener una regla x *( y + z ) → ( x * y ) + ( x * z ). Para probar la terminación , se debe encontrar un ordenamiento de reducción (>) con respecto al cual el término x *( y + z ) sea mayor que el término ( x * y )+( x * z ). Esto no es trivial, ya que el primer término contiene menos símbolos de función y menos variables que el segundo. Sin embargo, estableciendo la precedencia (*) . > (+), se puede usar un ordenamiento de caminos, ya que tanto x *( y + z ) > x * y como x *( y + z ) > x * z es fácil de lograr.
También puede haber sistemas para ciertas funciones recursivas generales , por ejemplo, un sistema para la función de Ackermann puede contener la regla A( a + , b + ) → A( a , A( a + , b )), [ 1 ] donde b + denota el sucesor de b .
Dados dos términos s y t , con un símbolo raíz f y g , respectivamente, para decidir su relación se comparan primero sus símbolos raíz.
- Si f < . g , entonces s puede dominar a t solo si uno de los subtérminos de s lo hace.
- Si f . > g , entonces s domina a t si s domina a cada uno de los subtérminos de t .
- Si f = g , entonces los subtérminos inmediatos de s y t deben compararse recursivamente. Dependiendo del método particular, existen diferentes variaciones de ordenamientos de caminos. [ 2 ] [ 3 ]
Estas últimas variantes incluyen:
- el ordenamiento de caminos de multiconjuntos ( mpo ), originalmente llamado ordenamiento de caminos recursivos ( rpo ) [ 4 ]
- el ordenamiento de rutas lexicográficas ( lpo ) [ 5 ]
- una combinación de mpo y lpo, llamada ordenación de caminos recursiva por Dershowitz, Jouannaud (1990) [ 6 ] [ 7 ] [ 8 ]
Dershowitz y Okada (1988) enumeran más variantes y las relacionan con el sistema de notaciones ordinales de Ackermann . En particular, se da una cota superior para los tipos de orden de ordenaciones de caminos recursivos con n símbolos de función, que es φ( n , 0), utilizando la función de Veblen para ordinales numerables grandes. [ 7 ]
Definiciones formales
El ordenamiento de rutas de multiconjuntos (>) se puede definir de la siguiente manera: [ 9 ]
dónde
- (≥) denota el cierre reflexivo del mpo (>),
- { s 1 ,..., s m } denota el multiconjunto de subtérminos de s , de forma similar para t , y
- (>>) denota la extensión multiconjunto de (>), definida por { s 1 ,..., s m } >> { t 1 ,..., t n } si { t 1 ,..., t n } se puede obtener de { s 1 ,..., s m }
- eliminando al menos un elemento, o
- reemplazando un elemento por un multiconjunto de elementos estrictamente más pequeños (con respecto al mpo). [ 10 ]
De manera más general, un funcional de orden es una función O que asigna un orden a otro y satisface las siguientes propiedades: [ 11 ]
- Si (>) es transitivo , entonces O (>) también lo es.
- Si (>) es irreflexivo , entonces O (>) también lo es.
- Si s > t , entonces f (..., s ,...) O (>) f (..., t ,...).
- O es continua en las relaciones, es decir, si R 0 , R 1 , R 2 , R 3 , ... es una secuencia infinita de relaciones, entonces O (∪ ∞ i =0 R i ) = ∪ ∞ i =0 O ( R i ).
La extensión de multiconjuntos, que mapea (>) arriba a (>>) arriba, es un ejemplo de un funcional de orden: (>>)= O (>). Otro funcional de orden es la extensión lexicográfica , que conduce al ordenamiento de caminos lexicográficos .
Referencias
- ↑ N. Dershowitz, " Terminación " (1995), pág. 207
- ↑ Nachum Dershowitz , Jean-Pierre Jouannaud (1990). Jan van Leeuwen (ed.). Reescribir sistemas . Manual de informática teórica. vol. B. Elsevier. págs. 243–320 . Aquí: sección 5.3, pág. 275
- ↑ Gerard Huet (mayo de 1986). Estructuras formales para la computación y la deducción . Escuela Internacional de Verano sobre Lógica de Programación y Cálculos de Diseño Discreto. Archivado del original el 14 de julio de 2014.Aquí: capítulo 4, págs. 55-64
- ↑ N. Dershowitz (1982). "Ordenamientos para sistemas de reescritura de términos" (PDF) . Theoret. Comput. Sci . 17 (3): 279– 301. doi : 10.1016/0304-3975(82)90026-3 . S2CID 6070052 .
- ↑ S. Kamin, J.-J. Levy (1980). Dos generalizaciones del ordenamiento de caminos recursivos (Informe técnico). Univ. de Illinois, Urbana/IL.
- ↑ Kamin, Levy (1980)
- 1 2 N. Dershowitz, M. Okada (1988). "Técnicas de teoría de la demostración para la teoría de reescritura de términos". Actas del 3er Simposio IEEE sobre lógica en ciencias de la computación (PDF) . págs. 104–111 .
- ↑ Mitsuhiro Okada, Adam Steele (1988). "Ordering Structures and the Knuth–Bendix Completion Algorithm". Proc. of the Allerton Conf. on Communication, Control, and Computing .
- ^ Huet (1986), sección 4.3, definición 1, p.57
- ^ Huet (1986), sección 4.1.3, p.56
- ^ Huet (1986), sección 4.3, pág. 58
- Sistemas de reescritura
- teoría del orden