Library

stp_version stp_get_version(void)

strings are static; never freed

char *stp_capability(const char *key)

NULL if unknown; else caller-owned (stp_free)

char *stp_capabilities(void)

“key=value\n…” caller-owned

bool stp_has_sat_backend(const char *name)
size_t stp_num_sat_backends(void)
const char *stp_sat_backend_name(size_t i)

static; NULL when i is out of range

void stp_free(void *p)

the one release function for every returned buffer

const stp_error *stp_last_error(void)

thread-local: the most recent error of a call that had no object to record into (stp_tm_new, stp_options_new, a NULL object handle, the registry queries); NULL when none since the last stp_clear_last_error. Its strings live until the next such error on the thread or the clear. Clear it before a registry query whose every answer is also a valid one (stp_option_info_tier(“typo”) is STABLE), and read it after.

void stp_clear_last_error(void)
void stp_set_internal_error_policy(stp_internal_error_policy)

process-wide

stp_internal_error_policy stp_get_internal_error_policy(void)
const char *stp_kind_name(stp_kind)

“BV_ADD”; “?” out of range

const char *stp_kind_smtlib(stp_kind)

“bvadd”

const char *stp_rm_name(stp_rm)

“RNE”

const char *stp_unknown_reason_name(stp_unknown_reason)
const char *stp_error_code_name(stp_error_code)
const char *stp_result_kind_name(stp_result_kind)
const char *stp_validity_name(stp_validity)