A strongly typed Logic programming language with numerical constraint-solving over the natural numbers, developed by Paul Voda <voda@mff.uniba.cs> of UBC in 1988. Trilogy is syntactically a blend of Prolog, Lisp and Pascal. It 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 <voda@wimsey.cs.ubc.ca>, Complete Logic Systems, 741 Blueridge Ave, North Vancouver BC, V7R 2J5].
[Papers by Voda].
[BYTE review].