summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorajreynol <andrew.j.reynolds@gmail.com>2015-06-25 14:06:06 +0200
committerajreynol <andrew.j.reynolds@gmail.com>2015-06-25 14:06:06 +0200
commite4cff69e3b565e928dbf04960249477ce2c9ef6b (patch)
tree832c4da8df660342c5ade566d854f8a3b2d5128f /src
parentbfb9c562ac509a0c7b00e53c17aab5cda83129ac (diff)
Do not assert fail for fmf empty domains. Fixes bug 644.
Diffstat (limited to 'src')
-rw-r--r--src/theory/quantifiers/first_order_model.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/theory/quantifiers/first_order_model.cpp b/src/theory/quantifiers/first_order_model.cpp
index 5cb8cf278..346631889 100644
--- a/src/theory/quantifiers/first_order_model.cpp
+++ b/src/theory/quantifiers/first_order_model.cpp
@@ -675,10 +675,11 @@ Node FirstOrderModelFmc::getFunctionValue(Node op, const char* argPrefix ) {
//check if it is a constant introduced as a representative not existing in the model's equality engine
if( !d_rep_set.hasRep( tn, v ) ){
if( d_rep_set.d_type_reps.find( tn )!=d_rep_set.d_type_reps.end() && !d_rep_set.d_type_reps[ tn ].empty() ){
- //see full_model_check.cpp line 366
v = d_rep_set.d_type_reps[tn][ d_rep_set.d_type_reps[tn].size()-1 ];
}else{
- Assert( false );
+ //can happen for types not involved in quantified formulas
+ Trace("fmc-model-func") << "No type rep for " << tn << std::endl;
+ v = d_qe->getTermDatabase()->getEnumerateTerm( tn, 0 );
}
Trace("fmc-model-func") << "No term, assign " << v << std::endl;
}
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback