#pragma once
#include "util/params.h"
#include "tactic/tactic.h"
class ast_manager;
class tactic;
tactic * mk_ufnia_tactic(ast_manager & m, params_ref const & p);
tactic * mk_uflra_tactic(ast_manager & m, params_ref const & p);
tactic * mk_auflia_tactic(ast_manager & m, params_ref const & p);
tactic * mk_auflira_tactic(ast_manager & m, params_ref const & p);
tactic * mk_aufnira_tactic(ast_manager & m, params_ref const & p);
tactic * mk_lra_tactic(ast_manager & m, params_ref const & p);
tactic * mk_lia_tactic(ast_manager & m, params_ref const & p);
tactic * mk_lira_tactic(ast_manager & m, params_ref const & p);
Z3_ADD_TACTIC(ufnia, "ufnia", "builtin strategy for solving UFNIA problems.", mk_ufnia_tactic(m, p));
Z3_ADD_TACTIC(uflra, "uflra", "builtin strategy for solving UFLRA problems.", mk_uflra_tactic(m, p));
Z3_ADD_TACTIC(auflia, "auflia", "builtin strategy for solving AUFLIA problems.", mk_auflia_tactic(m, p));
Z3_ADD_TACTIC(auflira, "auflira", "builtin strategy for solving AUFLIRA problems.", mk_auflira_tactic(m, p));
Z3_ADD_TACTIC(aufnira, "aufnira", "builtin strategy for solving AUFNIRA problems.", mk_aufnira_tactic(m, p));
Z3_ADD_TACTIC(lra, "lra", "builtin strategy for solving LRA problems.", mk_lra_tactic(m, p));
Z3_ADD_TACTIC(lia, "lia", "builtin strategy for solving LIA problems.", mk_lia_tactic(m, p));
Z3_ADD_TACTIC(lira, "lira", "builtin strategy for solving LIRA problems.", mk_lira_tactic(m, p));