Confluência (reescrita do resumo) - Confluence (abstract rewriting)

Fig.1: O nome confluência é inspirado na geografia , significando ali o encontro de dois corpos d'água.

Na ciência da computação, a confluência é uma propriedade de sistemas de reescrita , descrevendo quais termos em tal sistema podem ser reescritos de mais de uma maneira, para produzir o mesmo resultado. Este artigo descreve as propriedades na configuração mais abstrata de um sistema de regravação abstrata .

Exemplos motivadores

Expressão de exemplo de confluência.svg

As regras usuais da aritmética elementar formam um sistema abstrato de reescrita. Por exemplo, a expressão (11 + 9) × (2 + 4) pode ser avaliada começando nos parênteses à esquerda ou à direita; entretanto, em ambos os casos, o mesmo resultado é obtido eventualmente. Se cada expressão aritmética for avaliada para o mesmo resultado, independentemente da estratégia de redução, o sistema de reescrita aritmética é considerado confluente com o solo. Os sistemas de reescrita aritmética podem ser confluentes ou apenas confluentes no solo, dependendo dos detalhes do sistema de reescrita.

Um segundo exemplo mais abstrato é obtido a partir da seguinte prova de que cada elemento do grupo é igual ao inverso de seu inverso:

Axiomas de grupo
A1 1 ⋅ a = a
A2 a −1a = 1
A3     ( ab ) ⋅ c = a ⋅ ( bc )
Prova de R4 : a −1 ⋅ ( ab ) = b
a −1 ⋅ ( ab )
= ( a −1a ) ⋅ b por A3 (r)    
= 1 ⋅ b por A2
= b por A1
Prova de R6 : ( a −1 ) −1 ⋅ 1 = a
( a −1 ) −1 ⋅ 1
= ( a −1 ) −1 ⋅ ( a −1a ) por A2 (r)
= uma por R4
Prova de R10 : ( a −1 ) −1b = ab
( a −1 ) −1b
= ( a −1 ) −1 ⋅ ( a −1 ⋅ ( ab )) por R4 (r)
= ab por R4
Prova de R11 : a ⋅ 1 = a
a ⋅ 1
= ( a −1 ) −1 ⋅ 1 por R10 (r)
= uma por R6
Prova de R12 : ( a −1 ) −1 = a
( a −1 ) −1
= ( a −1 ) −1 ⋅ 1 por R11 (r)    
= uma por R6

Esta prova começa com os axiomas de grupo A1-A3, e estabelece cinco proposições R4, R6, R10, R11 e R12, cada uma delas usando alguns dos anteriores, e R12 sendo o teorema principal. Algumas das provas requerem etapas não óbvias, ou mesmo criativas, como aplicar o axioma A2 ao contrário, reescrevendo assim "1" para " a −1 ⋅ a" na primeira etapa da prova de R6. Uma das motivações históricas para desenvolver a teoria da reescrita de termos foi evitar a necessidade dessas etapas, que são difíceis de encontrar por um ser humano inexperiente, muito menos por um programa de computador.

Se um sistema de reescrita de termo for confluente e encerrado , existe um método direto para provar a igualdade entre duas expressões (também conhecidas como termos ) s e t : começando com s , aplique igualdades da esquerda para a direita o maior tempo possível, eventualmente obtendo um termo s ′ . Obtenha de t um termo t ′ de maneira semelhante. Se ambos os termos s ′ e t ′ concordam literalmente, então s e t são (não surpreendentemente) provados iguais. Mais importante, se eles discordarem, s e t não podem ser iguais. Ou seja, quaisquer dois termos s e t que possam ser provados iguais, podem ser por esse método.

O sucesso desse método não depende de uma determinada ordem sofisticada na qual aplicar regras de reescrita, pois a confluência garante que qualquer sequência de aplicações de regra acabará levando ao mesmo resultado (enquanto a propriedade de terminação garante que qualquer sequência acabará por chegar ao fim em absoluto). Portanto, se um sistema confluente e final de reescrita de termos pode ser fornecido para alguma teoria equacional, nem um toque de criatividade é necessário para realizar provas de igualdade de termos; essa tarefa, portanto, torna-se acessível a programas de computador. Abordagens modernas lidar com mais gerais sistemas de reescrita abstratas em vez de prazo sistemas de reescrita; os últimos são um caso especial do primeiro.

Caso geral e teoria

Fig.2: Neste diagrama, a se reduz a b ou c em zero ou mais etapas de reescrita (indicado pelo asterisco). Para que a relação de reescrita seja confluente, ambos os redutos devem, por sua vez, se reduzir a algum d .

Um sistema de reescrita pode ser expresso como um gráfico direcionado no qual os nós representam expressões e as arestas representam reescritas. Assim, por exemplo, se a expressão a pode ser reescrita em b , então dizemos que b é um redutor de a (alternativamente, a reduz para b , ou a é uma expansão de b ). Isso é representado usando notação de seta; ab indica que a se reduz a b . Intuitivamente, isso significa que o gráfico correspondente tem uma aresta direcionada de a para b .

Se houver um caminho entre dois nós do gráfico c e d , ele forma uma sequência de redução . Então, por exemplo, se cc ′c ′ ′ → ... → d ′d , então podemos escrever c d , indicando a existência de uma seqüência de redução de c para d . Formalmente,é o fechamento reflexivo-transitivo de →. Usando o exemplo do parágrafo anterior, temos (11 + 9) × (2 + 4) → 20 × (2 + 4) e 20 × (2 + 4) → 20 × 6, então (11 + 9) × ( 2 + 4) 20 × 6.

Com isso estabelecido, a confluência pode ser definida como segue. aS é considerado confluente se para todos os pares b , cS tal que a b e a c , existe a dS com b d e c d (denotado ). Se todo aS é confluente, dizemos que → é confluente. Essa propriedade também é às vezes chamada de propriedade diamante , após a forma do diagrama mostrado à direita. Alguns autores reservam o termo propriedade do diamante para uma variante do diagrama com reduções simples em todos os lugares; isto é, sempre que umb e umc , deve existir um d de tal modo que bd e cd . A variante de redução única é estritamente mais forte do que a de redução múltipla.

Confluência de solo

Um sistema é fundamentalmente confluente se todos os termos básicos forem confluentes, ou seja, todos os termos sem variáveis.

Confluência local

Pic.3: Sistema de reescrita cíclico, localmente confluente, mas não globalmente confluente
Pic.4: Sistema de reescrita não cíclico infinito, localmente confluente, mas não globalmente confluente

Um elemento de umS é dito ser localmente (ou fracamente) confluente se para todos b , cS com umb e umc existe dS com b d e c d . Se todo aS é localmente confluente, então → é chamado localmente (ou fracamente) confluente, ou tendo a propriedade Church-Rosser fraca . Isto é diferente de confluência em que b e c deve ser reduzido a partir de um em um passo. Em analogia com isso, a confluência às vezes é chamada de confluência global .

A relação , introduzido como uma notação para sequências de redução, pode ser visto como um sistema de reescrita em seu próprio direito, cuja relação é o fechamento reflexivo-transitivo de . Uma vez que uma sequência de sequências de redução é novamente uma sequência de redução (ou, de forma equivalente, uma vez que formar o fechamento reflexivo-transitivo é idempotente ), = . Conclui-se que → é confluente se e somente se é localmente confluente.

Um sistema de reescrita pode ser localmente confluente sem ser (globalmente) confluente. Os exemplos são mostrados nas figuras 3 e 4. No entanto, o lema de Newman afirma que se um sistema de reescrita localmente confluente não tem sequências de redução infinitas (em cujo caso é dito que está terminando ou normalizando fortemente ), então é globalmente confluente.

Propriedade Church-Rosser

Diz-se que um sistema de reescrita possui a propriedade Church-Rosser se e somente se implica para todos os objetos x , y . Alonzo Church e J. Barkley Rosser provaram em 1936 que o cálculo lambda tem essa propriedade; daí o nome da propriedade. (O fato de que o cálculo lambda tem essa propriedade também é conhecido como teorema de Church-Rosser .) Em um sistema de reescrita com a propriedade de Church-Rosser, a palavra problema pode ser reduzida à procura de um sucessor comum. Em um sistema Church-Rosser, um objeto tem no máximo uma forma normal; essa é a forma normal de um objeto é único se existir, mas pode muito bem não existir. No cálculo lambda, por exemplo, a expressão (λx.xx) (λx.xx) não tem uma forma normal porque existe uma sequência infinita de reduções beta (λx.xx) (λx.xx) → (λx.xx) ( λx.xx) → ...

Um sistema de reescrita possui a propriedade Church-Rosser se e somente se for confluente. Por causa dessa equivalência, uma pequena variação nas definições é encontrada na literatura. Por exemplo, em Terese a propriedade e a confluência de Church-Rosser são definidas como sinônimos e idênticos à definição de confluência apresentada aqui; Church-Rosser, conforme definido aqui, permanece sem nome, mas é fornecido como uma propriedade equivalente; este afastamento de outros textos é deliberado.

Semi-confluência

A definição de confluência local difere daquela de confluência global em que apenas os elementos alcançados a partir de um determinado elemento em uma única etapa de reescrita são considerados. Ao considerar um elemento alcançado em uma única etapa e outro elemento alcançado por uma sequência arbitrária, chegamos ao conceito intermediário de semi-confluência: aS é dito semi-confluente se para todo b , cS com ab e a c existe dS com b d e c d ; se todo aS é semi-confluente, dizemos que → é semi-confluente.

Um elemento semiconfluente não precisa ser confluente, mas um sistema de reescrita semiconfluente é necessariamente confluente e um sistema confluente é trivialmente semiconfluente.

Forte confluência

A forte confluência é outra variação da confluência local que nos permite concluir que um sistema de reescrita é globalmente confluente. Diz-se que um elemento aS é fortemente confluente se para todo b , cS com ab e ac existe dS com b d e cd ou c = d ; se todo aS é fortemente confluente, dizemos que → é fortemente confluente.

Um elemento confluente não precisa ser fortemente confluente, mas um sistema de reescrita fortemente confluente é necessariamente confluente.

Exemplos de sistemas confluentes

Veja também

Notas

Referências

links externos