GCC Code Coverage Report
Directory: . Exec Total Coverage
File: src/theory/quantifiers/instantiation_list.h Lines: 4 4 100.0 %
Date: 2021-08-14 Branches: 3 6 50.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
 * List of instantiations.
14
 */
15
16
#include "cvc5_private.h"
17
18
#ifndef CVC5__THEORY__QUANTIFIERS__INSTANTIATION_LIST_H
19
#define CVC5__THEORY__QUANTIFIERS__INSTANTIATION_LIST_H
20
21
#include <iosfwd>
22
#include <vector>
23
24
#include "expr/node.h"
25
#include "theory/inference_id.h"
26
27
namespace cvc5 {
28
29
159
struct InstantiationVec
30
{
31
 public:
32
  InstantiationVec(const std::vector<Node>& vec,
33
                   theory::InferenceId id = theory::InferenceId::UNKNOWN,
34
                   Node pfArg = Node::null());
35
  /** The vector of terms */
36
  std::vector<Node> d_vec;
37
  /** The inference id */
38
  theory::InferenceId d_id;
39
  /** The proof argument */
40
  Node d_pfArg;
41
};
42
43
/** A list of instantiations for a quantified formula */
44
42
struct InstantiationList
45
{
46
  /** Initialize */
47
  void initialize(Node q);
48
  /** The quantified formula */
49
  Node d_quant;
50
  /** The instantiation list */
51
  std::vector<InstantiationVec> d_inst;
52
};
53
54
/** Print the instantiation list to stream out */
55
std::ostream& operator<<(std::ostream& out, const InstantiationList& ilist);
56
57
/** The list of skolemization for a quantified formula */
58
9
struct SkolemList
59
{
60
9
  SkolemList(Node q, const std::vector<Node>& sks) : d_quant(q), d_sks(sks) {}
61
  /** The quantified formula */
62
  Node d_quant;
63
  /** The list of skolems for the quantified formula */
64
  std::vector<Node> d_sks;
65
};
66
67
/** Print the skolem list to stream out */
68
std::ostream& operator<<(std::ostream& out, const SkolemList& skl);
69
70
}  // namespace cvc5
71
72
#endif /* CVC5__THEORY__QUANTIFIERS__INSTANTIATION_LIST_H */