![]() ![]() Terminyzer+ can detect not only sequences of subgoals that cause non-termination, but, importantly, the exact rules where they occur and the rule sequences that get fired in a cyclic manner, thus causing non-termination. However, this feedback was hard to use in practice: the same subgoal could occur in multiple rule heads and in even more places in rule bodies, so Terminyzer left too much tedious, sometimes combinatorially large amount of work for the user to do manually.Here we propose a new suite of algorithms, Terminyzer+, which closes this usability gap. These algorithms analyze forest logging traces and output sequences of tabled subgoal calls that are the likely causes of non-terminating cycles. In Liang and Kifer (2013), we studied the problem of non-termination in tabled logic engines with subgoal abstraction, such as XSB, and proposed a suite of algorithms for non-termination analysis, called Terminyzer. Non-termination analysis examines program execution history when the program is suspected to not terminate and informs the programmer about the exact reasons for this behavior. In our opinion, explaining non-termination is a much more important task because it can dramatically improve a user's ability to effectively debug large, complex logic programs without having to abide by punishing syntactic restrictions. We conclude in Section 4.Ī large body of work has been dedicated to termination analysis of logic programs but relatively little has been done to analyze non-termination. In Section 3, we report on extensive experimentation with the system and comparison with several other systems. In the next section we describe the approach, comment on the various compo- nents and illustrate them with fragments of a termination proof. We will only present the main intuitions in order to make the paper reasonably self-contained. Space restrictions do not allow us to give a formal account of this theory. The theoretical foundations of Polytool are formulated and proved in (9). More precisely, the system implements the constraint-based approach to termi- nation analysis, presented in (6), but extended to non-linear, polynomial level mappings and norms. Polytool is based on a termination condition that is rooted on acceptability (2). This is a direct extension of the well-founded orders based on (semi-)linear level mappings and norms that are used in most of the existing LP termination analysis systems. The aim of Polytool is to extend the power of existing termination analysers by using well-founded orders based on polynomial interpretations. In this system description, we present Polytool, a fully automated system for proving left-termination of denite logic programs (LPs). ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |