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

Line Exec Source
1
/******************************************************************************
2
 * Top contributors (to current version):
3
 *   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 BvAbstraction preprocessing pass.
14
 *
15
 * Abstract common structures over small domains to UF. This preprocessing
16
 * is particularly useful on QF_BV/mcm benchmarks and can be enabled via
17
 * option `--bv-abstraction`.
18
 * For more information see 3.4 Refactoring Isomorphic Circuits in [1].
19
 *
20
 * [1] Liana Hadarean, An Efficient and Trustworthy Theory Solver for
21
 *     Bit-vectors in Satisfiability Modulo Theories
22
 *     https://cs.nyu.edu/media/publications/hadarean_liana.pdf
23
 */
24
25
#include "cvc5_private.h"
26
27
#ifndef CVC5__PREPROCESSING__PASSES__BV_ABSTRACTION_H
28
#define CVC5__PREPROCESSING__PASSES__BV_ABSTRACTION_H
29
30
#include "preprocessing/preprocessing_pass.h"
31
32
namespace cvc5 {
33
namespace preprocessing {
34
namespace passes {
35
36
19676
class BvAbstraction : public PreprocessingPass
37
{
38
 public:
39
  BvAbstraction(PreprocessingPassContext* preprocContext);
40
41
 protected:
42
  PreprocessingPassResult applyInternal(
43
      AssertionPipeline* assertionsToPreprocess) override;
44
};
45
46
}  // namespace passes
47
}  // namespace preprocessing
48
}  // namespace cvc5
49
50
#endif /* CVC5__PREPROCESSING__PASSES__BV_ABSTRACTION_H */