Xref: utzoo comp.lang.misc:1112 comp.lang.prolog:614 Path: utzoo!mnetor!uunet!lll-winken!lll-lcc!ames!mailrus!tut.cis.ohio-state.edu!bloom-beacon!mit-eddie!uw-beaver!ubc-vision!ubc-cs!voda From: voda@ubc-cs.UUCP (Paul Voda) Newsgroups: comp.lang.misc,comp.lang.prolog Subject: Re: constraint satisfaction programming Message-ID: <1866@ubc-cs.UUCP> Date: 1 Mar 88 05:09:25 GMT References: <5070@pyr.gatech.EDU> Sender: nobody@ubc-cs.UUCP Reply-To: voda@ubc-cs.UUCP (Paul Voda) Organization: UBC Department of Computer Science, Vancouver, B.C., Canada Lines: 73 Keywords: Trilogy, constraint satisfaction, logic programming Summary: Constraint logic language Trilogy In article <5070@pyr.gatech.EDU> parvis@pyr.gatech.EDU (FULLNAME) writes: > >I'm looking for some interesting research in the topic of constraint logic >programming or constraint satisfaction programming. ... Trilogy is a logic programming language with constraints: In the domain of integers Trilogy solves arbitrary linear forms (Diophantine systems). For instance the query: x >= 0 & y >= 0 & 6*x + 8*y = 46 will solve without any backtracks to x = 5 y = 2 and x = 1 y = 5 Linear forms can can be combined into formulas involving ands, ors and existential quantifiers. Trilogy simplifies arbitrary such formulas. In other words, Trilogy implements the full decision procedure for the Presburger arithmetic. Trilogy contains arrays. In this domain it solves constraints of the form a(i) = v where an unknown (logical) array a is constrained in an unknown point i to the unknown value v. For instance the query a::[0..2]->[4..6] & a(0) < a(i) & a(i) < a(2) where a is a logical array of three elements with the values constrained to the interval [4..6] will solve without any backtracks to a = [4,5,6] & i = 1 See also the article 538 for the solution of the Triangle Puzzle in Trilogy. This contribution discusses a declarative technique which eliminates most of the uses of the "var" predicate of Prolog. The March issue of the Byte magazine contains a review of Trilogy. You can read there more about the language which integrates logic programming with procedural and data-base programming while remaining within the first order logic (that's why the name Trilogy: three languages within logic) Trilogy does not contain a single extralogical feature. You can also obtain from me two papers of mine on Trilogy: The Constraint Language Trilogy: Semantics and Computations and Types of Trilogy The papers discuss the logic foundations of computations and the types of Trilogy. The Byte review is admittedly, quite terse. Moreover, the reviewer criticized Trilogy for certain shortcomings when his programs were incorrectly programmed (for instance the Tower of Hanoi). But overall, the review is quite good considering the fact that the author never encountered another constraint language since Trilogy is the first commercially available logic language with constraints. Trilogy, which sells for $99.95 (US), was developed for the IBM-PCs and compatibles by Complete Logic Systems Inc. 741 Blueridge Ave. N. Vancouver, BC Canada V7R2J5 ph: (604) 986-3234