GCC Code Coverage Report
Directory: . Exec Total Coverage
File: src/preprocessing/passes/static_learning.h Lines: 1 1 100.0 %
Date: 2021-11-06 Branches: 0 0 0.0 %

Line Exec Source
1
/******************************************************************************
2
 * Top contributors (to current version):
3
 *   Yoni Zohar, 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
 * The static learning preprocessing pass.
14
 */
15
16
#include "cvc5_private.h"
17
18
#ifndef CVC5__PREPROCESSING__PASSES__STATIC_LEARNING_H
19
#define CVC5__PREPROCESSING__PASSES__STATIC_LEARNING_H
20
21
#include "context/cdhashset.h"
22
#include "preprocessing/preprocessing_pass.h"
23
24
namespace cvc5 {
25
namespace preprocessing {
26
namespace passes {
27
28
30668
class StaticLearning : public PreprocessingPass
29
{
30
 public:
31
  StaticLearning(PreprocessingPassContext* preprocContext);
32
33
 protected:
34
  PreprocessingPassResult applyInternal(
35
      AssertionPipeline* assertionsToPreprocess) override;
36
37
 private:
38
  /** Collect children of flattened AND term. */
39
  void flattenAnd(TNode node, std::vector<TNode>& children);
40
41
  /** CD-cache for visiting nodes used by `flattenAnd`. */
42
  context::CDHashSet<Node> d_cache;
43
};
44
45
}  // namespace passes
46
}  // namespace preprocessing
47
}  // namespace cvc5
48
49
#endif /* CVC5__PREPROCESSING__PASSES__STATIC_LEARNING_H */