# is all

**All existence declarations** match all the remaining instances of a certain type. This means the whole declaration will only match exactly one time or zero times, in that way this matches "any" instance that fulfils the condition including none. They allow you to make highly variable documents or rules.

Note that an `all` existence declaration does not prevent a document or rule from matching if there are no matching instances.

### Syntax

`VARIABLE_1, ... VARIABLE_N, ... OTHER is all ONTOLOGY, ROLE_1, ... ROLE_N`

The first `N` matching Instances will be stored in the variables `VARIABLE_1` to `VARIABLE_N`. If there are more than `N` Instances, these will be stored as a list in `OTHER`.

### Examples: separate variables

```python
p1, p2, p3, ...ps is all Person
```

If there are five `Person` Instances in the Case, the first three will be available as `p1`, `p2`, `p3`, the other two will go into a list available as `ps`.

### Examples: variables stored in a list

```python
ps is all Person
```

If there are `N` `Person` Instances in the Case, `ps` will hold that list of `N` `Person` Instances.
