GCC Code Coverage Report
Directory: . Exec Total Coverage
File: src/decision/decision_strategy.h Lines: 8 8 100.0 %
Date: 2021-05-22 Branches: 0 0 0.0 %

Line Exec Source
1
/******************************************************************************
2
 * Top contributors (to current version):
3
 *   Kshitij Bansal, Andrew Reynolds, Mathias Preiner
4
 *
5
 * This file is part of the cvc5 project.
6
 *
7
 * Copyright (c) 2009-2021 by the authors listed in the file AUTHORS
8
 * in the top-level source directory and their institutional affiliations.
9
 * All rights reserved.  See the file COPYING in the top-level source
10
 * directory for licensing information.
11
 * ****************************************************************************
12
 *
13
 * Decision strategy.
14
 */
15
16
#include "cvc5_private.h"
17
18
#ifndef CVC5__DECISION__DECISION_STRATEGY_H
19
#define CVC5__DECISION__DECISION_STRATEGY_H
20
21
#include <vector>
22
23
#include "expr/node.h"
24
#include "prop/sat_solver_types.h"
25
#include "smt/term_formula_removal.h"
26
27
namespace cvc5 {
28
29
class DecisionEngineOld;
30
31
namespace context {
32
  class Context;
33
  }  // namespace context
34
35
namespace decision {
36
37
class DecisionEngine;
38
39
class DecisionStrategy {
40
protected:
41
 DecisionEngineOld* d_decisionEngine;
42
43
public:
44
7149
 DecisionStrategy(DecisionEngineOld* de, context::Context* c)
45
7149
     : d_decisionEngine(de)
46
 {
47
7149
  }
48
49
7149
  virtual ~DecisionStrategy() { }
50
51
  virtual prop::SatLiteral getNext(bool&) = 0;
52
};/* class DecisionStrategy */
53
54
7149
class ITEDecisionStrategy : public DecisionStrategy {
55
public:
56
7149
 ITEDecisionStrategy(DecisionEngineOld* de, context::Context* c)
57
7149
     : DecisionStrategy(de, c)
58
 {
59
7149
  }
60
  /**
61
   * Add that assertion is an (input) assertion, not corresponding to a
62
   * skolem definition.
63
   */
64
  virtual void addAssertion(TNode assertion) = 0;
65
  /**
66
   * Add that lem is the skolem definition for skolem, which is a part of
67
   * the current assertions.
68
   */
69
  virtual void addSkolemDefinition(TNode lem, TNode skolem) = 0;
70
};/* class ITEDecisionStrategy */
71
72
}  // namespace decision
73
}  // namespace cvc5
74
75
#endif /* CVC5__DECISION__DECISION_STRATEGY_H */