CBMC
Loading...
Searching...
No Matches
inductiveness.h
Go to the documentation of this file.
1/*******************************************************************\
2
3Module: Inductiveness
4
5Author: 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
17class solver_optionst;
18
20{
21public:
28
33
35 {
37 result.work = std::move(refuted);
38 return result;
39 }
40
42 {
44 result.work = std::move(dropped);
45 return result;
46 }
47
48 std::optional<workt> work;
49
50private:
54};
55
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
std::unordered_set< symbol_exprt, irep_hash > address_taken(const std::vector< exprt > &src)
ait supplies three of the four components needed: an abstract interpreter (in this case handling func...
Definition ai.h:562
static inductiveness_resultt inductive()
static inductiveness_resultt step_case_fail(workt dropped)
static inductiveness_resultt base_case_fail(workt refuted)
std::optional< workt > work
inductiveness_resultt(outcomet __outcome)
enum inductiveness_resultt::outcomet outcome
A namespacet is essentially one or two symbol tables bound together, to allow for symbol lookups in t...
Definition namespace.h:91
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)