Programming in CLP(BNR).
William J. Older, Frédéric Benhamou · 1993
CLP(BNR) is a constraint system based on relational interval arithmetic and forms part of BNR Prolog /v.4. This is a much more powerful system than previous versions and allows a much wider class of problems to be handled, including discrete domain problems and boolean equations. It is also integrated more closely into Prolog, thus providing for smoother and more flexible interaction between Prolog and the constraint system. This paper describes the programming interface and gives some simple programming examples. 1 Introduction The problems of providing a logical form of arithmetic for use in Prolog are well-known. The difficulties of doing correct computations with floating point are also well-known. One mechanism for overcoming both of these problems --- applying a Prolog-like narrowing mechanism to intervals --- was first suggested by Cleary [Cleary 1987]. These ideas were first fully implemented at Bell-Northern Research (BNR) in BNR Prolog in 1987 [BNR Prolog 1988] and have bee...