## 11.1 Experimental Probabilistic Features

The features in this section are only for specialized applications and may be changed in future applications. Do not use these unless you know what you are doing.

Sometimes we may observe arbitrary choices that we don't want to model the probability of. For example, that the rooms in an apartment are r17, r53 and r5. We may have a probability that there are three, but the names may be arbitrary. Once these have been observed, then queries about what are the rooms should return these.

As another example, we may want to count rooms. Which is the first room and which is the second room is arbitrary, but we have to record which ones we have already counted so we don't count them again. We don't want to search over the choices of which is first and which is second.

```ailog: arbitrary f=V.
```

means that the values V assigned to f are arbitrary, but f can only have one such value. Note that f=V can be used as any other atom. The command `arbitraries` list all of the arbitrary declarations.