module type S =sig
..end
module Env:Env.S
module C: module type of Env.C
module PS: module type of Env.ProofState
val canc_sup_active : Env.binary_inf_rule
val canc_sup_passive : Env.binary_inf_rule
val cancellation : Env.unary_inf_rule
val canc_equality_factoring : Env.unary_inf_rule
val canc_ineq_chaining : Env.binary_inf_rule
Also does case switch if conditions are present:
C1 or a < b C2 or b < c
-------------------------------------
C1 or C2 or or_ (b = i)
if a and c are integer linear expressions whose difference is
a constant. If a > c, then the range a...c is empty and the literal
is just removed.
val canc_ineq_factoring : Env.unary_inf_rule
val canc_less_to_lesseq : Env.lit_rewrite_rule
val canc_div_chaining : Env.binary_inf_rule
val canc_div_case_switch : Env.unary_inf_rule
val canc_div_prime_decomposition : Env.multi_simpl_rule
6 | a ---> { 2 | a, 3 | a }
)val canc_divisibility : Env.unary_inf_rule
val is_tautology : C.t -> bool
val eliminate_unshielded : Env.multi_simpl_rule
val register : unit -> unit