Valar Morghulis
All men must die. Ser Gregor is a man.
// All men must die:
forall x. (Man(x) implies MustDie(x));
// Ser Gregor is a man:
Man('gregor);
Run Razor on the previous theory valar-morghulis.raz:
razor solve -i theories/examples/valar-morghulis.raz
Razor returns only one model:
Domain: e#0
Elements: 'gregor -> e#0
Facts: Man(e#0), MustDie(e#0)
The model contains only one element e#0 in its domain. This element denotes 'gregor, a constant in the theory that
represents Ser Gregor. The model also contains two facts: Man(e#0) is a fact that is derived from the second statement
of the theory (i.e., Man('gregor)). The fact MustDie(e#0) is deduced by Razor according to the first statement of
the theory.
Notice that the previous model is a "minimal" model for the given theory. The element
e#0is required to represent the constant'gregor; the factMan(e#0)must be present because the theory says so; and, the factMustDie(e#0)must be true because of the first statement. Removing any piece of information makes the given structure a non-model of the theory.