module Selection_assert:selection of assert candidatessig..end
stores all assert candidates,
and selects one for application.
typeconfig =Config.config
typebound =Bound.bound
typestatistic =Statistic.statistic
typeliteral =Term.literal
typestate =State.state
typeraw_context_unifier =Context_unifier.raw_context_unifier
typeproblem_literals =Problem_literals.problem_literals
typeselected =Selection_types.selected
typecontext =Context.context
type candidates
val create : config ->
bound ->
statistic ->
state ->
context ->
problem_literals -> candidatesval has_closing_candidate : candidates -> boolSelection_lookahead).
imperfect, might return false although the candidate leads to a Close.val size : candidates -> intval add : candidates -> raw_context_unifier -> boolSelection_assert.has_closing_candidate).val select : candidates -> selected optionDoes not choose candidates subsumed by the context.
Returns None, if no further assert candidate exists.
val check_exceeding : candidates -> unitBound.
to be called only when select returns None,
based on the semantics of Flags.opt_restart,
when a branch has to be checked for being exhausted.
val is_element_incomplete : candidates -> Context.element -> boolis_element_incomplete candidates context_element
returns true if applicable exceeding candidates
computed by this context_element have been dropped
when the restart mode Config.restart
is Flags.opt_restart.RS_Delayed.
Then, when a branch has been found that is saturated
wrt. to the candidates within the current depth bound,
all candidates for incomplete context elements are recomputed
and checked if they are satisfied in the branch,
and registered in Bound otherwise.
val backtrack : candidates -> unit
DEPENDENCY: State_backtrack must have been executed before.