Trilogy
Paul Voda, UBC, 1988
A logic programming language with numerical constraint-solving over the natural numbers. Syntactically a blend of Prolog, LISP and Pascal. Contains three types of clauses: predicates (backtracking but no assignable variables), procedures (if-then-else but no backtracking; assignable variables), and subroutines (like procedures, but with input and system calls; callable only from top level or from other subroutines).
"The Constraint Language Trilogy: Semantics and Computations", P. Voda, Complete Logic Systems, 741 Blueridge Ave, North Vancouver BC, V7R 2J5.
Papers by Voda, and BYTE review.[?]