cprover
Toggle main menu visibility
Loading...
Searching...
No Matches
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
15
#include <
goto-programs/goto_model.h
>
16
17
#include "
synthesizer_utils.h
"
18
19
class
messaget
;
20
27
class
loop_contracts_synthesizer_baset
28
{
29
public
:
30
loop_contracts_synthesizer_baset
(
goto_modelt
&
goto_model
,
messaget
&
log
)
31
:
goto_model
(
goto_model
),
log
(
log
)
32
{
33
}
34
virtual
~loop_contracts_synthesizer_baset
() =
default
;
35
40
virtual
invariant_mapt
synthesize_all
() = 0;
41
43
virtual
exprt
synthesize
(
loop_idt
) = 0;
44
45
protected
:
46
goto_modelt
&
goto_model
;
47
messaget
&
log
;
48
};
49
50
#endif
// CPROVER_GOTO_SYNTHESIZER_LOOP_CONTRACTS_SYNTHESIZER_BASE_H
exprt
Base class for all expressions.
Definition
expr.h:57
goto_modelt
Definition
goto_model.h:27
loop_contracts_synthesizer_baset::synthesize
virtual exprt synthesize(loop_idt)=0
Synthesize loop invariant for a specified loop in the goto_model.
loop_contracts_synthesizer_baset::goto_model
goto_modelt & goto_model
Definition
loop_contracts_synthesizer_base.h:46
loop_contracts_synthesizer_baset::log
messaget & log
Definition
loop_contracts_synthesizer_base.h:47
loop_contracts_synthesizer_baset::~loop_contracts_synthesizer_baset
virtual ~loop_contracts_synthesizer_baset()=default
loop_contracts_synthesizer_baset::synthesize_all
virtual invariant_mapt synthesize_all()=0
Synthesize loop invariants that are inductive in the given GOTO program.
loop_contracts_synthesizer_baset::loop_contracts_synthesizer_baset
loop_contracts_synthesizer_baset(goto_modelt &goto_model, messaget &log)
Definition
loop_contracts_synthesizer_base.h:30
messaget
Class that provides messages with a built-in verbosity 'level'.
Definition
message.h:154
goto_model.h
Symbol Table + CFG.
loop_idt
Loop id used to identify loops.
Definition
loop_ids.h:28
synthesizer_utils.h
invariant_mapt
std::map< loop_idt, exprt > invariant_mapt
Definition
utils.h:30
goto-synthesizer
loop_contracts_synthesizer_base.h
Generated by
1.17.0