summaryrefslogtreecommitdiff
path: root/src/theory/quantifiers
diff options
context:
space:
mode:
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>2012-09-13 20:39:13 +0000
committerAndrew Reynolds <andrew.j.reynolds@gmail.com>2012-09-13 20:39:13 +0000
commit01dfa806851502267e1032483fec48e8b4373634 (patch)
tree8103a5a5a763fecfc42793bf5c3c88290bff775b /src/theory/quantifiers
parentdce6be13f8eb90006c7ceb8d43a8a78da23ca838 (diff)
ensure that get-value and get-model are consistent, rewrite function value bodies, do not dag-ify model output
Diffstat (limited to 'src/theory/quantifiers')
-rw-r--r--src/theory/quantifiers/first_order_model.cpp23
-rw-r--r--src/theory/quantifiers/first_order_model.h1
2 files changed, 2 insertions, 22 deletions
diff --git a/src/theory/quantifiers/first_order_model.cpp b/src/theory/quantifiers/first_order_model.cpp
index b03261195..6e3e27828 100644
--- a/src/theory/quantifiers/first_order_model.cpp
+++ b/src/theory/quantifiers/first_order_model.cpp
@@ -94,33 +94,14 @@ void FirstOrderModel::initializeModelForTerm( Node n ){
}
Node FirstOrderModel::getInterpretedValue( TNode n ){
- Debug("fo-model") << "get interpreted value " << n << std::endl;
+ Trace("fo-model") << "get interpreted value " << n << std::endl;
TypeNode type = n.getType();
if( type.isFunction() || type.isPredicate() ){
if( d_uf_model_tree.find( n )!=d_uf_model_tree.end() ){
if( d_uf_models.find( n )==d_uf_models.end() ){
- //use the model tree to generate the model
d_uf_models[n] = d_uf_model_tree[n].getFunctionValue( "$x" );
}
- return d_uf_models[n];
}
- /*
- }else if( type.isArray() ){
- if( d_array_model.find( n )!=d_array_model.end() ){
- return d_array_model[n].getArrayValue();
- }else{
- //std::cout << "no array model generated for " << n << std::endl;
- }
- */
- }else if( n.getKind()==APPLY_UF ){
- Node op = n.getOperator();
- if( d_uf_model_tree.find( op )!=d_uf_model_tree.end() ){
- //consult the uf model
- int depIndex;
- return d_uf_model_tree[ op ].getValue( this, n, depIndex );
- }
- }else if( n.getKind()==SELECT ){
-
}
return DefaultModel::getInterpretedValue( n );
}
@@ -274,7 +255,7 @@ Node FirstOrderModel::evaluateTerm( Node n, int& depIndex, RepSetIterator* ri ){
if( !n.hasAttribute(InstConstantAttribute()) ){
//if evaluating a ground term, just consult the standard getValue functionality
depIndex = -1;
- return getModelValue( n );
+ return getValue( n );
}else{
Node val;
depIndex = ri->getNumTerms()-1;
diff --git a/src/theory/quantifiers/first_order_model.h b/src/theory/quantifiers/first_order_model.h
index e66bf8040..1fc4fd76e 100644
--- a/src/theory/quantifiers/first_order_model.h
+++ b/src/theory/quantifiers/first_order_model.h
@@ -87,7 +87,6 @@ public:
void initialize( bool considerAxioms = true );
/** to stream function */
void toStream( std::ostream& out );
-
//the following functions are for evaluating quantifier bodies
public:
/** reset evaluation */
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback