Réécriture des termes; Calculer les paires critiques


10

J'ai essayé de résoudre l'exercice suivant mais je suis resté coincé en essayant de trouver toutes les paires critiques .

J'ai les questions suivantes:

  1. Comment savoir quelle paire critique a produit une nouvelle règle?
  2. Comment savoir si j'ai trouvé toutes les paires critiques?

Soit où est binaire, est unaire et est une constante. Σ={,i,e}ie

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

Mon travail jusqu'à présent:

  1. x x i ( x ) > lpo e ( x y ) z x ( y z ) s = ( ( x , y ) s 1 ,xe>lpox   (LPO 1)   est une variable   (LPO 2b) il n'y a pas de termes à droite côté     (LPO 2c)x

    xi(x)>lpoe

    (xy)zx(yz)

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

    • vérifier que ,     (LPO 1) pour prouver que (LPO 2c) nous prouvons 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)
    • trouver tel ques i > lpo t i i = 1 ( x , y ) > lpo xisi>lpoti     i=1
      (x,y)>lpox(LPO 1)

    (xy)z>lpox(yz)

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

    x yx1ex1

    θ { xxy=?x1e

    θ{xx1;ye} ( x y ) z

    (x1e)zx1zx1(ez)ezzleft identity?

    e x 1(xy)zx(yz)

    x yex1x1

    θ { xxy=?ex1

    ( e x 1 ) zθ{xe;yx1} (xy)z
    (ex1)zx1ze(x1z)?

    x 1i ( x 1 )(xy)zx(yz)

    x yx1i(x1)e

    θ { xxy=?x1i(x1)

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

Comme document de support, j'ai "Term Rewriting and All That" de Franz Baader et Tobias Nipkow.

( image originale ici )

EDIT1

Après avoir recherché les paires critiques, j'ai l'ensemble de règles suivant (en supposant que 2.a est correct):

E={(xy)zx(yz)xexxi(x)ex(i(x)y)yx(yi(xy))eexxe(xy)xy}

@MartinSleziak Je voulais dire que le document que j'utilise pour résoudre le problème est Term Rewriting and All That "par Franz Baader et Tobias Nipkow. Et que les notions et le style de notation
viennent

1
Je ne sais pas si cela vous aidera en aucune façon, mais la recherche de "paires critiques" "de réécriture de termes" "d'axiomes de groupe" conduit à quelques diapositives qui parlent des points critiques de votre système. (Ou du moins système très similaire). Voir ici ou ici .
Martin

@MartinSleziak, j'ai jeté un coup d'œil sur les diapositives, elles pourraient être utiles à ce stade, j'étais roi de lutter avec le livre. J'essaie actuellement quelques idées. Merci de votre aide.
Alexandru Cimpanu du

Réponses:


5

Avant d'aborder les vraies questions, une remarque sur votre travail jusqu'à présent: l'annulation de gauche en 2.a. n'est pas correct en général, la paire critique serait simplement . Par conséquent, vous n'obtenez pas la paire critique 2.b. Le problème avec cette annulation est que l'équation que vous obtenez ne suit généralement pas les axiomes à partir desquels vous êtes parti; par exemple, si vous travaillez dans le langage des anneaux, vous pourriez à un moment donné dériver la paire critique , mais il serait incorrect de déduire (ce qui signifierait que vous n'avez que un modèle trivial). Aucune procédure de réécriture sonore, y compris celle de Huet, ne devrait permettre cette réduction.x(ez)xz0x0yxy

D'un autre côté, il vous manque les paires critiques que vous obtenez en unifiant (versions renommées variables de) ou avec tous (c'est-à-dire en utilisant le second ). Les paires critiques résultantes sontxexi(x)(xy)z

  • x(ye)(xy)exy , qui après réduction devient l'équation triviale , etxyxy
  • x(yi(xy))(xy)i(xy)e , qui ne peut pas être réduit davantage et donne la règle (en supposant que dans la priorité utilisé pour définir le LPO, tout comme vous l'avez fait lors de l'orientation de ).x(yi(xy))eexi(x)e

Pour la procédure d'achèvement de base:

  1. Chaque fois que vous créez une paire critique, vous réduisez autant que possible les deux côtés en utilisant l'ensemble de règles actuel. Si les formes normales résultantes ne sont pas égales, vous créez une nouvelle règle. Par exemple, votre 2.c. donne une nouvelle règle . D'un autre côté, unifier avec donne la paire critique , qui peut être réduit au trivial et jeté.x(i(x)z)ez(xy)zx1y1 x ( y ( z z 1 ) ) x ( y ( z z 1 ) )(xy)(zz1)((xy)z)z1(x(yz))z1x(y(zz1))x(y(zz1))
  2. Chaque fois que vous créez une nouvelle règle , vous devez considérer toutes les paires critiques entre celle-ci et les règles existantes , en vérifiant l'unifiabilité de avec chaque sous-terme non variable de et vice versa. N'oubliez pas de vérifier les auto-chevauchements, c'est-à-dire l'unifiabilité de avec ses propres sous-termes, comme nous l'avons fait ci-dessus pour l'associativité. Vous ne vous arrêtez que lorsque toutes les paires critiques des règles existantes ont été examinées et ont produit de nouvelles règles ou ont été rejetées.l 1r 1 , , l nr n l l i llrl1r1,,lnrnllil

Cette procédure peut être améliorée un peu. En particulier, vous pouvez utiliser de nouvelles règles pour simplifier les anciennes (et éventuellement les supprimer si elles deviennent triviales, ce qui signifie qu'elles sont englobées par la nouvelle règle), et une bonne heuristique pour choisir la prochaine paire critique à examiner peut réduire considérablement la quantité de règles.


Pouvons-nous faire des simplifications comme 2.a en parlant de la procédure d'achèvement de Huet?
Alexandru Cimpanu

Comment unifiez -vous x∘e ou x∘i (x) avec tous les (x∘y) ∘z (c'est-à-dire en utilisant le deuxième ∘) ?
Alexandru Cimpanu

Concernant cette simplification, en 2.a, elle a été faite en classe, donc elle doit avoir une logique derrière.
Alexandru Cimpanu

Étiez-vous peut-être en train de traiter des systèmes d'équations conditionnelles et vos axiomes incluaient l'annulation gauche ( )? C'est l'étape que vous effectuez en 2.a, et si cela est justifié par un axiome, alors vous pouvez. Même cela serait un raccourci, cependant - à proprement parler, vous dériveriez d'abord l'équation non réduite, puis obtiendriez celle réduite via l'équation conditionnelle, puis vous vous débarrasseriez de l'équation non réduite (car elle est subsumée). xy=xzy=z
Klaus Draeger

Je ne sais pas. Je pensais que cela avait à voir avec la procédure d'achèvement avancée (avec laquelle je ne suis pas familier). Supposons que 2.a soit correct, j'ai modifié ma question pour publier les nouvelles règles que j'ai obtenues.
Alexandru Cimpanu
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.