Go to the documentation of this file.
13 #ifndef CPROVER_GOTO_INSTRUMENT_SYNTHESIZER_ENUMERATIVE_LOOP_INVARIANT_SYNTHESIZER_H
15 #define CPROVER_GOTO_INSTRUMENT_SYNTHESIZER_ENUMERATIVE_LOOP_INVARIANT_SYNTHESIZER_H
52 #endif // CPROVER_GOTO_INSTRUMENT_SYNTHESIZER_ENUMERATIVE_LOOP_INVARIANT_SYNTHESIZER_H
Class that provides messages with a built-in verbosity 'level'.
Enumerative loop invariant synthesizers.
exprt synthesize(loop_idt loop_id) override
Synthesize loop invariant for a specified loop in the goto_model.
Base class for all expressions.
invariant_mapt synthesize_all() override
This synthesizer guarantees that, with the synthesized loop invariants, all checks in the annotated G...
enumerative_loop_invariant_synthesizert(const goto_modelt &goto_model, messaget &log)
A base class for loop invariant synthesizers.
std::map< loop_idt, exprt > invariant_mapt
invariant_mapt invariant_candiate_map
const goto_modelt & goto_model
Loop id used to identify loops.
void init_candidates()
Initialize invariants as true for all unannotated loops.