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

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