Abstrakt. Det finns två typer av metoder för att avsluta analys av logiska program: "transformationella" och "direkta". Direkta tillvägagångssätt bevisar uppsägning direkt på grundval av det logiska programmet. Transformationella tillvägagångssätt omvandla ett logiskt program till en term skriva om system (TRS) och sedan analysera avslutandet av den resulterande TRS istället. Således gör transformationella metoder alla metoder som tidigare utvecklats för TRS tillgängliga för logiska program också. Tillämpbarheten av de flesta befintliga omvandlingar är dock ganska begränsad, eftersom de endast kan användas för vissa underklasser av logiska program. (De flesta av dem är begränsade till välutvecklade program.) I denna artikel förbättrar vi dessa omvandlingar så att de blir tillämpliga för alla bestämda logiska program. För att simulera beteendet hos logikprogram av TRS, ändrar vi något begreppet omskrivning genom att tillåta oändliga termer. Vi visar att vår transformation resulterar i TRS som verkligen lämpar sig för automatiserad termineringsanalys. I motsats till de flesta andra metoder för avslutande av logiska program, vår teknik är också ljud för logik programmering utan att inträffa kontroll, som vanligtvis används i praktiken. Vi implementerade vår strategi i termineringsprovaren AProVE och utvärderade den framgångsrikt på en stor samling exempel.
Det närmaste tillvägagångssättet är Schneider-Kamp et al REF, som presenterade en automatiserad avslutande analys för logiska program.
Automated Termination Analysis for Logic Programs by Term Rewriting ⋆
{'venue': 'ICLP', 'journal': None, 'mag_field_of_study': ['Computer Science']}