Un par crítico surge en un sistema de reescritura de términos cuando dos reglas de reescritura se superponen para producir dos términos diferentes. En más detalle, ( t 1 , t 2 ) es un par crítico si hay un término t para el cual dos aplicaciones diferentes de una regla de reescritura (ya sea la misma regla aplicada de forma diferente o dos reglas diferentes) producen los términos t 1 y t 2 .
La definición real de un par crítico es un poco más compleja, ya que excluye los pares que se pueden obtener a partir de pares críticos por sustitución y orienta el par en función de la superposición. Específicamente, para un par de reglas superpuestas y , donde la superposición es que para algún contexto no vacío , y el término (que no es una variable) coincide bajo algunas sustituciones que son más generales, el par crítico es . [1]
Cuando ambos lados del par crítico pueden reducirse al mismo término, el par crítico se denomina convergente . Cuando un lado del par crítico es idéntico al otro, el par crítico se denomina trivial .
Por ejemplo, en el término sistema de reescritura con reglas
el único par crítico es ⟨ g ( x , z ), f ( x , z )⟩. Ambos términos pueden derivarse del término f ( g ( x , y ), z ) aplicando una única regla de reescritura.
Como otro ejemplo, considere el sistema de reescritura de términos con una regla única.
Aplicando esta regla de dos maneras diferentes al término f ( f ( x , x ), x ), vemos que ( f ( x , x ), f ( x , x )) es un par crítico (trivial).
La confluencia implica claramente pares críticos convergentes: si surge cualquier par crítico ⟨ a , b ⟩, entonces a y b tienen un reduct común y, por lo tanto, el par crítico es convergente. Si el sistema de reescritura de términos no es confluente , el par crítico puede no converger, por lo que los pares críticos son fuentes potenciales donde la confluencia fallará.
El lema del par crítico establece que un sistema de reescritura de términos es débilmente confluente (es decir, localmente) si y solo si todos los pares críticos son convergentes. Por lo tanto, para averiguar si un sistema de reescritura de términos es débilmente confluente, basta con probar todos los pares críticos y ver si son convergentes. Esto permite averiguar algorítmicamente si un sistema de reescritura de términos es débilmente confluente o no, dado que se puede comprobar algorítmicamente si dos términos convergen.