[rules = inequals].
'Rules: inequals.                Location: SPADE$CHECKER:INTINEQS.RUL'.
'                                        & SPADE$CHECKER:NUMINEQS.RUL'.
''.
'This is a large family of inference rules for integer, numeric and'.
'general inequalities.  The main groupings are:'.
''.
'     (1-6):  subtraction from one side of inequality (e.g. i-N<j if...)'.
'    (7-18):  addition to one side of inequality (e.g. i+N>j if...)'.
'   (19-22):  addition of same no. both sides of <  (e.g. i+N<j+N if...)'.
'   (23-26):  addition of same no. both sides of >  (e.g. i+N>N+j if...)'.
'   (27-30):  addition of same no. both sides of <> (e.g. N+i<>N+j if...)'.
'   (31-33):  subtract same no. both sides </>/<> (e.g. i-N>j-N if...)'.
'   (34-42):  multiplication both sides by same no. (e.g. i*N<=j*N if...)'.
'   (43-48):  addition >  :  A+C>B+D  from (A...B or D), (C...D or B)'.
'   (49-54):  addition <  :  A+C<B+D  from (A...B or D), (C...D or B)'.
'   (55-60):  addition <> :  A+C<>B+D from (A...B or D), (C...D or B)'.
'   (61-64):  addition of same no. both sides of =  (e.g. i+N=N+j if...)'.
'   (65-68):  addition of same no. both sides of <= (e.g. N+i<=j+N if...)'.
'   (69-72):  addition of same no. both sides of >= (e.g. i+N>=j+N if...)'.
'   (73-75):  subtract same no. both sides =/<=/>= (e.g. i-N>j-N if...)'.
'      (76):  I*N=J*N may_be_deduced_from I=J.  (* same no. each side =)'.
'   (77-79):  addition >= :  A+C>=B+D  from (A...B or D), (C...D or B)'.
'   (80-82):  addition <= :  A+C>=B+D  from (A...B or D), (C...D or B)'.
'   (83-85):  addition =  :  A+C>=B+D  from (A...B or D), (C...D or B)'.
'   (86-87):  lower bounds for N*(A div N) for A>=0, N>0'.
'   (88-89):  upper bounds for N*(A div N) for A>=0'.
'   (90-92):  sign of A div N'.
'   (93-95):  relations between I div N and J div N'.
'   (96-97):  lower bounds for N*(A div N) for A>=0, N<0'.
'  (98-100):  sign of A div N'.
' (101-103):  strong to weak inequality for integers only'.
' (104-113):  Given X*N r Y*N, rules about X r Y for N>0 and N<0'.
' (114-121):  Rules about the "sign" of X*Y, given signs of X and Y'.

[rules = zero].
'Rules: zero.                    Location: SPADE$CHECKER:NUMINEQS.RUL'.
''.
'This is a short family of rules about equality (or otherwise) to zero.'.
'The rules are:'.
''.
'  (1-2):  infer   X*Y = 0      from   X = 0 (or Y = 0).'.
'    (3):  infer   X=0 or Y=0   from   X*Y = 0.'.
'    (4):  infer   X*Y <> 0     from   X<>0 and Y<>0.'.
'  (5-6):  infer   X <> 0       from   X*Y <> 0 (or Y*X <> 0).'.
