In this chapter we will add different constraint domains to our language, and we will see how they greatly expand its usefulness. Several examples, which could not have been realised before, will be developed here.

- Domains
- Linear (Dis)Equations
- Linear Problems with
*Prolog IV* - Fibonacci Numbers
- Non-Linear Solver: Intervals
- Some Useful Primitives
- A Project Management Problem
- Other Constraints and Operations
- Herbrand Terms
- Herbrand Terms: Syntactic Equality
- Structured Data and Data Abstraction
- Structuring Old Problems
- Constructing Recursive Data Structures
- Recursive Programming: Lists
- Trees
- Data Structures in General
- Putting Everything Together
- Summarizing

1998-12-03