A
rule
is
a
formula
of
the
following
form:
A
⇒
B.
A
is
called
the
antecedent
of
the
rule.
B
is
called
the
consequent
of
the
rule.
A
and
B
can
be
predicate
conjunctions.
A
can
be
omitted.
In
this
case,
the
rule
is
said
to
be
atomic.
A rule can be:
For example, the rule SimplifyIntMaxXY.3:
btest(p<=q) => max{{p}\/{q}} == q
|
can be applied to goal
0 ≤ max({3}∪{5}) - min(1..4)
transforming it into
0 ≤ 5 - min(1..4)
Rules, contrary to hypotheses and goals, contain wildcards. A wildcard is a variable, which can take any value (literal, expression, ...) If it is assigned a value, it is said to be instantiated. A wildcard is represented by a letter of the alphabet: thus no more than 52 wildcards can appear inside a rule (lower case and upper case letters).