GCC Code Coverage Report
Directory: . Exec Total Coverage
File: src/theory/shared_solver_distributed.h Lines: 1 1 100.0 %
Date: 2021-08-20 Branches: 0 0 0.0 %

Line Exec Source
1
/******************************************************************************
2
 * Top contributors (to current version):
3
 *   Andrew Reynolds
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
 * Shared solver in the distributed architecture.
14
 */
15
16
#include "cvc5_private.h"
17
18
#ifndef CVC5__THEORY__SHARED_SOLVER_DISTRIBUTED__H
19
#define CVC5__THEORY__SHARED_SOLVER_DISTRIBUTED__H
20
21
#include "expr/node.h"
22
#include "theory/shared_solver.h"
23
24
namespace cvc5 {
25
namespace theory {
26
27
/**
28
 * The shared solver in the distributed architecture. This class uses the
29
 * SharedTermsDatabase for implementing the core methods of a shared solver.
30
 */
31
class SharedSolverDistributed : public SharedSolver
32
{
33
 public:
34
  SharedSolverDistributed(TheoryEngine& te, ProofNodeManager* pnm);
35
19712
  virtual ~SharedSolverDistributed() {}
36
  //------------------------------------- initialization
37
  /**
38
   * Returns true if we need an equality engine, this has the same contract
39
   * as Theory::needsEqualityEngine.
40
   */
41
  bool needsEqualityEngine(theory::EeSetupInfo& esi) override;
42
  /** Set equality engine in the shared terms database */
43
  void setEqualityEngine(eq::EqualityEngine* ee) override;
44
  //------------------------------------- end initialization
45
  /** Assert n to the shared terms database. */
46
  void assertShared(TNode n, bool polarity, TNode reason) override;
47
  /**
48
   * Get equality status based on the equality engine of shared terms database
49
   */
50
  EqualityStatus getEqualityStatus(TNode a, TNode b) override;
51
  /** Explain literal that was propagated by a theory or using shared terms
52
   * database */
53
  TrustNode explain(TNode literal, TheoryId id) override;
54
55
 protected:
56
  /** If t is an equality, add it as one that may be propagated */
57
  void preRegisterSharedInternal(TNode t) override;
58
};
59
60
}  // namespace theory
61
}  // namespace cvc5
62
63
#endif /* CVC5__THEORY__SHARED_SOLVER_DISTRIBUTED__H */