예제 #1
0
/*
 * 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;
  }
}
예제 #2
0
파일: smt_logics.cpp 프로젝트: levnach/z3
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);
}