cprover
Toggle main menu visibility
Loading...
Searching...
No Matches
inductiveness.h
Go to the documentation of this file.
1
/*******************************************************************\
2
3
Module: Inductiveness
4
5
Author: Daniel Kroening, dkr@amazon.com
6
7
\*******************************************************************/
8
11
12
#ifndef CPROVER_CPROVER_INDUCTIVENESS_H
13
#define CPROVER_CPROVER_INDUCTIVENESS_H
14
15
#include "
solver_types.h
"
16
17
class
solver_optionst
;
18
19
class
inductiveness_resultt
20
{
21
public
:
22
enum
outcomet
23
{
24
INDUCTIVE
,
25
BASE_CASE_FAIL
,
26
STEP_CASE_FAIL
27
}
outcome
;
28
29
static
inductiveness_resultt
inductive
()
30
{
31
return
inductiveness_resultt
(
INDUCTIVE
);
32
}
33
34
static
inductiveness_resultt
base_case_fail
(
workt
refuted)
35
{
36
auto
result =
inductiveness_resultt
(
BASE_CASE_FAIL
);
37
result.work = std::move(refuted);
38
return
result;
39
}
40
41
static
inductiveness_resultt
step_case_fail
(
workt
dropped)
42
{
43
auto
result =
inductiveness_resultt
(
STEP_CASE_FAIL
);
44
result.work = std::move(dropped);
45
return
result;
46
}
47
48
std::optional<workt>
work
;
49
50
private
:
51
explicit
inductiveness_resultt
(
outcomet
__outcome) :
outcome
(__outcome)
52
{
53
}
54
};
55
56
inductiveness_resultt
inductiveness_check
(
57
std::vector<framet> &frames,
58
const
std::unordered_set<symbol_exprt, irep_hash> &
address_taken
,
59
const
solver_optionst
&,
60
const
namespacet
&,
61
std::vector<propertyt> &properties,
62
std::size_t property_index);
63
64
#endif
// CPROVER_CPROVER_INDUCTIVENESS_H
address_taken
std::unordered_set< symbol_exprt, irep_hash > address_taken(const std::vector< exprt > &src)
Definition
address_taken.cpp:51
inductiveness_resultt
Definition
inductiveness.h:20
inductiveness_resultt::inductive
static inductiveness_resultt inductive()
Definition
inductiveness.h:29
inductiveness_resultt::step_case_fail
static inductiveness_resultt step_case_fail(workt dropped)
Definition
inductiveness.h:41
inductiveness_resultt::base_case_fail
static inductiveness_resultt base_case_fail(workt refuted)
Definition
inductiveness.h:34
inductiveness_resultt::outcomet
outcomet
Definition
inductiveness.h:23
inductiveness_resultt::STEP_CASE_FAIL
@ STEP_CASE_FAIL
Definition
inductiveness.h:26
inductiveness_resultt::INDUCTIVE
@ INDUCTIVE
Definition
inductiveness.h:24
inductiveness_resultt::BASE_CASE_FAIL
@ BASE_CASE_FAIL
Definition
inductiveness.h:25
inductiveness_resultt::work
std::optional< workt > work
Definition
inductiveness.h:48
inductiveness_resultt::inductiveness_resultt
inductiveness_resultt(outcomet __outcome)
Definition
inductiveness.h:51
inductiveness_resultt::outcome
enum inductiveness_resultt::outcomet outcome
namespacet
A namespacet is essentially one or two symbol tables bound together, to allow for symbol lookups in t...
Definition
namespace.h:91
solver_optionst
Definition
solver.h:28
inductiveness_check
inductiveness_resultt inductiveness_check(std::vector< framet > &frames, const std::unordered_set< symbol_exprt, irep_hash > &address_taken, const solver_optionst &, const namespacet &, std::vector< propertyt > &properties, std::size_t property_index)
Definition
inductiveness.cpp:98
solver_types.h
Solver.
workt
Definition
solver_types.h:166
cprover
inductiveness.h
Generated by
1.17.0