Reescrita de termos; Computar pares críticos

10

Tentei resolver o exercício a seguir, mas fiquei preso ao tentar encontrar todos os pares críticos .

Tenho as seguintes perguntas:

  1. Como sei qual par crítico produziu uma nova regra?
  2. Como sei que encontrei todos os pares críticos?

Seja onde é binário, é unário e é uma constante. i e E = { ( x y ) z x ( y Z ) x e x x i ( x ) e }Σ={,i,e}ie

E={(xy)zx(yz)xexxi(x)e}

Meu trabalho até agora:

  1. x x i ( x ) > lpo e ( x y ) z x ( y z ) s = ( ( x , y ) s 1 ,xe>lpox   (LPO 1)   é uma variável   (LPO 2b) não há termos à direita lado da mão     (LPO 2c)x

    xi(x)>lpoe

    (xy)zx(yz)

    s=((x,y)s1,zs2)t=(xt1,(y,z)t2)

    • verifique se ,     (LPO 1) para provar que (LPO 2c) provamos que j = ¯ 1 , m s > lpo t 1 s > lpo t 2 s > lpo ys>tjj=1,m¯

      s>lpot1

      s>lpot2
      s>lpoy(LPO 1);s>lpoz(LPO 1);(x,y)>y(LPO 1)
    • encontre modo ques i > lpo t i i = 1 ( x , y ) > lpo xisi>lpoti     i=1
      (x,y)>lpox(LPO 1)

    (xy)z>lpox(yz)

  2. uma. B. c. x 1e(xy)zx(yz)

    x yx1ex1

    θ { xxy=?x1e

    θ{xx1;ye}

    (x1e)zx1zx1(ez)ezzleft identity?

    (xy)zx(yz)

    ex1x1

    xy=?ex1

    θ{xe;yx1}
    (ex1)zx1ze(x1z)?

    (xy)zx(yz)

    x1i(x1)e

    xy=?x1i(x1)

    θ{xx1;yi(x1)}
    (x1i(x1))zezx1(i(x1)z)?

Como documento de suporte, tenho "Termo de Reescrita e Tudo Isso", de Franz Baader e Tobias Nipkow.

( imagem original aqui )

EDIT1

Depois de procurar os pares críticos, tenho o seguinte conjunto de regras (assumindo que 2.a esteja correto):

E={(xy)zx(yz)xexxi(x)ex(i(x)y)yx(yi(xy))eexxe(xy)xy}
Alexandru Cimpanu
fonte
@MartinSleziak Eu quis dizer que o documento que estou usando para resolver o problema é Term Rewriting e All That" por Franz Baader e Tobias Nipkow E que o estilo noções e notação é de lá..
Alexandru Cimpanu
11
Não tenho certeza se isso irá ajudá-lo de alguma forma, mas a pesquisa de "pares críticos" "reescrita de termos" "axiomas de grupo" leva a alguns slides que abordam os pontos críticos do seu sistema. (Ou pelo menos sistema muito semelhante). Veja aqui ou aqui .
Martin
@ MartinSleziak, eu dei uma olhada nos slides, eles podem ser úteis nesse momento, eu era o rei da luta com o livro. Atualmente, estou tentando algumas idéias. Obrigado pela ajuda.
Alexandru Cimpanu 10/09/2015

Respostas:

5

Antes de abordar as questões reais, um comentário sobre seu trabalho até agora: o cancelamento à esquerda em 2.a. não está correto em geral, o par crítico seria apenas . Conseqüentemente, você não recebe o par crítico 2.b. O problema com esse cancelamento é que a equação que você obtém geralmente não segue os axiomas de onde você começou; por exemplo, se você estiver trabalhando no idioma dos anéis, poderá em algum momento derivar o par crítico , mas seria incorreto deduzir (o que significa que você só tem um modelo trivial). Nenhum procedimento de reescrita de som, incluindo o de Huet, deve permitir essa redução.x(ez)xz0x0yxy

Por outro lado, você está perdendo os pares críticos que obtém ao unificar (versões com renomeação de variáveis) ou com todos (ou seja, usando o segundo ). Os pares críticos resultantes sãoxexi(x)(xy)z

  • x(ye)(xy)exy , que após a redução se torna a equação trivial , exyxy
  • x(yi(xy))(xy)i(xy)e , que não pode ser reduzido ainda mais e fornece a regra (assumindo que na precedência usava para definir o LPO, assim como você fez ao orientar ).x(yi(xy))eexi(x)e

Para o procedimento básico de conclusão:

  1. Sempre que você cria um par crítico, reduz os dois lados o máximo possível usando o conjunto de regras atual. Se os formulários normais resultantes não forem iguais, você cria uma nova regra. Por exemplo, seu 2.c. fornece uma nova regra . Por outro lado, unificar com fornece o par crítico , que pode ser reduzido ao trivial e descartado.x(i(x)z)ez(xy)zx1y1(xy)(zz1)((xy)z)z1(x(yz))z1x(y(zz1))x(y(zz1))
  2. Sempre que você cria uma nova regra , deve considerar todos os pares críticos entre ela e as regras existentes , verificando a uniformidade de com cada subtermo não variável de e vice-versa. Lembre-se também de verificar sobreposições automáticas, ou seja, unibilidade de com seus próprios subtermos, como fizemos acima para associatividade. Você para somente quando todos os pares críticos das regras existentes foram examinados e produziram novas regras ou foram descartados.lrl1r1,,lnrnllil

Este procedimento pode ser melhorado bastante. Em particular, você pode usar novas regras para simplificar as antigas (e possivelmente descartá-las se elas se tornarem triviais, o que significa que estão incluídas na nova regra), e uma boa heurística para escolher o próximo par crítico a examinar pode reduzir drasticamente quantidade de regras.

Klaus Draeger
fonte
Podemos fazer simplificações como 2.a ao falar sobre o procedimento de conclusão de Huet?
Alexandru Cimpanu 17/09/2015
Como você unifica x∘e ou x∘i (x) com todos (x∘y) ∘z (ou seja, usando o segundo ∘) ?
Alexandru Cimpanu 17/09/2015
Com relação a essa simplificação, em 2.a, ela foi feita na classe, por isso deve ter alguma lógica por trás dela.
Alexandru Cimpanu
Você talvez estivesse tratando sistemas de equações condicionais e seus axiomas incluíam cancelabilidade à esquerda ( )? Esse é o passo que você executa em 2.a, e se justificado por um axioma, então você pode. Mesmo isso seria um atalho - estritamente falando, você primeiro derivaria a equação não reduzida, depois obteria a reduzida através da equação condicional e depois se livraria da não reduzida (porque é subsumida). xy=xzy=z
Klaus Draeger
Eu não sei. Eu pensei que tinha a ver com o procedimento de conclusão avançado (com o qual não estou familiarizado). Vamos supor que 2.a esteja correto, editei minha pergunta para publicar as novas regras que obtive.
Alexandru Cimpanu 17/09/2015