While a fact is used to force something to
be true of the model, an assert is a claim that
something must already be true due to the rest of the
model. Assertions are verified (or falsified) using a check statement.
assert name-of-assertion {
// list of constraints
}
example:
assert acyclic {
no d: Dir | d in d.^contents
}
Each assertion must have a name, since we will need to refer to them by name in check statements.