BtorNode * boolector_true (Btor * btor) { BTOR_ABORT_ARG_NULL_BOOLECTOR (btor); btor->external_refs++; return btor_true_exp (btor); }
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); }