GCC Code Coverage Report
Directory: . Exec Total Coverage
File: src/theory/shared_solver_distributed.h Lines: 1 1 100.0 %
Date: 2021-05-22 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
18920
  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 equality to the shared terms database. */
46
  void assertSharedEquality(TNode equality,
47
                            bool polarity,
48
                            TNode reason) override;
49
  /**
50
   * Get equality status based on the equality engine of shared terms database
51
   */
52
  EqualityStatus getEqualityStatus(TNode a, TNode b) override;
53
  /** Explain literal that was propagated by a theory or using shared terms
54
   * database */
55
  TrustNode explain(TNode literal, TheoryId id) override;
56
57
 protected:
58
  /** If t is an equality, add it as one that may be propagated */
59
  void preRegisterSharedInternal(TNode t) override;
60
};
61
62
}  // namespace theory
63
}  // namespace cvc5
64
65
#endif /* CVC5__THEORY__SHARED_SOLVER_DISTRIBUTED__H */