Exemplo n.º 1
0
BtorNode *
boolector_false (Btor * btor)
{
  BTOR_ABORT_ARG_NULL_BOOLECTOR (btor);
  btor->external_refs++;
  return btor_false_exp (btor);
}
Exemplo n.º 2
0
static void
dump_smt_aux (Btor * btor, FILE * file, BtorNode ** roots, int nroots)
{
  assert (btor);
  assert (file);
  assert (!btor->options.incremental.val);
//  assert (!btor->options.model_gen.val);

  int i, ret;
  BtorNode *temp, *tmp_roots[nroots];
  BtorHashTableIterator it;
  BtorSMTDumpContext *sdc;

  for (i = 0; i < nroots; i++)
    tmp_roots[i] = roots[i];

  sdc = new_smt_dump_context (btor, file);

  if (nroots)
    {
      for (i = 0; i < nroots; i++)
        add_root_to_smt_dump_context (sdc, tmp_roots[i]);
    }
  else
    {
      ret = btor_simplify (btor);

      if (ret == BTOR_UNKNOWN)
        {
          btor_init_node_hash_table_iterator (&it, btor->unsynthesized_constraints);
          btor_queue_node_hash_table_iterator (&it, btor->synthesized_constraints);
          btor_queue_node_hash_table_iterator (&it, btor->embedded_constraints);
          while (btor_has_next_node_hash_table_iterator (&it))
            add_root_to_smt_dump_context (sdc,
                btor_next_node_hash_table_iterator (&it));
        }
      else
        {
          assert (ret == BTOR_SAT || ret == BTOR_UNSAT);
          temp = (ret == BTOR_SAT) ? btor_true_exp (btor)
                                   : btor_false_exp (btor);
          add_root_to_smt_dump_context (sdc, temp);
          btor_release_exp (btor, temp);
        }
    }

  dump_smt (sdc);
  delete_smt_dump_context (sdc);
}