667 research outputs found

    Acceptability with general orderings

    Full text link
    We present a new approach to termination analysis of logic programs. The essence of the approach is that we make use of general orderings (instead of level mappings), like it is done in transformational approaches to logic program termination analysis, but we apply these orderings directly to the logic program and not to the term-rewrite system obtained through some transformation. We define some variants of acceptability, based on general orderings, and show how they are equivalent to LD-termination. We develop a demand driven, constraint-based approach to verify these acceptability-variants. The advantage of the approach over standard acceptability is that in some cases, where complex level mappings are needed, fairly simple orderings may be easily generated. The advantage over transformational approaches is that it avoids the transformation step all together. {\bf Keywords:} termination analysis, acceptability, orderings.Comment: To appear in "Computational Logic: From Logic Programming into the Future

    REST: Integrating Term Rewriting with Program Verification (Extended Version)

    Get PDF
    We introduce REST, a novel term rewriting technique for theorem proving that uses online termination checking and can be integrated with existing program verifiers. REST enables flexible but terminating term rewriting for theorem proving by: (1) exploiting newly-introduced term orderings that are more permissive than standard rewrite simplification orderings; (2) dynamically and iteratively selecting orderings based on the path of rewrites taken so far; and (3) integrating external oracles that allow steps that cannot be justified with rewrite rules. Our REST approach is designed around an easily implementable core algorithm, parameterizable by choices of term orderings and their implementations; in this way our approach can be easily integrated into existing tools. We implemented REST as a Haskell library and incorporated it into Liquid Haskell's evaluation strategy, extending Liquid Haskell with rewriting rules. We evaluated our REST implementation by comparing it against both existing rewriting techniques and E-matching and by showing that it can be used to supplant manual lemma application in many existing Liquid Haskell proofs

    New results on rewrite-based satisfiability procedures

    Full text link
    Program analysis and verification require decision procedures to reason on theories of data structures. Many problems can be reduced to the satisfiability of sets of ground literals in theory T. If a sound and complete inference system for first-order logic is guaranteed to terminate on T-satisfiability problems, any theorem-proving strategy with that system and a fair search plan is a T-satisfiability procedure. We prove termination of a rewrite-based first-order engine on the theories of records, integer offsets, integer offsets modulo and lists. We give a modularity theorem stating sufficient conditions for termination on a combinations of theories, given termination on each. The above theories, as well as others, satisfy these conditions. We introduce several sets of benchmarks on these theories and their combinations, including both parametric synthetic benchmarks to test scalability, and real-world problems to test performances on huge sets of literals. We compare the rewrite-based theorem prover E with the validity checkers CVC and CVC Lite. Contrary to the folklore that a general-purpose prover cannot compete with reasoners with built-in theories, the experiments are overall favorable to the theorem prover, showing that not only the rewriting approach is elegant and conceptually simple, but has important practical implications.Comment: To appear in the ACM Transactions on Computational Logic, 49 page

    CoLoR: a Coq library on well-founded rewrite relations and its application to the automated verification of termination certificates

    Get PDF
    Termination is an important property of programs; notably required for programs formulated in proof assistants. It is a very active subject of research in the Turing-complete formalism of term rewriting systems, where many methods and tools have been developed over the years to address this problem. Ensuring reliability of those tools is therefore an important issue. In this paper we present a library formalizing important results of the theory of well-founded (rewrite) relations in the proof assistant Coq. We also present its application to the automated verification of termination certificates, as produced by termination tools

    Solving polynomial constraints for proving termination of rewriting

    Full text link
    A termination problem can be transformed into a set of polynomial constraints. Up to now, several approaches have been studied to deal with these constraints as constraint solving problems. In this thesis, we study in depth some of these approaches, present some advances in each approach.Navarro Marset, RA. (2008). Solving polynomial constraints for proving termination of rewriting. http://hdl.handle.net/10251/13626Archivo delegad

    MU-TERM: Verify Termination Properties Automatically (System Description)

    Full text link
    [EN] We report on the new version of mu-term, a tool for proving termination properties of variants of rewrite systems, including conditional, context-sensitive, equational, and order-sorted rewrite systems. We follow a unified logic-based approach to describe rewriting computations. The automatic generation of logical models for suitable first-order theories and formulas provide a common basis to implement the proofs.Supported by EU (FEDER), and projects RTI2018-094403-B-C32,PROMETEO/ 2019/098, and SP20180225. Also by INCIBE program "Ayudas para la excelencia de los equipos de investigación avanzada en ciberseguridad" (Raul Gutiérrez).Gutiérrez Gil, R.; Lucas Alba, S. (2020). MU-TERM: Verify Termination Properties Automatically (System Description). Springer Nature. 436-447. https://doi.org/10.1007/978-3-030-51054-1_28S436447Alarcón, B., et al.: Improving context-sensitive dependency pairs. In: Cervesato, I., Veith, H., Voronkov, A. (eds.) LPAR 2008. LNCS (LNAI), vol. 5330, pp. 636–651. Springer, Heidelberg (2008). https://doi.org/10.1007/978-3-540-89439-1_44Alarcón, B., Gutiérrez, R., Lucas, S.: Context-sensitive dependency pairs. Inf. Comput. 208(8), 922–968 (2010). https://doi.org/10.1016/j.ic.2010.03.003Alarcón, B., Gutiérrez, R., Lucas, S., Navarro-Marset, R.: Proving termination properties with mu-term. In: Johnson, M., Pavlovic, D. (eds.) AMAST 2010. LNCS, vol. 6486, pp. 201–208. Springer, Heidelberg (2011). https://doi.org/10.1007/978-3-642-17796-5_12Alarcón, B., Lucas, S., Meseguer, J.: A dependency pair framework for A∨C{A} \vee {C}-termination. In: Ölveczky, P.C. (ed.) WRLA 2010. LNCS, vol. 6381, pp. 35–51. Springer, Heidelberg (2010). https://doi.org/10.1007/978-3-642-16310-4_4Arts, T., Giesl, J.: Termination of term rewriting using dependency pairs. Theor. Comput. Sci. 236(1–2), 133–178 (2000). https://doi.org/10.1016/S0304-3975(99)00207-8Clavel, M., et al.: All About Maude - A High-Performance Logical Framework. LNCS, vol. 4350. Springer, Heidelberg (2007). https://doi.org/10.1007/978-3-540-71999-1Endrullis, J., Waldmann, J., Zantema, H.: Matrix interpretations for proving termination of term rewriting. J. Autom. Reasoning 40(2–3), 195–220 (2008). https://doi.org/10.1007/s10817-007-9087-9Giesl, J., Arts, T.: Verification of erlang processes by dependency pairs. Appl. Algebra Eng. Commun. Comput. 12(1/2), 39–72 (2001). https://doi.org/10.1007/s002000100063Giesl, J., Thiemann, R., Schneider-Kamp, P.: Proving and disproving termination of higher-order functions. In: Gramlich, B. (ed.) FroCoS 2005. LNCS (LNAI), vol. 3717, pp. 216–231. Springer, Heidelberg (2005). https://doi.org/10.1007/11559306_12Giesl, J., Thiemann, R., Schneider-Kamp, P., Falke, S.: Mechanizing and improving dependency pairs. J. Autom. Reasoning 37(3), 155–203 (2006). https://doi.org/10.1007/s10817-006-9057-7Goguen, J.A., Meseguer, J.: Order-sorted algebra I: equational deduction for multiple inheritance, overloading, exceptions and partial operations. Theor. Comput. Sci. 105(2), 217–273 (1992). https://doi.org/10.1016/0304-3975(92)90302-VGutiérrez, R., Lucas, S.: Function calls at frozen positions in termination of context-sensitive rewriting. In: Martí-Oliet, N., Ölveczky, P.C., Talcott, C. (eds.) Logic, Rewriting, and Concurrency. LNCS, vol. 9200, pp. 311–330. Springer, Cham (2015). https://doi.org/10.1007/978-3-319-23165-5_15Gutiérrez, R., Lucas, S.: Proving termination in the context-sensitive dependency pair framework. In: Ölveczky, P.C. (ed.) WRLA 2010. LNCS, vol. 6381, pp. 18–34. Springer, Heidelberg (2010). https://doi.org/10.1007/978-3-642-16310-4_3Gutiérrez, R., Lucas, S.: Automatic generation of logical models with AGES. In: Fontaine, P. (ed.) CADE 2019. LNCS (LNAI), vol. 11716, pp. 287–299. Springer, Cham (2019). https://doi.org/10.1007/978-3-030-29436-6_17Gutiérrez, R., Lucas, S.: Automatically proving and disproving feasibility conditions. In: Peltier, N., Sofronie-Stokkermans, V. (eds.) IJCAR 2020. LNAI, vol. 12167, pp. 416–435. Springer, Heidelberg (2020)Lucas, S.: Context-sensitive computations in functional and functional logic programs. J. Funct. Log. Program. 1998(1), 1–61 (1998). http://danae.uni-muenster.de/lehre/kuchen/JFLP/articles/1998/A98-01/A98-01.htmlLucas, S.: Context-sensitive rewriting strategies. Inf. Comput. 178(1), 294–343 (2002). https://doi.org/10.1006/inco.2002.3176Lucas, S.: Proving semantic properties as first-order satisfiability. Artif. Intell. 277 (2019). https://doi.org/10.1016/j.artint.2019.103174Lucas, S., Gutiérrez, R.: Automatic synthesis of logical models for order-sorted first-order theories. J. Autom. Reasoning 60(4), 465–501 (2017). https://doi.org/10.1007/s10817-017-9419-3Lucas, S., Gutiérrez, R.: Use of logical models for proving infeasibility in term rewriting. Inf. Process. Lett. 136, 90–95 (2018). https://doi.org/10.1016/j.ipl.2018.04.002Lucas, S., Marché, C., Meseguer, J.: Operational termination of conditional term rewriting systems. Inf. Process. Lett. 95(4), 446–453 (2005). https://doi.org/10.1016/j.ipl.2005.05.002Lucas, S., Meseguer, J.: Order-sorted dependency pairs. In: Antoy, S., Albert, E. (eds.) Proceedings of the 10th International ACM SIGPLAN Conference on Principles and Practice of Declarative Programming, 15–17 July 2008, Valencia, Spain, pp. 108–119. ACM (2008). https://doi.org/10.1145/1389449.1389463Lucas, S., Meseguer, J.: Dependency pairs for proving termination properties of conditional term rewriting systems. J. Log. Algebraic Methods Program. 86(1), 236–268 (2017). https://doi.org/10.1016/j.jlamp.2016.03.003Lucas, S., Meseguer, J., Gutiérrez, R.: The 2D dependency pair framework for conditional rewrite systems. Part I: Definition and basic processors. J. Comput. Syst. Sci. 96, 74–106 (2018). https://doi.org/10.1016/j.jcss.2018.04.002Lucas, S., Meseguer, J., Gutiérrez, R.: The 2D dependency pair framework for conditional rewrite systems—part II: advanced processors and implementation techniques. J. Autom. Reasoning (2020). https://doi.org/10.1007/s10817-020-09542-3McCune, W.: Prover9 & Mace4. Technical report (2005–2010). http://www.cs.unm.edu/~mccune/prover9/Ohlebusch, E.: Advanced Topics in Term Rewriting. Springer (2002). https://doi.org/10.1007/978-1-4757-3661-8 . http://www.springer.com/computer/swe/book/978-0-387-95250-5Ölveczky, P.C., Lysne, O.: Order-sorted termination: the unsorted way. In: Hanus, M., Rodríguez-Artalejo, M. (eds.) ALP 1996. LNCS, vol. 1139, pp. 92–106. Springer, Heidelberg (1996). https://doi.org/10.1007/3-540-61735-3_6Zantema, H.: Termination of term rewriting: interpretation and type elimination. J. Symb. Comput. 17(1), 23–50 (1994). https://doi.org/10.1006/jsco.1994.1003Zantema, H.: Termination of context-sensitive rewriting. In: Comon, H. (ed.) RTA 1997. LNCS, vol. 1232, pp. 172–186. Springer, Heidelberg (1997). https://doi.org/10.1007/3-540-62950-5_6

    Ranking Functions for Size-Change Termination II

    Full text link
    Size-Change Termination is an increasingly-popular technique for verifying program termination. These termination proofs are deduced from an abstract representation of the program in the form of "size-change graphs". We present algorithms that, for certain classes of size-change graphs, deduce a global ranking function: an expression that ranks program states, and decreases on every transition. A ranking function serves as a witness for a termination proof, and is therefore interesting for program certification. The particular form of the ranking expressions that represent SCT termination proofs sheds light on the scope of the proof method. The complexity of the expressions is also interesting, both practicaly and theoretically. While deducing ranking functions from size-change graphs has already been shown possible, the constructions in this paper are simpler and more transparent than previously known. They improve the upper bound on the size of the ranking expression from triply exponential down to singly exponential (for certain classes of instances). We claim that this result is, in some sense, optimal. To this end, we introduce a framework for lower bounds on the complexity of ranking expressions and prove exponential lower bounds.Comment: 29 pages

    Constrained completion: Theory, implementation, and results

    Get PDF
    The Knuth-Bendix completion procedure produces complete sets of reductions but can not handle certain rewrite rules such as commutativity. In order to handle such theories, completion procedure were created to find complete sets of reductions modulo an equational theory. The major problem with this method is that it requires a specialized unification algorithm for the equational theory. Although this method works well when such an algorithm exists, these algorithms are not always available and thus alternative methods are needed to attack problems. A way of doing this is to use a completion procedure which finds complete sets of constrained reductions. This type of completion procedure neither requires specialized unification algorithms nor will it fail due to unorientable identities. We present a look at complete sets of reductions with constraints, developed by Gerald Peterson, and the implementation of such a completion procedure for use with HIPER - a fast completion system. The completion procedure code is given and shown correct along with the various support procedures which are needed by the constrained system. These support procedures include a procedure to find constraints using the lexicographic path ordering and a normal form procedure for constraints. The procedure has been implemented for use under the fast HIPER system, developed by Jim Christian, and thus is quick. We apply this new system, HIPER- extension, to attack a variety of word problems. Implementation alternatives are discussed, developed, and compared with each other as well as with the HIPER system. Finally, we look at the problem of finding a complete set of reductions for a ternary boolean algebra. Given are alternatives to attacking this problem and the already known solution along with its run in the HIPER-extension system --Abstract, page iii
    • …
    corecore