diff options
author | Andrew Reynolds <andrew.j.reynolds@gmail.com> | 2020-03-12 14:42:45 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-03-12 14:42:45 -0500 |
commit | 9803bedfdfe42bf472654ed8e11bcc888de5df67 (patch) | |
tree | 606a8ab6c334656d3268426521a8724e0101483d /src/theory | |
parent | 83a18f98dddbd635db3823dd18b7bdf22b020869 (diff) |
Do not make models for quantified function variables (#4039)
If we combine finite model finding and higher-order, then we could try to find a model find operators whose kind was BOUND_VARIABLE.
Diffstat (limited to 'src/theory')
-rw-r--r-- | src/theory/quantifiers/first_order_model.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/theory/quantifiers/first_order_model.cpp b/src/theory/quantifiers/first_order_model.cpp index 2b7f78008..1498e54a6 100644 --- a/src/theory/quantifiers/first_order_model.cpp +++ b/src/theory/quantifiers/first_order_model.cpp @@ -356,8 +356,14 @@ void FirstOrderModelFmc::processInitialize( bool ispre ) { void FirstOrderModelFmc::processInitializeModelForTerm(Node n) { if( n.getKind()==APPLY_UF ){ - if( d_models.find(n.getOperator())==d_models.end()) { - d_models[n.getOperator()] = new Def; + // cannot be a bound variable + Node op = n.getOperator(); + if (op.getKind() != BOUND_VARIABLE) + { + if (d_models.find(op) == d_models.end()) + { + d_models[op] = new Def; + } } } } |