From 1dbc8aa695772daf2c83d10a7adb8123f97fa16f Mon Sep 17 00:00:00 2001 From: Ying Sheng Date: Fri, 10 Jul 2020 12:19:17 -0700 Subject: [Interpolation] Add interface for SyGuS interpolation module (#4677) This is the second step of adding Interpolation. The whole change will be adding the API for (get-interpol s B), which is aim for computes an I that A->I and I->B. Here A is the assertions in the stack. The second step creates the component for computing interpolation, while omits the implementation. --- src/theory/quantifiers/sygus/sygus_interpol.cpp | 93 +++++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 src/theory/quantifiers/sygus/sygus_interpol.cpp (limited to 'src/theory/quantifiers/sygus/sygus_interpol.cpp') diff --git a/src/theory/quantifiers/sygus/sygus_interpol.cpp b/src/theory/quantifiers/sygus/sygus_interpol.cpp new file mode 100644 index 000000000..77b193a75 --- /dev/null +++ b/src/theory/quantifiers/sygus/sygus_interpol.cpp @@ -0,0 +1,93 @@ +/********************* */ +/*! \file sygus_interpol.cpp + ** \verbatim + ** Top contributors (to current version): + ** Ying Sheng + ** 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 Implementation of sygus interpolation utility, which + ** transforms an input of axioms and conjecture into an interpolation problem, + *and solve it. + **/ + +#include "theory/quantifiers/sygus/sygus_interpol.h" + +#include "expr/datatype.h" +#include "expr/dtype.h" +#include "expr/node_algorithm.h" +#include "expr/sygus_datatype.h" +#include "options/smt_options.h" +#include "printer/sygus_print_callback.h" +#include "theory/datatypes/sygus_datatype_utils.h" +#include "theory/quantifiers/quantifiers_attributes.h" +#include "theory/quantifiers/quantifiers_rewriter.h" +#include "theory/quantifiers/sygus/sygus_grammar_cons.h" +#include "theory/quantifiers/term_util.h" +#include "theory/rewriter.h" + +namespace CVC4 { +namespace theory { +namespace quantifiers { + +SygusInterpol::SygusInterpol() {} + +SygusInterpol::SygusInterpol(LogicInfo logic) : d_logic(logic) {} + +void SygusInterpol::collectSymbols(const std::vector& axioms, + const Node& conj) +{ +} + +void SygusInterpol::createVariables(bool needsShared) +{ +} + +std::map > getIncludeCons( + const std::vector& assumptions, const Node& conclusion) +{ + std::map > result = + std::map >(); + return result; +} + +TypeNode SygusInterpol::setSynthGrammar(const TypeNode& itpGType, + const std::vector& axioms, + const Node& conj) +{ + TypeNode itpGTypeS; + return itpGTypeS; +} + +Node SygusInterpol::mkPredicate(const std::string& name) +{ + Node itp; + return itp; +} + +void SygusInterpol::mkSygusConjecture(Node itp, + const std::vector& axioms, + const Node& conj) +{ +} + +bool SygusInterpol::findInterpol(Expr& interpol, Node itp) +{ + return false; +} + +bool SygusInterpol::SolveInterpolation(const std::string& name, + const std::vector& axioms, + const Node& conj, + const TypeNode& itpGType, + Expr& interpol) +{ + return false; +} + +} // namespace quantifiers +} // namespace theory +} // namespace CVC4 -- cgit v1.2.3