2009/03/12 by Markus Triska, Triska, Markus, Ulrich Neumerkel +3
Computer Science · #FOS: Computer and information sciences #Logic, Reasoning, and Knowledge #Logic, programming, and type systems #Model-Driven Software Engineering Techniques #Programming Languages (cs.PL) #Software Engineering (cs.SE) #cs.PL #cs.SE
paper · pdf · doi:10.48550/arxiv.0903.2168
Paper presented at the 18th Workshop on Logic-based Methods in Programming Environments (WLPE2008) (Report-No: WLPE/2008). Paper submitted by a co-editor of the Workshop proceedings
arxiv created 2009/03/12 · openalex publication_date 2009/03/12 · arxiv updated 2009/12/01 · openalex created_date 2025/10/10 · openalex updated_date 2026/07/28
Termination properties of actual Prolog systems with constraints are fragile and difficult to analyse. The lack of the occurs-check, moded and overloaded arithmetical evaluation via is/2 and the occasional nontermination of finite domain constraints are all sources for invalidating termination results obtained by current termination analysers that rely on idealized assumptions. In this paper, we present solutions to address these problems on the level of the underlying Prolog system. Improved unification modes meet the requirements of norm based analysers by offering dynamic occurs-check detection. A generalized finite domain solver overcomes the shortcomings of conventional arithmetic without significant runtime overhead. The solver offers unbounded domains, yet propagation always terminates. Our work improves Prolog's termination and makes Prolog a more reliable target for termination and type analysis. It is part of SWI-Prolog since version 5.6.50.