Download Interactive Prover

Transcript
120
Interactive Prover - User Manual
7.3
User rules application
Here are some hints for the application of a user rule:
• do not forget to normalize the rules:
– The rules of Pmm files are normalized by the prover when they are loaded,
– the rules of PatchProver files have to be normalized by the user.
– a < b is normalized by the prover in a + 1 ≤ b. Thus the guard btest(a < b)
will be rewrited btest(a + 1 ≤ b) and will never succeed.
• in the case of complex expressions, do not hesitate to overparenthesise your rule
terms.
• check that you use only jokers (one letter identifiers).
The rule:
binhyp(xx = 0)
⇒
xx mod 2 = 0
will be applied only if the goal is strictly xx mod 2 = 0,but not if it is yy mod 2 = 0.
• check that you do not introduce never instanciated jokers in your rule. In practice,
all the jokers appearing in a Backward rule consequent are instanciated. Make sure
that, in the case of a goal replacement by an equivalent one, the generated goal is
fully instanciated.
For example, the rule:
binhyp(H) ∧
(h ⇒ B)
⇒
B
will produce, for the goal
xx = 0
the derived incoherent goal
h ⇒ xx = 0
Other example, the rule:
binhyp(b)
⇒
B
is false because the mathematical associated lemma