284 research outputs found

    Anti-unification and Generalization: A Survey

    Full text link
    Anti-unification (AU), also known as generalization, is a fundamental operation used for inductive inference and is the dual operation to unification, an operation at the foundation of theorem proving. Interest in AU from the AI and related communities is growing, but without a systematic study of the concept, nor surveys of existing work, investigations7 often resort to developing application-specific methods that may be covered by existing approaches. We provide the first survey of AU research and its applications, together with a general framework for categorizing existing and future developments.Comment: Accepted at IJCAI 2023 - Survey Trac

    Closed nominal rewriting and efficiently computable nominal algebra equality

    Full text link
    We analyse the relationship between nominal algebra and nominal rewriting, giving a new and concise presentation of equational deduction in nominal theories. With some new results, we characterise a subclass of equational theories for which nominal rewriting provides a complete procedure to check nominal algebra equality. This subclass includes specifications of the lambda-calculus and first-order logic.Comment: In Proceedings LFMTP 2010, arXiv:1009.218

    Higher-Order Equational Pattern Anti-Unification

    Get PDF
    We consider anti-unification for simply typed lambda terms in associative, commutative, and associative-commutative theories and develop a sound and complete algorithm which takes two lambda terms and computes their generalizations in the form of higher-order patterns. The problem is finitary: the minimal complete set of generalizations contains finitely many elements. We define the notion of optimal solution and investigate special fragments of the problem for which the optimal solution can be computed in linear or polynomial time

    ACUOS: A System for Order-Sorted Modular ACU Generalization

    Full text link
    [ES] La generalización, también denominada anti-unificación, es la operación dual de la unificación. Dados dos términos t y t' , un generalizador es un término t'' del cual t y t' son instancias de sustitución. El concepto dual del unificador más general (mgu) es el de generalizador menos general (lgg). En esta tesina extendemos el conocido algoritmo de generalización sin tipos a, primero, una configuración order-sorted con sorts, subsorts y polimorfismo de subtipado; en segundo lugar, la extendemos para soportar generalización módulo teorías ecuacionales, donde los símbolos de función pueden obedecer cualquier combinación de axiomas de asociatividad, conmutatividad e identidad (incluyendo el conjunto vacío de dichos axiomas); y, en tercer lugar, a la combinación de ambos, que resulta en un algoritmo modular de generalización order-sorted ecuacional. A diferencia de las configuraciones sin tipos, en nuestro marco teórico en general el lgg no es único, lo que se debe tanto al tipado como a los axiomas ecuacionales. En su lugar, existe un conjunto finito y mínimo de lggs, tales que cualquier otra generalización tiene a alguno de ellos como instancia. Nuestros algoritmos de generalización se expresan mediante reglas de inferencia para las cuales damos demostraciones de corrección. Ello abre la puerta a nuevas aplicaciones en campos como la evaluación parcial, la síntesis de programas, la minería de datos y la demostración de teoremas para sistemas de razonamiento ecuacional y lenguajes tipados basados en reglas tales como ASD+SDF, Elan, OBJ, CafeOBJ y Maude. Esta tesis también describe una herramienta para el cómputo automatizado de los generalizadores de un conjunto dado de estructuras en un lenguaje tipado módulo un conjunto de axiomas dado. Al soportar la combinación modular de atributos ecuacionales de asociatividad, conmutatividad y existencia de elemento neutro (ACU) para símbolos de función arbitrarios, la generalización ACU modular aporta suficiente poder expresivo a la generalización ordinaria para razonar sobre estructuras de datos tipadas tales como listas, conjuntos y multiconjuntos. La técnica ha sido implementada con generalidad y eficiencia en el sistema ACUOS y puede ser fácilmente integrada con software de terceros.[EN] Generalization, also called anti-uni cation, is the dual of uni cation. Given terms t and t 0 , a generalization is a term t 00 of which t and t 0 are substitution instances. The dual of a most general uni er (mgu) is that of least general generalization (lgg). In this thesis, we extend the known untyped generalization algorithm to, rst, an order-sorted typed setting with sorts, subsorts, and subtype polymorphism; second, we extend it to work modulo equational theories, where function symbols can obey any combination of associativity, commutativity, and identity axioms (includ- ing the empty set of such axioms); and third, to the combination of both, which results in a modular, order-sorted equational generalization algo- rithm. Unlike the untyped case, there is in general no single lgg in our framework, due to order-sortedness or to the equational axioms. Instead, there is a nite, minimal set of lggs, so that any other generalization has at least one of them as an instance. Our generalization algorithms are expressed by means of inference systems for which we give proofs of cor- rectness. This opens up new applications to partial evaluation, program synthesis, data mining, and theorem proving for typed equational rea- soning systems and typed rule-based languages such as ASF+SDF, Elan, OBJ, Cafe-OBJ, and Maude. This thesis also describes a tool for automatically computing the gen- eralizers of a given set of structures in a typed language modulo a set of axioms. By supporting the modular combination of associative, com- mutative and unity (ACU) equational attributes for arbitrary function symbols, modular ACU generalization adds enough expressive power to ordinary generalization to reason about typed data structures such as lists, sets and multisets. The ACU generalization technique has been generally and e ciently implemented in the ACUOS system and can be easily integrated with third-party software.Espert Real, J. (2012). ACUOS: A System for Order-Sorted Modular ACU Generalization. http://hdl.handle.net/10251/1921

    Nominal AC-Matching

    Get PDF

    Programming and symbolic computation in Maude

    Full text link
    [EN] Rewriting logic is both a flexible semantic framework within which widely different concurrent systems can be naturally specified and a logical framework in which widely different logics can be specified. Maude programs are exactly rewrite theories. Maude has also a formal environment of verification tools. Symbolic computation is a powerful technique for reasoning about the correctness of concurrent systems and for increasing the power of formal tools. We present several new symbolic features of Maude that enhance formal reasoning about Maude programs and the effectiveness of formal tools. They include: (i) very general unification modulo user-definable equational theories, and (ii) symbolic reachability analysis of concurrent systems using narrowing. The paper does not focus just on symbolic features: it also describes several other new Maude features, including: (iii) Maude's strategy language for controlling rewriting, and (iv) external objects that allow flexible interaction of Maude object-based concurrent systems with the external world. In particular, meta-interpreters are external objects encapsulating Maude interpreters that can interact with many other objects. To make the paper self-contained and give a reasonably complete language overview, we also review the basic Maude features for equational rewriting and rewriting with rules, Maude programming of concurrent object systems, and reflection. Furthermore, we include many examples illustrating all the Maude notions and features described in the paper.Duran has been partially supported by MINECO/FEDER project TIN2014-52034-R. Escobar has been partially supported by the EU (FEDER) and the MCIU under grant RTI2018-094403-B-C32, by the Spanish Generalitat Valenciana under grant PROMETE0/2019/098, and by the US Air Force Office of Scientific Research under award number FA9550-17-1-0286. MartiOliet and Rubio have been partially supported by MCIU Spanish project TRACES (TIN2015-67522-C3-3-R). Rubio has also been partially supported by a MCIU grant FPU17/02319. Meseguer and Talcott have been partially supported by NRL Grant N00173 -17-1-G002. Talcott has also been partially supported by ONR Grant N00014-15-1-2202.Durán, F.; Eker, S.; Escobar Román, S.; NARCISO MARTÍ OLIET; José Meseguer; Rubén Rubio; Talcott, C. (2020). Programming and symbolic computation in Maude. Journal of Logical and Algebraic Methods in Programming. 110:1-58. https://doi.org/10.1016/j.jlamp.2019.100497S158110Alpuente, M., Escobar, S., Espert, J., & Meseguer, J. (2014). A modular order-sorted equational generalization algorithm. Information and Computation, 235, 98-136. doi:10.1016/j.ic.2014.01.006K. Bae, J. Meseguer, Predicate abstraction of rewrite theories, in: [36], 2014, pp. 61–76.Bae, K., & Meseguer, J. (2015). Model checking linear temporal logic of rewriting formulas under localized fairness. Science of Computer Programming, 99, 193-234. doi:10.1016/j.scico.2014.02.006Bae, K., Meseguer, J., & Ölveczky, P. C. (2014). Formal patterns for multirate distributed real-time systems. Science of Computer Programming, 91, 3-44. doi:10.1016/j.scico.2013.09.010P. Borovanský, C. Kirchner, H. Kirchner, P.E. Moreau, C. Ringeissen, An overview of ELAN, in: [77], 1998, pp. 55–70.Bouhoula, A., Jouannaud, J.-P., & Meseguer, J. (2000). Specification and proof in membership equational logic. Theoretical Computer Science, 236(1-2), 35-132. doi:10.1016/s0304-3975(99)00206-6Bravenboer, M., Kalleberg, K. T., Vermaas, R., & Visser, E. (2008). Stratego/XT 0.17. A language and toolset for program transformation. Science of Computer Programming, 72(1-2), 52-70. doi:10.1016/j.scico.2007.11.003Bruni, R., & Meseguer, J. (2006). Semantic foundations for generalized rewrite theories. Theoretical Computer Science, 360(1-3), 386-414. doi:10.1016/j.tcs.2006.04.012M. Clavel, F. Durán, S. Eker, S. Escobar, P. Lincoln, N. Martí-Oliet, C.L. Talcott, Two decades of Maude, in: [86], 2015, pp. 232–254.Clavel, M., Durán, F., Eker, S., Lincoln, P., Martı́-Oliet, N., Meseguer, J., & Quesada, J. F. (2002). Maude: specification and programming in rewriting logic. Theoretical Computer Science, 285(2), 187-243. doi:10.1016/s0304-3975(01)00359-0Clavel, M., & Meseguer, J. (2002). Reflection in conditional rewriting logic. Theoretical Computer Science, 285(2), 245-288. doi:10.1016/s0304-3975(01)00360-7F. Durán, S. Eker, S. Escobar, N. Martí-Oliet, J. Meseguer, C.L. Talcott, Associative unification and symbolic reasoning modulo associativity in Maude, in: [121], 2018, pp. 98–114.Durán, F., Lucas, S., Marché, C., Meseguer, J., & Urbain, X. (2008). Proving operational termination of membership equational programs. Higher-Order and Symbolic Computation, 21(1-2), 59-88. doi:10.1007/s10990-008-9028-2F. Durán, J. Meseguer, An extensible module algebra for Maude, in: [77], 1998, pp. 174–195.Durán, F., & Meseguer, J. (2003). Structured theories and institutions. Theoretical Computer Science, 309(1-3), 357-380. doi:10.1016/s0304-3975(03)00312-8Durán, F., & Meseguer, J. (2007). Maude’s module algebra. Science of Computer Programming, 66(2), 125-153. doi:10.1016/j.scico.2006.07.002Durán, F., & Meseguer, J. (2012). On the Church-Rosser and coherence properties of conditional order-sorted rewrite theories. The Journal of Logic and Algebraic Programming, 81(7-8), 816-850. doi:10.1016/j.jlap.2011.12.004F. Durán, P.C. Ölveczky, A guide to extending Full Maude illustrated with the implementation of Real-Time Maude, in: [116], 2009, pp. 83–102.S. Escobar, Multi-paradigm programming in Maude, in: [121], 2018, pp. 26–44.Escobar, S., Meadows, C., Meseguer, J., & Santiago, S. (2014). State space reduction in the Maude-NRL Protocol Analyzer. Information and Computation, 238, 157-186. doi:10.1016/j.ic.2014.07.007Escobar, S., Sasse, R., & Meseguer, J. (2012). Folding variant narrowing and optimal variant termination. The Journal of Logic and Algebraic Programming, 81(7-8), 898-928. doi:10.1016/j.jlap.2012.01.002H. Garavel, M. Tabikh, I. Arrada, Benchmarking implementations of term rewriting and pattern matching in algebraic, functional, and object-oriented languages – the 4th rewrite engines competition, in: [121], 2018, pp. 1–25.Goguen, J. A., & Burstall, R. M. (1992). Institutions: abstract model theory for specification and programming. Journal of the ACM, 39(1), 95-146. doi:10.1145/147508.147524Goguen, J. A., & Meseguer, J. (1984). Equality, types, modules, and (why not?) generics for logic programming. The Journal of Logic Programming, 1(2), 179-210. doi:10.1016/0743-1066(84)90004-9Goguen, J. A., & Meseguer, J. (1992). Order-sorted algebra I: equational deduction for multiple inheritance, overloading, exceptions and partial operations. Theoretical Computer Science, 105(2), 217-273. doi:10.1016/0304-3975(92)90302-vR. Gutiérrez, J. Meseguer, Variant-based decidable satisfiability in initial algebras with predicates, in: [61], 2018, pp. 306–322.Gutiérrez, R., Meseguer, J., & Rocha, C. (2015). Order-sorted equality enrichments modulo axioms. Science of Computer Programming, 99, 235-261. doi:10.1016/j.scico.2014.07.003Horn, A. (1951). On sentences which are true of direct unions of algebras. Journal of Symbolic Logic, 16(1), 14-21. doi:10.2307/2268661Katelman, M., Keller, S., & Meseguer, J. (2012). Rewriting semantics of production rule sets. The Journal of Logic and Algebraic Programming, 81(7-8), 929-956. doi:10.1016/j.jlap.2012.06.002Kowalski, R. (1979). Algorithm = logic + control. Communications of the ACM, 22(7), 424-436. doi:10.1145/359131.359136Lucanu, D., Rusu, V., & Arusoaie, A. (2017). A generic framework for symbolic execution: A coinductive approach. Journal of Symbolic Computation, 80, 125-163. doi:10.1016/j.jsc.2016.07.012D. Lucanu, V. Rusu, A. Arusoaie, D. Nowak, Verifying reachability-logic properties on rewriting-logic specifications, in: [86], 2015, pp. 451–474.Lucas, S., & Meseguer, J. (2016). Normal forms and normal theories in conditional rewriting. Journal of Logical and Algebraic Methods in Programming, 85(1), 67-97. doi:10.1016/j.jlamp.2015.06.001N. Martí-Oliet, J. Meseguer, A. Verdejo, A rewriting semantics for Maude strategies, in: [116], 2009, pp. 227–247.Martí-Oliet, N., Palomino, M., & Verdejo, A. (2007). Strategies and simulations in a semantic framework. Journal of Algorithms, 62(3-4), 95-116. doi:10.1016/j.jalgor.2007.04.002Meseguer, J. (1992). Conditional rewriting logic as a unified model of concurrency. Theoretical Computer Science, 96(1), 73-155. doi:10.1016/0304-3975(92)90182-fMeseguer, J. (2012). Twenty years of rewriting logic. The Journal of Logic and Algebraic Programming, 81(7-8), 721-781. doi:10.1016/j.jlap.2012.06.003Meseguer, J. (2017). Strict coherence of conditional rewriting modulo axioms. Theoretical Computer Science, 672, 1-35. doi:10.1016/j.tcs.2016.12.026J. Meseguer, Generalized rewrite theories and coherence completion, in: [121], 2018, pp. 164–183.Meseguer, J. (2018). Variant-based satisfiability in initial algebras. Science of Computer Programming, 154, 3-41. doi:10.1016/j.scico.2017.09.001Meseguer, J., Goguen, J. A., & Smolka, G. (1989). Order-sorted unification. Journal of Symbolic Computation, 8(4), 383-413. doi:10.1016/s0747-7171(89)80036-7Meseguer, J., & Ölveczky, P. C. (2012). Formalization and correctness of the PALS architectural pattern for distributed real-time systems. Theoretical Computer Science, 451, 1-37. doi:10.1016/j.tcs.2012.05.040Meseguer, J., Palomino, M., & Martí-Oliet, N. (2008). Equational abstractions. Theoretical Computer Science, 403(2-3), 239-264. doi:10.1016/j.tcs.2008.04.040Meseguer, J., & Roşu, G. (2007). The rewriting logic semantics project. Theoretical Computer Science, 373(3), 213-237. doi:10.1016/j.tcs.2006.12.018Meseguer, J., & Roşu, G. (2013). The rewriting logic semantics project: A progress report. Information and Computation, 231, 38-69. doi:10.1016/j.ic.2013.08.004Meseguer, J., & Skeirik, S. (2017). Equational formulas and pattern operations in initial order-sorted algebras. Formal Aspects of Computing, 29(3), 423-452. doi:10.1007/s00165-017-0415-5Meseguer, J., & Thati, P. (2007). Symbolic reachability analysis using narrowing and its application to verification of cryptographic protocols. Higher-Order and Symbolic Computation, 20(1-2), 123-160. doi:10.1007/s10990-007-9000-6C. Olarte, E. Pimentel, C. Rocha, Proving structural properties of sequent systems in rewriting logic, in: [121], 2018, pp. 115–135.Ölveczky, P. C., & Meseguer, J. (2007). Semantics and pragmatics of Real-Time Maude. Higher-Order and Symbolic Computation, 20(1-2), 161-196. doi:10.1007/s10990-007-9001-5Ölveczky, P. C., & Thorvaldsen, S. (2009). Formal modeling, performance estimation, and model checking of wireless sensor network algorithms in Real-Time Maude. Theoretical Computer Science, 410(2-3), 254-280. doi:10.1016/j.tcs.2008.09.022Rocha, C., Meseguer, J., & Muñoz, C. (2017). Rewriting modulo SMT and open system analysis. Journal of Logical and Algebraic Methods in Programming, 86(1), 269-297. doi:10.1016/j.jlamp.2016.10.001Şerbănuţă, T. F., Roşu, G., & Meseguer, J. (2009). A rewriting logic approach to operational semantics. Information and Computation, 207(2), 305-340. doi:10.1016/j.ic.2008.03.026Skeirik, S., & Meseguer, J. (2018). Metalevel algorithms for variant satisfiability. Journal of Logical and Algebraic Methods in Programming, 96, 81-110. doi:10.1016/j.jlamp.2017.12.006S. Skeirik, A. Ştefănescu, J. Meseguer, A constructor-based reachability logic for rewrite theories, in: [61], 2018, pp. 201–217.Strachey, C. (2000). Higher-Order and Symbolic Computation, 13(1/2), 11-49. doi:10.1023/a:1010000313106A. Ştefănescu, S. Ciobâcă, R. Mereuta, B.M. Moore, T. Serbanuta, G. Roşu, All-path reachability logic, in: [36], 2014, pp. 425–440.Tushkanova, E., Giorgetti, A., Ringeissen, C., & Kouchnarenko, O. (2015). A rule-based system for automatic decidability and combinability. Science of Computer Programming, 99, 3-23. doi:10.1016/j.scico.2014.02.00

    Proceedings of Sixth International Workshop on Unification

    Full text link
    Swiss National Science Foundation; Austrian Federal Ministry of Science and Research; Deutsche Forschungsgemeinschaft (SFB 314); Christ Church, Oxford; Oxford University Computing Laborator

    Anti-Pattern Matching Modulo

    Get PDF
    International audienceNegation is intrinsic to human thinking and most of the time when searching for something, we base our patterns on both positive and negative conditions. In a previous work, we have extended the notion of term to the one of anti-term that may contain complement symbols. Matching such anti-terms against terms has the nice property of being unitary. Here we generalize the syntactic anti-pattern matching to anti-pattern matching modulo an arbitrary equational theory E, and we study the specific and practically very useful case of associativity, possibly with a unity (AU). To this end, based on the syntacticness of associativity, we present a rule-based associative matching algorithm, and we extend it to AU. This algorithm is then used to solve AU anti-pattern matching problems. This allows us to be generic enough so that for instance, the AllDiff standard predicate of constraint programming becomes simply expressible in this framework. AU anti-patterns are implemented in the Tom language and we show some examples of their usage

    A Modular Order-sorted Equational Generalization Algorithm

    Full text link
    Generalization, also called anti-unification, is the dual of unification. Given terms t and t , a generalizer is a term t of which t and t are substitution instances. The dual of a most general unifier (mgu) is that of least general generalizer (lgg). In this work, we extend the known untyped generalization algorithm to, first, an order-sorted typed setting with sorts, subsorts, and subtype polymorphism; second, we extend it to work modulo equational theories, where function symbols can obey any combination of associativity, commutativity, and identity axioms (including the empty set of such axioms); and third, to the combination of both, which results in a modular, order-sorted equational generalization algorithm. Unlike the untyped case, there is in general no single lgg in our framework, due to order-sortedness or to the equational axioms. Instead, there is a finite, minimal and complete set of lggs, so that any other generalizer has at least one of them as an instance. Our generalization algorithms are expressed by means of inference systems for which we give proofs of correctness. This opens up new applications to partial evaluation, program synthesis, and theorem proving for typed equational reasoning systems and typed rulebased languages such as ASF+SDF, Elan, OBJ, Cafe-OBJ, and Maude. © 2014 Elsevier Inc. All rights reserved. 1.M. Alpuente, S. Escobar, and J. Espert have been partially supported by the EU (FEDER) and the Spanish MEC/MICINN under grant TIN 2010-21062-C02-02, and by Generalitat Valenciana PROMETEO2011/052. J. Meseguer has been supported by NSF Grants CNS 09-04749, and CCF 09-05584.Alpuente Frasnedo, M.; Escobar Román, S.; Espert Real, J.; Meseguer, J. (2014). A Modular Order-sorted Equational Generalization Algorithm. Information and Computation. 235:98-136. https://doi.org/10.1016/j.ic.2014.01.006S9813623

    Rewriting Logic Techniques for Program Analysis and Optimization

    Full text link
    Esta tesis propone una metodología de análisis dinámico que mejora el diagnóstico de programas erróneos escritos en el lenguaje Maude. La idea clave es combinar técnicas de verificación de aserciones en tiempo de ejecución con la fragmentación dinámica de trazas de ejecución para detectar automáticamente errores en tiempo de ejecución, al tiempo que se reduce el tamaño y la complejidad de las trazas a analizar. En el caso de violarse una aserción, se infiere automáticamente el criterio de fragmentación, lo que facilita al usuario identificar rápidamente la fuente del error. En primer lugar, la tesis formaliza una técnica destinada a detectar automáticamente eventuales desviaciones del comportamiento deseado del programa (síntomas de error). Esta técnica soporta dos tipos de aserciones definidas por el usuario: aserciones funcionales (que restringen llamadas a funciones deterministas) y aserciones de sistema (que especifican los invariantes de estado del sistema). La técnica de verificación dinámica propuesta es demostrablemente correcta en el sentido de que todos los errores señalados definitivamente delatan la violación de las aserciones. Tras eventuales violaciones de aserciones, se generan automáticamente trazas fragmentadas (es decir, trazas simplificadas pero igualmente precisas) que ayudan a identificar la causa del error. Además, la técnica también sugiere una posible reparación para las reglas implicadas en la generación de los estados erróneos. La metodología propuesta se basa en (i) una notación lógica para especificar las aserciones que se imponen a la ejecución; (ii) una técnica de verificación aplicable en tiempo de ejecución que comprueba dinámicamente las aserciones; y (iii) un mecanismo basado en la generalización (ecuacional) menos general que automáticamente obtiene criterios precisos para fragmentar trazas de ejecución a partir de aserciones falsificadas. Por último, se presenta una implementación de la técnica propuesta en la herramienta de análisis dinámico basado en aserciones ABETS, que muestra cómo es posible combinar el trazado de las propiedades asertadas del programa para obtener un algoritmo preciso de análisis de trazas que resulta útil para el diagnóstico y la depuración de programas.This thesis proposes a dynamic analysis methodology for improving the diagnosis of erroneous Maude programs. The key idea is to combine runtime assertion checking and dynamic trace slicing for automatically catching errors at runtime while reducing the size and complexity of the erroneous traces to be analyzed (i.e., those leading to states that fail to satisfy the assertions). In the event of an assertion violation, the slicing criterion is automatically inferred, which facilitates the user to rapidly pinpoint the source of the error. First, a technique is formalized that aims at automatically detecting anomalous deviations of the intended program behavior (error symptoms) by using assertions that are checked at runtime. This technique supports two types of user-defined assertions: functional assertions (which constrain deterministic function calls) and system assertions (which specify system state invariants). The proposed dynamic checking is provably sound in the sense that all errors flagged definitely signal a violation of the specifications. Then, upon eventual assertion violations, accurate trace slices (i.e., simplified yet precise execution traces) are generated automatically, which help identify the cause of the error. Moreover, the technique also suggests a possible repair for the rules involved in the generation of the erroneous states. The proposed methodology is based on (i) a logical notation for specifying assertions that are imposed on execution runs; (ii) a runtime checking technique that dynamically tests the assertions; and (iii) a mechanism based on (equational) least general generalization that automatically derives accurate criteria for slicing from falsified assertions. Finally, an implementation of the proposed technique is presented in the assertion-based, dynamic analyzer ABETS, which shows how the forward and backward tracking of asserted program properties leads to a thorough trace analysis algorithm that can be used for program diagnosis and debugging.Esta tesi proposa una metodologia d'anàlisi dinàmica que millora el diagnòstic de programes erronis escrits en el llenguatge Maude. La idea clau és combinar tècniques de verificació d'assercions en temps d'execució amb la fragmentació dinàmica de traces d'execució per a detectar automàticament errors en temps d'execució, alhora que es reduïx la grandària i la complexitat de les traces a analitzar. En el cas de violar-se una asserció, s'inferix automàticament el criteri de fragmentació, la qual cosa facilita a l'usuari identificar ràpidament la font de l'error. En primer lloc, la tesi formalitza una tècnica destinada a detectar automàticament eventuals desviacions del comportament desitjat del programa (símptomes d'error). Esta tècnica suporta dos tipus d'assercions definides per l'usuari: assercions funcionals (que restringixen crides a funcions deterministes) i assercions de sistema (que especifiquen els invariants d'estat del sistema). La tècnica de verificació dinàmica proposta és demostrablement correcta en el sentit que tots els errors assenyalats definitivament delaten la violació de les assercions. Davant eventuals violacions d'assercions, es generen automàticament traces fragmentades (és a dir, traces simplificades però igualment precises) que ajuden a identificar la causa de l'error. A més, la tècnica també suggerix una possible reparació de les regles implicades en la generació dels estats erronis. La metodologia proposada es basa en (i) una notació lògica per a especificar les assercions que s'imposen a l'execució; (ii) una tècnica de verificació aplicable en temps d'execució que comprova dinàmicament les assercions; i (iii) un mecanisme basat en la generalització (ecuacional) menys general que automàticament obté criteris precisos per a fragmentar traces d'execució a partir d'assercions falsificades. Finalment, es presenta una implementació de la tècnica proposta en la ferramenta d'anàlisi dinàmica basat en assercions ABETS, que mostra com és possible combinar el traçat cap avant i cap arrere de les propietats assertades del programa per a obtindre un algoritme precís d'anàlisi de traces que resulta útil per al diagnòstic i la depuració de programes.Sapiña Sanchis, J. (2017). Rewriting Logic Techniques for Program Analysis and Optimization [Tesis doctoral no publicada]. Universitat Politècnica de València. https://doi.org/10.4995/Thesis/10251/94044TESI
    corecore