Here’s yet another example of the power available to you in PROLOG. Let’s consider this simultaneous equation:

```
3x + 4y = 17
4x + 3y = 18
```

In PROLOG I can find the values of X and Y just like this:

```
compute(X,Y):-
fd_domain([X,Y],0,1000),
3*X + 4*Y #= 17,
4*X + 3*Y #= 18.
```

That almost seems like I am joking — but I am really not. That 3 lines of code will find all solutions to X and Y. So I tried the following:

```
?- compute(A,B).
A = 3
B = 2
yes
```

I should note, the values of X and Y are between 0…1000 (integers). All Contraint Logic Problems (CLPs) require a finite domain. That’s why they are sometimes referred to as: Finite Domain (FD) Problems. Since CLP is not standardized each compiler supports FDs differently. I am in this case using GNU Prolog.

More to come!