4 research outputs found

    Towards a Framework for Proving Termination of Maude Programs

    Full text link
    Maude es un lenguaje de programación declarativo basado en la lógica de reescritura que incorpora muchas características que lo hacen muy potente. Sin embargo, a la hora de probar ciertas propiedades computacionales esto conlleva dificultades. La tarea de probar la terminación de sistemas de reesctritura es de hecho bastante dura, pero aplicada a lenguajes de programación reales se concierte en más complicada debido a estas características inherentes. Esto provoca que métodos para probar la terminación de este tipo de programas requieran técnicas específicas y un análisis cuidadoso. Varios trabajos han intentado probar terminación de (un subconjunto de) programas Maude. Sin embargo, todos ellos siguen una aproximación transformacional, donde el programa original es trasformado hasta alcanzar un sistema de reescritura capaz de ser manejado con las técnicas y herramientas de terminación existentes. En la práctica, el hecho de transformar los sistemas originales suele complicar la demostración de la terminación ya que esto introduce nuevos símbolos y reglas en el sistema. En esta tesis, llevamos a cabo el problema de probar terminación de (un subconjunto de) programas Maude mediante métodos directos. Por un lado, nos centramos en la estrategia de Maude. Maude es un lenguaje impaciente donde los argumentos de una función son evaluados siempre antes de la aplicación de la función que los usa. Esta estrategia (conocida como llamada por valor) puede provocar la no terminación si los programas no están escritos cuidadosamente. Por esta razón, Maude (en concreto) incorpora mecanismos para controlar la ejecución de programas como las anotaciones sintácticas que están asociadas a los argumentos de los símbolos. En reescritura, esta estrategia sería conocida como reescritura sensible al contexto innermost (RSCI). Por otro lado, Maude también incorpora la posibilidad de declarar atributos.Alarcón Jiménez, B. (2011). Towards a Framework for Proving Termination of Maude Programs [Tesis doctoral no publicada]. Universitat Politècnica de València. https://doi.org/10.4995/Thesis/10251/11003Palanci

    Simplification orders in term rewriting

    Full text link
    Thema der Arbeit ist die Anwendung von Methoden der Beweistheorie auf Termersetzungssysteme, deren Termination mittels einer Simplifikationsordnung beweisbar ist. Es werden optimale Schranken für Herleitungslängen im allgemeinen Fall und im Fall der Termination mittels einer Knuth-Bendix-Ordnung (KBO) angegeben. Zudem werden die Ordnungstypen von KBOs vollständig klassifiziert und die unter KBO berechenbaren Funktionen vorgestellt. Einen weiteren Schwerpunkt bildet die Untersuchung der Löngen von Reduktionsketten, die bei einfach terminierenden Termersetzungssysteme auftreten und bestimmten Wachstumsbedingungen genügen

    Termination of term rewriting : well-foundedness, totality and transformations

    Get PDF
    Dit proefschrift gaat over eigenschappen van terminatie van herschrijfsystemen. We zullen eerst aan de hand van een voorbeeld dat gaat over optellen van de getallen de belangrijkste concepten proberen uit te leggen. Vervolgens vatten we de inhoud van het proefschrift kort samen. Een bekende eigenschap van optellen (\add") is dat optellen met het getal nul een neutrale bewerking is. We kunnen dit in een vergelijking als volgt formuleren: add(0; x) = x; add(x; 0) = x waarbij x een variabele is die een willekeurig natuurlijke getal voorstelt. Een andere optelwet gaat over de volgorde van berekeningen: add(x; add(y; 1)) kan ook worden verkregen door eerst add(x; y) te berekenen en dan bij dit resultaat 1 op te tellen. Stellen we de natuurlijke getallen voor door 0, s(0), s(s(0)), etc.(s betekent \successor") dan luidt deze wet in formulevorm: add(x; s(y)) = s(add(x; y)) Op analoge wijze vinden we ook de vergelijking: add(s(x); y) = s(add(x; y)) Nu zijn we in staat om 1 +2op formele wijze te berekenen. Daartoe schrijven we eerst 1 +2als add(s(0); s(s(0))) en proberen we vervolgens de laatste formule te vereenvoudigen door optelwetten toe te passen. Een mogelijke manier om dit te doen is als volgt: add(s(0); s(s(0))) = s(add(s(0); s(0))) = s(s(add(s(0); 0))) = s(s(s(0))) In dit voorbeeld zien we duidelijk dat de vergelijkingen voor add in een bepaalde richting werden gebruikt. Dit \gericht" gebruik van vergelijkingen heet herschrijven. In het algemeen herschrijven we termen uit een zg. termalgebra. Een termalgebra wordt verkregen uit een gegeven verzameling van variabelen, zeg X, en een verzameling van func- tiesymbolen, zeg F. Bij elk functiesymbool hoort een natuurlijke getal, de ariteit, die het aantal argumenten van het functiesymbool aangeeft. Variabelen hebben ariteit nul. Termen worden inductief opgebouwd door functiesymbolen toe te passen op andere termen. Uiteraard dient hierbij de ariteit te worden gerespecteerd. De verzameling van termen wordt 217?218 Samenvatting genoteerd door T (F; X). In het optelvoorbeeld geldt: \s" heeft ariteit 1, \add" heeft ariteit 2 en \0" heeft ariteit 0, en add(x; s(y)) is een term van de termalgebra T (fadd; s;0; g; fx; yg). Nu we weten wat de objecten zijn waarmee we herschrijven kunnen we afspreken hoe we gaan herschrijven. We gaan ervan uit dat we een aantal vergelijkingen hebben waarin we een linker- en een rechterdeel onderscheiden bestaande uit termen van een termalgebra. Een vergelijking l = r leidt tot de herschrijfregel l ! r, waarbij de pijl de richting van het gebruik van de vergelijking aangeeft. Zo'n verzameling regels heet een termherschrijfsysteem (afgekort tot TRS). Bijvoorbeeld: add(0; x) ! x (1) add(x; 0) ! x (2) add(x; s(y)) ! s(add(x; y)) (3) add(s(x); y) ! s(add(x; y)) (4) is een TRS. Een TRS induceert een herschrijfrelatie !R (of !) in de verzamelingen van termen. Een term s herschrijft tot een term t (notatie s !R t) indien we in s een deel g herkennen dat correspondeert met een linkerdeel van een regel in R en t wordt uit s verkregen door g te vervangen door het overeenkomstige rechterdeel van de gevonden regel. Veronderstel dat we de term add(s(0); s(0)) willen herschrijven. We kunnen bovenstaande regels (3) en (4) gebruiken. Natuurlijke leidt dit tot de vraag: \wanneer verschillende regels toegestaan zijn, is het uiteindelijke resultaat onafhankelijk van de gekozen regel?". Systemen waarvoor het antwoord \ja" is voldoen aan de Church-Rosser eigenschap; ze worden ook wel con uent genoemd. Niet elk TRS is echter con uent. Een andere belangrijk vraag is: \als we een willekeurige term herschrijven, kunnen we dan garanderen dat we na een eindig aantal herschrijvingen tot een term komen waarop geen regel toepasbaar is (normaal vorm)?". In het algemeen is hierop geen bevestigend antwoord te geven. Systemen die gegarandeerd leiden tot een normaalvorm heten terminerend. Terminatie is onbeslisbaar, d.w.z. er is geen procedure die uitsluitsel geeft over terminatie van een TRS. Desalniettemin bestaan er vele bruikbare methoden die behulpzaam zijn bij het geven van een bewijs van terminatie. Ruwweg kunnen we twee soorten methoden onderscheiden (beiden worden in dit proefschrift behandeld): syntactische methoden, semantische methoden. De syntactische methoden maken alleen gebruik van de syntactische structuur van termen om tot een terminatie uitspraak te komen. Voorbeeld van deze methoden zijn de zogenaamde pad ordeningen. In de semantische methoden worden termen compositioneel ge?nterpreteerd in een algebra om zo terminatie te bewijzen; dit betekent dat we een verzamelingen A, een parti?ele ordening >, en operaties fA voor elke functiesymbool f in F, moeten deni?eren. Elke term in A kan worden ge?nterpreteerd door een toekenning van waardes van A aan variabelen, De ordening > mits welgefundeerd kan worden gebruikt om terminatie van het systeem te bewijzen.?Samenvatting 219 Beiden soorten van methoden gebruiken in essentie het concept \welgefundeerde ordening". Een ordening is een binaire relatie > (lees groter dan) met de eigenschappen irre exibiliteit (s 6 > svoor elke s, d.w.z. geen element is groter dan zichzelf) en transitiviteit (als s >ten t >u dan ook s > u). Een welgefundeerde ordening is een ordening > waarin geen oneindige rijen van de vorm s0 > s1 > s2 >: : :, bestaan. Als voor een TRS R een welgefundeerde ordening > bestaat zodanig dat uit s !R t volgt s >t dan termineert R. Dus welgefundeerdheid van ordeningen is een zeer belangrijk en relevant onderwerp in de studie van terminatie. Zoals reeds eerder gezegd gaat dit proefschrift over terminatie van herschrijfsystemen. In hoofdstuk 1 beschrijven we in het kort de concepten TRS en terminatie van TRS. Hoofdstuk 2 bevat een uitvoerige samenvatting van denities, notaties and resultaten opdat het proefschrift op zichzelf staande is. In hoofdstuk 3 bestuderen we welgefundeerdheid van ordeningen gedenieerd op de verza- meling van termen. Welgefundeerdheid van ordeningen is in het algemeen moeilijk te bewijzen, het is daarom gewenst om eenvoudige criteria te hebben die de welgefundeerdheidseigenschap kunnen controleren. Zulke criteria worden in dit hoofdstuk gegeven, waardoor welgefundeerheid van bekende ordeningen zoals rpo geconcludeerd kan worden. Een belangrijk voordeel van deze criteria is dat ze gelden voor alle terminerende TRSen in tegenstelling tot bv. de stelling van Kruskal. Hoofdstuk 4 is verdeeld in twee delen. In het eerste deel bestuderen we het algemene pro- bleem van het deni?eren van recursieve pad ordeningen op termen. In het tweede deel kijken we naar een andere belangrijke eigenschap van ordeningen nl. totaliteit. Totale ordeningen hebben de eigenschap dat elk tweetal (verschillende) elementen uit de verzameling waarover de ordening is gedenieerd vergelijkbaar is. We tonen aan dat bekende ordeningen zoals rpo of kbo in essentie totaal zijn. Dit betekent dat TRSen waarvan we terminatie met deze ordeningen kunnen bewijzen ook ge?nterpreteerd kunnen worden in totale welgefundeerde monotone algebra's. Dit type terminatie noemen we totale terminatie. In hoofdstuk 5 gaan we verder in op totale terminatie. We kijken naar eigenschappen van algebra's die in bewijzen voor totale terminatie gebruikt kunnen worden. Het blijkt dat de inte- ressante algebra's precies gekarakteriseerd kunnen worden, nl. ze zijn algebra's die overeenkomen met multiverzamelingen over een verzameling. We gebruiken in dit hoofdstuk eigenschappen van de ordinalen en we zijn in staat om enige interessante resultaten over TRSen af te leiden. In het laatste hoofdstuk introduceren we enige transformaties gedenieerd op termen (en dus ook op TRSen) die de taak om terminatie te bewijzen vergemakkelijken. Een gegeven TRS kan worden getransformeerd tot een nieuwe TRS met in het algemeen meer regels maar met een eenvoudigere syntactische structuur. We bewijzen de opmerkelijke eigenschap dat terminatie van de oorspronkelijke TRS volgt uit terminatie van de getransformeerde TRS. Dit geeft een techniek die eenvoudig aan bestaande automatische terminatiebewijssystemen kan worden toegevoegd die daarmee terminatie van meer TRSen kunnen bewijzen. Deze techniek blijft van toepassing voor herschrijven modulo vergelijkingen. In de appendix geven we bewijzen van bekende resultaten. Deze bewijzen zijn of nieuw of bestaand maar dan moeilijk te vinden in de literatuur. Daardoor is dit proefschrift meer op zichzelf staand.?220 Samenvattin
    corecore