BNR Prolog
   HOME

TheInfoList



OR:

BNR Prolog, also known as CLP(BNR) is a declarative
constraint logic programming Constraint logic programming is a form of constraint programming, in which logic programming is extended to include concepts from constraint satisfaction. A constraint logic program is a logic program that contains constraints in the body of clau ...
language based on relational
interval arithmetic Interval arithmetic (also known as interval mathematics, interval analysis, or interval computation) is a mathematical technique used to put bounds on rounding errors and measurement errors in mathematical computation. Numerical methods using ...
developed at
Bell-Northern Research Bell-Northern Research (BNR) was a telecommunications research and development company established In 1971 when Bell Canada and Nortel, Northern Electric combined their R&D organizations. It was jointly owned by Bell Canada and Nortel, Northern ...
in the 1980s and 1990s. Embedding relational interval arithmetic in a logic programming language differs from other constraint logic programming (CLP) systems like
CLP(R) CLP(R) is a declarative programming language. It stands for constraint logic programming (Real) where real refers to the real numbers. It can be considered and is generally implemented as a superset or add-on package for a Prolog implementation. E ...
or Prolog-III in that it does not perform any symbolic processing. BNR Prolog was the first such implementation of interval arithmetic in a logic programming language. Since the constraint propagation is performed on real interval values, it is possible to express and partially solve non-linear equations.


Example rule

The simultaneous equations: : \tan x = y : x^2 + y^2 = 5 are expressed in CLP(BNR) as: ?- . and a typical implementation's response would be: X = _58::real(1.0966681287054703,1.0966681287054718),
Y = _106::real(1.9486710896099515,1.9486710896099542).
Yes


References

* J. G. Cleary, "Logical Arithmetic", Future Computing Systems, Vol 2, No 2, pp. 125–149, 1987. * W. Older and A. Vellino,
Extending Prolog with Constraint Arithmetic on Real Intervals
, in Proc. of the Canadian Conf. on Electrical and Computer Engineering, 1990. * Older, W., and Benhamou, F., Programming in CLP(BNR), in: 1st Workshop on Principles and Practice of Constraint Programming, 1993.


External links


GitHub site for a 2018 re-implementation in SWI-Prolog
Declarative programming languages Constraint programming Logic programming Constraint logic programming Prolog programming language family {{prog-lang-stub