/* * Select the built-in symbols for a given logic */ void smt2_lexer_activate_logic(smt_logic_t logic) { if (logic_has_arrays(logic)) { smt2_activate_arrays(); } if (logic_has_bv(logic)) { smt2_activate_bv(); } switch (arith_fragment(logic)) { case ARITH_IDL: smt2_activate_idl(); break; case ARITH_LIA: case ARITH_NIA: smt2_activate_ints(); break; case ARITH_LRA: case ARITH_NRA: case ARITH_RDL: smt2_activate_reals(); break; case ARITH_LIRA: case ARITH_NIRA: smt2_activate_mixed_arith(); break; case ARITH_NONE: break; } }
bool smt_logics::supported_logic(symbol const & s) { return logic_has_uf(s) || logic_is_allcsp(s) || logic_has_fd(s) || logic_has_arith(s) || logic_has_bv(s) || logic_has_array(s) || logic_has_seq(s) || logic_has_str(s) || logic_has_horn(s) || logic_has_fpa(s); }