diff options
Diffstat (limited to 'src/theory/quantifiers')
-rw-r--r-- | src/theory/quantifiers/instantiation_list.cpp | 34 | ||||
-rw-r--r-- | src/theory/quantifiers/instantiation_list.h | 58 |
2 files changed, 92 insertions, 0 deletions
diff --git a/src/theory/quantifiers/instantiation_list.cpp b/src/theory/quantifiers/instantiation_list.cpp new file mode 100644 index 000000000..4bf17ebc2 --- /dev/null +++ b/src/theory/quantifiers/instantiation_list.cpp @@ -0,0 +1,34 @@ +/********************* */ +/*! \file instantiation_list.cpp + ** \verbatim + ** Top contributors (to current version): + ** Andrew Reynolds + ** This file is part of the CVC4 project. + ** Copyright (c) 2009-2020 by the authors listed in the file AUTHORS + ** in the top-level source directory and their institutional affiliations. + ** All rights reserved. See the file COPYING in the top-level source + ** directory for licensing information.\endverbatim + ** + ** \brief list of instantiations + **/ + +#include "theory/quantifiers/instantiation_list.h" + +#include "options/base_options.h" +#include "printer/printer.h" + +namespace CVC4 { + +std::ostream& operator<<(std::ostream& out, const InstantiationList& ilist) +{ + Printer::getPrinter(options::outputLanguage())->toStream(out, ilist); + return out; +} + +std::ostream& operator<<(std::ostream& out, const SkolemList& skl) +{ + Printer::getPrinter(options::outputLanguage())->toStream(out, skl); + return out; +} + +} // namespace CVC4 diff --git a/src/theory/quantifiers/instantiation_list.h b/src/theory/quantifiers/instantiation_list.h new file mode 100644 index 000000000..6ef8e4784 --- /dev/null +++ b/src/theory/quantifiers/instantiation_list.h @@ -0,0 +1,58 @@ +/********************* */ +/*! \file instantiation_list.h + ** \verbatim + ** Top contributors (to current version): + ** Andrew Reynolds + ** This file is part of the CVC4 project. + ** Copyright (c) 2009-2020 by the authors listed in the file AUTHORS + ** in the top-level source directory and their institutional affiliations. + ** All rights reserved. See the file COPYING in the top-level source + ** directory for licensing information.\endverbatim + ** + ** \brief list of instantiations + **/ + +#include "cvc4_private.h" + +#ifndef CVC4__THEORY__QUANTIFIERS__INSTANTIATION_LIST_H +#define CVC4__THEORY__QUANTIFIERS__INSTANTIATION_LIST_H + +#include <iosfwd> +#include <vector> + +#include "expr/node.h" + +namespace CVC4 { + +/** A list of instantiations for a quantified formula */ +struct InstantiationList +{ + InstantiationList(Node q, const std::vector<std::vector<Node> >& inst) + : d_quant(q), d_inst(inst) + { + } + /** The quantified formula */ + Node d_quant; + /** The instantiation list */ + std::vector<std::vector<Node> > d_inst; +}; + +/** Print the instantiation list to stream out */ +std::ostream& operator<<(std::ostream& out, const InstantiationList& ilist); + +/** The list of skolemization for a quantified formula */ +struct SkolemList +{ + SkolemList(Node q, const std::vector<Node>& sks) : d_quant(q), d_sks(sks) {} + /** The quantified formula */ + Node d_quant; + /** The list of skolems for the quantified formula */ + std::vector<Node> d_sks; +}; + +/** Print the skolem list to stream out */ +std::ostream& operator<<(std::ostream& out, const SkolemList& skl); + +} // namespace CVC4 + +#endif /* CVC4__THEORY__QUANTIFIERS__INSTANTIATION_LIST_H */ |