[rules = inference].
'Rules: inference.               Location: SPADE$CHECKER:SPECIAL.RUL'.
''.
'This is a family of logic rules.  For example:'.
''.
'If you wish to claim that X is true, and prove it, rule'.
'inference(1) can be useful, as it says X follows from X, so you'.
'enter a new proof frame with X as your goal.'.
''.
'If you have a conclusion of the form A or B, rules'.
'inference(3-4) can be useful, to select which side of the'.
'disjunction you wish to try to prove.'.


[rules = eq].
'Rules: eq.                      Location: SPADE$CHECKER:SPECIAL.RUL'.
''.
'This is the equality substitution rule: it allows you to replace A by B'.
'provided A=B (and A and B are different expressions).  It is probably'.
'the most commonly-used substitution rule.'.


[rules = equiv].
'Rules: equiv.                   Location: SPADE$CHECKER:SPECIAL.RUL'.
''.
'This is the equivalence substitution rule: you can use it to replace'.
'A by B (or vice versa) provided A <-> B.  It is a special-invocation'.
'rule, i.e. you can only apply it if you specifically ask for it: it'.
'will not be applied by a wild-card rulename, for instance.'.


[rules = simplify].
'Rules: simplify.                Location: SPADE$CHECKER:SPECIAL.RUL'.
''.
'Two special-invocation rules which allow you to replace an'.
'expression by its simplified form or by another expression which'.
'simplifies to the same form.'.


[rules = logic].
'Rules: logic.                   Location: SPADE$CHECKER:SPECIAL.RUL'.
''.
'A special-invocation family of rules which allow you to make use of'.
'the logical deduction capabilities of the "deduce" command as'.
'a (not particularly strong) inference or a (stronger) rewrite rule.'.


[rules = standardisation].
'Rules: standardisation.         Location: SPADE$CHECKER:SPECIAL.RUL'.
''.
'A family of special-invocation rules which allow you to use'.
'the expression standardiser as a rewrite or inference rule.'.
''.
'The most useful means of using this rule to rewrite an'.
'expression is to give the exact new expression that you wish'.
'to replace your original expression by: you cannot use a'.
'partially-instantiated expression as your new subexpression'.
'pattern, though you can use a completely wild new'.
'subexpression pattern (i.e. X).'.


[rules = unification].
'Rules: unification.             Location: SPADE$CHECKER:SPECIAL.RUL'.
''.
'A special-invocation family of rules which, for any function (or'.
'operator) F, allows you to infer F(X1,...,Xn)=F(Y1,...,Yn) from'.
'X1=Y1, ..., Xn=Yn (for n in 1..9 at present).'.
''.
'In fact, you can get along without these rules (useful to know if F'.
'is a function with 10 or more arguments):  if you want to prove'.
'F(X1,...,Xn)=F(Y1,...,Yn) and you can prove X1=Y1, ..., Xn=Yn, then'.
'just replace each Yi by Xi in F(X1,...,Xn)=F(Y1,...,Yn) to get the'.
'required result; if necessary, you can use proof by contradiction to'.
'explicitly introduce the F(Y1,...,Yn) expression first.'.
