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#0
is 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.