Cvc5Plugin
This structs encapsulates a user-specified solver plugin.
It is configured via cvc5_add_plugin()
.
-
typedef struct Cvc5Plugin Cvc5Plugin
-
struct Cvc5Plugin
A cvc5 plugin.
Public Members
-
const Cvc5Term *(*check)(size_t *size, void *state)
Call to check, return list of lemmas to add to the SAT solver. This method is called periodically, roughly at every SAT decision.
Note
This function pointer may be NULL to use the default implementation.
- Param size:
The size of the returned array of lemmas.
- Param state:
The state data for the function, may be NULL.
- Return:
The vector of lemmas to add to the SAT solver.
-
void (*notify_sat_clause)(const Cvc5Term clause, void *state)
Notify SAT clause, called when
clause
is learned by the SAT solver.Note
This function pointer may be NULL to use the default implementation.
- Param clause:
The learned clause.
- Param state:
The state data for the function, may be NULL.
-
void (*notify_theory_lemma)(const Cvc5Term lemma, void *state)
Notify theory lemma, called when
lemma
is sent by a theory solver.Note
This function pointer may be NULL to use the default implementation.
- Param lemma:
The theory lemma.
- Param state:
The state data for the function, may be NULL.
-
const char *(*get_name)()
Get the name of the plugin (for debugging).
Note
This function pointer may NOT be NULL.
- Return:
The name of the plugin.
-
void *d_check_state
The state to pass into
check
.
-
void *d_notify_sat_clause_state
The state to pass into
notify_sat_clause
.
-
void *d_notify_theory_lemma_state
The state to pass into
notify_theory_lemma
.
-
const Cvc5Term *(*check)(size_t *size, void *state)