diff options
author | Andrew Reynolds <andrew.j.reynolds@gmail.com> | 2017-10-20 14:52:31 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-10-20 14:52:31 -0500 |
commit | 78373c7f5fe93b7e8bbea10e3924f24d25a618ac (patch) | |
tree | b3bd84e3d2154a4835679c71c028e87dbe1e2665 /src/theory/quantifiers/sygus_grammar_cons.cpp | |
parent | fc0a5dcc002b12f075681d53e87cca1ddfbd479d (diff) |
Make Sygus conjectures higher-order (#1244)
* Represent sygus synthesis conjectures using higher-order quantification, remove associated hacks.
* Minor fix
* Fix bug in Node::hasBoundVar for non-ground operators.
* Add regression.
* Address review.
* Apply clang format.
Diffstat (limited to 'src/theory/quantifiers/sygus_grammar_cons.cpp')
-rw-r--r-- | src/theory/quantifiers/sygus_grammar_cons.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/theory/quantifiers/sygus_grammar_cons.cpp b/src/theory/quantifiers/sygus_grammar_cons.cpp index 2eb541e66..6152417a5 100644 --- a/src/theory/quantifiers/sygus_grammar_cons.cpp +++ b/src/theory/quantifiers/sygus_grammar_cons.cpp @@ -83,9 +83,11 @@ Node CegGrammarConstructor::process( Node q, std::map< Node, Node >& templates, std::vector< Node > ebvl; Node qbody_subs = q[1]; for( unsigned i=0; i<q[0].getNumChildren(); i++ ){ - Node v = q[0][i]; - Node sf = v.getAttribute(SygusSynthFunAttribute()); - Assert( !sf.isNull() ); + Node sf = q[0][i]; + // v encodes the syntactic restrictions (via an inductive datatype) on sf + // from the input + Node v = sf.getAttribute(SygusSynthGrammarAttribute()); + Assert(!v.isNull()); Node sfvl = sf.getAttribute(SygusSynthFunVarListAttribute()); // sfvl may be null for constant synthesis functions Trace("cegqi-debug") << "...sygus var list associated with " << sf << " is " << sfvl << std::endl; |