GCC Code Coverage Report
Directory: . Exec Total Coverage
File: src/decision/decision_strategy.h Lines: 0 8 0.0 %
Date: 2021-11-07 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/env_obj.h"
26
#include "smt/term_formula_removal.h"
27
28
namespace cvc5 {
29
30
class DecisionEngineOld;
31
32
namespace decision {
33
34
class DecisionStrategy : protected EnvObj
35
{
36
 public:
37
  DecisionStrategy(Env& env, DecisionEngineOld* de)
38
      : EnvObj(env), d_decisionEngine(de)
39
  {
40
  }
41
42
  virtual ~DecisionStrategy() { }
43
44
  virtual prop::SatLiteral getNext(bool&) = 0;
45
46
 protected:
47
  DecisionEngineOld* d_decisionEngine;
48
};/* class DecisionStrategy */
49
50
class ITEDecisionStrategy : public DecisionStrategy {
51
public:
52
 ITEDecisionStrategy(Env& env, DecisionEngineOld* de)
53
     : DecisionStrategy(env, de)
54
 {
55
  }
56
  /**
57
   * Add that assertion is an (input) assertion, not corresponding to a
58
   * skolem definition.
59
   */
60
  virtual void addAssertion(TNode assertion) = 0;
61
  /**
62
   * Add that lem is the skolem definition for skolem, which is a part of
63
   * the current assertions.
64
   */
65
  virtual void addSkolemDefinition(TNode lem, TNode skolem) = 0;
66
};/* class ITEDecisionStrategy */
67
68
}  // namespace decision
69
}  // namespace cvc5
70
71
#endif /* CVC5__DECISION__DECISION_STRATEGY_H */