summaryrefslogtreecommitdiff
path: root/src/theory/quantifiers/sygus/cegis_unif.cpp
diff options
context:
space:
mode:
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>2018-04-29 22:25:42 -0500
committerGitHub <noreply@github.com>2018-04-29 22:25:42 -0500
commit58985bed1bb0a812d97b3d490268023a164ba5e5 (patch)
treef2df8f6f918d6f394e6c74e771e56cacbdb279ad /src/theory/quantifiers/sygus/cegis_unif.cpp
parentb260533f7b2c5fc217fa0f5036ab121249829bd4 (diff)
Allow multiple functions in sygus unif approaches (#1831)
Diffstat (limited to 'src/theory/quantifiers/sygus/cegis_unif.cpp')
-rw-r--r--src/theory/quantifiers/sygus/cegis_unif.cpp13
1 files changed, 6 insertions, 7 deletions
diff --git a/src/theory/quantifiers/sygus/cegis_unif.cpp b/src/theory/quantifiers/sygus/cegis_unif.cpp
index 7794ec912..256955bbd 100644
--- a/src/theory/quantifiers/sygus/cegis_unif.cpp
+++ b/src/theory/quantifiers/sygus/cegis_unif.cpp
@@ -44,7 +44,7 @@ bool CegisUnif::initialize(Node n,
d_candidate = candidates[0];
Trace("cegis-unif") << "Initialize unif utility for " << d_candidate
<< "...\n";
- d_sygus_unif.initialize(d_qe, d_candidate, d_enums, lemmas);
+ d_sygus_unif.initialize(d_qe, candidates, d_enums, lemmas);
Assert(!d_enums.empty());
Trace("cegis-unif") << "Initialize " << d_enums.size() << " enumerators for "
<< d_candidate << "...\n";
@@ -129,14 +129,13 @@ bool CegisUnif::constructCandidates(const std::vector<Node>& enums,
}
/* build candidate solution */
Assert(candidates.size() == 1);
- Node vc = d_sygus_unif.constructSolution();
- Trace("cegis-unif-enum") << "... candidate solution :" << vc << "\n";
- if (vc.isNull())
+ if (d_sygus_unif.constructSolution(candidate_values))
{
- return false;
+ Node vc = candidate_values[0];
+ Trace("cegis-unif-enum") << "... candidate solution :" << vc << "\n";
+ return true;
}
- candidate_values.push_back(vc);
- return true;
+ return false;
}
Node CegisUnif::purifyLemma(Node n,
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback