def_module_params(module_name='rewriter',
                  class_name='arith_rewriter_params',
                  export=True,
                  params=(("algebraic_number_evaluator", BOOL, True, "simplify/evaluate expressions containing (algebraic) irrational numbers."),
                          ("mul_to_power", BOOL, False, "collpase (* t ... t) into (^ t k), it is ignored if expand_power is true."),
                          ("expand_power", BOOL, False, "expand (^ t k) into (* t ... t) if  1 < k <= max_degree."),
                          ("expand_tan", BOOL, False, "replace (tan x) with (/ (sin x) (cos x))."),
                          ("max_degree", UINT, 64, "max degree of algebraic numbers (and power operators) processed by simplifier."),
                          ("sort_sums", BOOL, False, "sort the arguments of + application."),
                          ("gcd_rounding", BOOL, False, "use gcd rounding on integer arithmetic atoms."),
                          ("arith_lhs", BOOL, False, "all monomials are moved to the left-hand-side, and the right-hand-side is just a constant."),
                          ("arith_ineq_lhs", BOOL, False, "rewrite inequalities so that right-hand-side is a constant."),
                          ("elim_to_real", BOOL, False, "eliminate to_real from arithmetic predicates that contain only integers."),
                          ("push_to_real", BOOL, True, "distribute to_real over * and +."),
                          ("eq2ineq", BOOL, False, "expand equalities into two inequalities"),
                          ("elim_rem", BOOL, False, "replace (rem x y) with (ite (>= y 0) (mod x y) (- (mod x y))).")))
