summaryrefslogtreecommitdiff
path: root/src/theory/quantifiers/term_database.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/theory/quantifiers/term_database.cpp')
-rw-r--r--src/theory/quantifiers/term_database.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/theory/quantifiers/term_database.cpp b/src/theory/quantifiers/term_database.cpp
index 0b606ecf0..3f6f2a6ed 100644
--- a/src/theory/quantifiers/term_database.cpp
+++ b/src/theory/quantifiers/term_database.cpp
@@ -1031,6 +1031,14 @@ void TermDb::computeAttributes( Node q ) {
if( avar.getAttribute(FunDefAttribute()) ){
Trace("quant-attr") << "Attribute : function definition : " << q << std::endl;
d_qattr_fundef[q] = true;
+ Assert( q[1].getKind()==EQUAL || q[1].getKind()==IFF );
+ Assert( q[1][0].getKind()==APPLY_UF );
+ Node f = q[1][0].getOperator();
+ if( d_fun_defs.find( f )!=d_fun_defs.end() ){
+ Message() << "Cannot define function " << f << " more than once." << std::endl;
+ exit( 0 );
+ }
+ d_fun_defs[f] = true;
}
if( avar.getAttribute(SygusAttribute()) ){
//should be nested existential
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback