Smtml.RewriteModule that performs two 'important' rewritings:
1. Replace symbols' Ty_none with the correct type specified in declare-const.
2. Propagate the correct theory encoding for Unop, Binop, Relop, and Triop.
3. Inlines Let_in binders into a single big expr
module Symb_map : sig ... endval debug : ('a, Format.formatter, unit) format -> ('a -> unit) -> unitval rewrite_expr : (Ty.t Symb_map.t * Expr.t Symb_map.t) -> Expr.t -> Expr.tPropagates types in type_map and inlines Let_in binders
val rewrite_cmd : Ty.t Symb_map.t -> Ast.t -> Ty.t Symb_map.t * Ast.tAcccumulates types of symbols in type_map and calls rewrite_expr