def_module_params(module_name='rewriter',
                  class_name='bool_rewriter_params',
                  export=True,
                  params=(("ite_extra_rules", BOOL, True, "extra ite simplifications, these additional simplifications may reduce size locally but increase globally"),
                          ("flat", BOOL, True, "create nary applications for +,*,bvadd,bvmul,bvand,bvor,bvxor"),
                          ("flat_and_or", BOOL, True, "create nary applications for and,or"),
                          ("sort_disjunctions", BOOL, True, "sort subterms in disjunctions"),
                          ("elim_and", BOOL, False, "conjunctions are rewritten using negation and disjunctions"),
                          ('elim_ite', BOOL, True,  "eliminate ite in favor of and/or"),
                          ("local_ctx", BOOL, False, "perform local (i.e., cheap) context simplifications"),
                          ("local_ctx_limit", UINT, UINT_MAX, "limit for applying local context simplifier"),
                          ("blast_distinct", BOOL, False, "expand a distinct predicate into a quadratic number of disequalities"), 
                          ("blast_distinct_threshold", UINT, UINT_MAX, "when blast_distinct is true, only distinct expressions with less than this number of arguments are blasted")  
                          ))
