We address the problem of proving the total correctness of transformations of definite logic programs. We consider a general transformation rule, called clause replacement, which consists in transforming a program P into a new program Q by replacing a set Γ1 of clauses occurring in P by a new set Γ2 of clauses, provided that Γ1 and Γ2 are equivalent in the least Herbrand model M(P) of the program P. We propose a general method for proving that transformations based on clause replacement are totally correct, that is, M(P) = M(Q). Our method consists in showing that the transformation of P into Q can be performed by: (i) adding extra arguments to predicates, thereby deriving from the given program P an annotated program P, (ii) applying a variant of the clause replacement rule and transforming the annotated program P into a terminating annotated program Q, and (iii) erasing the annotations from Q, thereby getting Q. Our method does not require that either P or Q are terminating and it is parametric with respect to the annotations. By providing different annotations we can easily prove the total correctness of program transformations based on various versions of the popular unfolding, folding, and goal replacement rules, which can all be viewed as particular cases of our clause replacement rule.

Pettorossi, A., Proietti, M. (2008). Totally correct logic program transformations via well-founded annotations. HIGHER-ORDER AND SYMBOLIC COMPUTATION, 21(1-2), 193-235 [10.1007/s10990-008-9024-6].

Totally correct logic program transformations via well-founded annotations

PETTOROSSI, ALBERTO;
2008-01-01

Abstract

We address the problem of proving the total correctness of transformations of definite logic programs. We consider a general transformation rule, called clause replacement, which consists in transforming a program P into a new program Q by replacing a set Γ1 of clauses occurring in P by a new set Γ2 of clauses, provided that Γ1 and Γ2 are equivalent in the least Herbrand model M(P) of the program P. We propose a general method for proving that transformations based on clause replacement are totally correct, that is, M(P) = M(Q). Our method consists in showing that the transformation of P into Q can be performed by: (i) adding extra arguments to predicates, thereby deriving from the given program P an annotated program P, (ii) applying a variant of the clause replacement rule and transforming the annotated program P into a terminating annotated program Q, and (iii) erasing the annotations from Q, thereby getting Q. Our method does not require that either P or Q are terminating and it is parametric with respect to the annotations. By providing different annotations we can easily prove the total correctness of program transformations based on various versions of the popular unfolding, folding, and goal replacement rules, which can all be viewed as particular cases of our clause replacement rule.
2008
Pubblicato
Rilevanza internazionale
Articolo
Sì, ma tipo non specificato
Settore ING-INF/05 - SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI
English
Con Impact Factor ISI
Program transformation, Transformation rules, Logic Programming, Well-founded Annotations
Pettorossi, A., Proietti, M. (2008). Totally correct logic program transformations via well-founded annotations. HIGHER-ORDER AND SYMBOLIC COMPUTATION, 21(1-2), 193-235 [10.1007/s10990-008-9024-6].
Pettorossi, A; Proietti, M
Articolo su rivista
File in questo prodotto:
File Dimensione Formato  
PetPro_HOSC-08_Springer.pdf

accesso aperto

Dimensione 777.7 kB
Formato Adobe PDF
777.7 kB Adobe PDF Visualizza/Apri
ErratumHOSC-08_Springer.pdf

accesso aperto

Descrizione: erratum
Dimensione 182.14 kB
Formato Adobe PDF
182.14 kB Adobe PDF Visualizza/Apri

I documenti in IRIS sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/2108/41687
Citazioni
  • ???jsp.display-item.citation.pmc??? ND
  • Scopus ND
  • ???jsp.display-item.citation.isi??? ND
social impact