CBMC
loop_contracts_synthesizer_base.h
Go to the documentation of this file.
1 /*******************************************************************\
2 
3 Module: Loop Contracts Synthesizer Interface
4 
5 Author: Qinheping Hu
6 
7 \*******************************************************************/
8 
11 
12 #ifndef CPROVER_GOTO_SYNTHESIZER_LOOP_CONTRACTS_SYNTHESIZER_BASE_H
13 #define CPROVER_GOTO_SYNTHESIZER_LOOP_CONTRACTS_SYNTHESIZER_BASE_H
14 
16 
17 #include "synthesizer_utils.h"
18 
19 class messaget;
20 
28 {
29 public:
32  {
33  }
34  virtual ~loop_contracts_synthesizer_baset() = default;
35 
41 
43  virtual exprt synthesize(loop_idt) = 0;
44 
45 protected:
48 };
49 
50 #endif // CPROVER_GOTO_SYNTHESIZER_LOOP_CONTRACTS_SYNTHESIZER_BASE_H
Base class for all expressions.
Definition: expr.h:56
A base class for loop contracts synthesizers.
virtual exprt synthesize(loop_idt)=0
Synthesize loop invariant for a specified loop in the goto_model.
virtual ~loop_contracts_synthesizer_baset()=default
virtual invariant_mapt synthesize_all()=0
Synthesize loop invariants that are inductive in the given GOTO program.
loop_contracts_synthesizer_baset(goto_modelt &goto_model, messaget &log)
Class that provides messages with a built-in verbosity 'level'.
Definition: message.h:155
Symbol Table + CFG.
Loop id used to identify loops.
Definition: loop_ids.h:28
std::map< loop_idt, exprt > invariant_mapt
Definition: utils.h:29