Mc2_core.ActionsSourcePlugins are given a set of possible actions at certain times, such as propagation or first-time addition of watches to a term.
Actions available to terms/plugins when doing propagation/model building, including adding clauses, registering actions to do upon backtracking, etc.
push a new clause. This clause is added to the solver and will not be backtracked.
val propagate_bool_eval :
t ->
Mc2_core__.Solver_types.term ->
bool ->
subs:Mc2_core__.Solver_types.term list ->
unitpropagate_bool_eval t b l propagates the boolean literal t assigned to boolean value b, explained by evaluation with relevant (sub)terms l
val propagate_bool_lemma :
t ->
Mc2_core__.Solver_types.term ->
bool ->
Mc2_core__.Solver_types.atom list ->
Mc2_core__.Solver_types.lemma ->
unitpropagate_bool_lemma t b c propagates the boolean literal t assigned to boolean value b, explained by a valid theory lemma c. Precondition: c is a tautology such that c == (c' ∨ t=b), where c' is composed of atoms false in current model.