summaryrefslogtreecommitdiff
path: root/src/theory/quantifiers/term_database.cpp
diff options
context:
space:
mode:
authorajreynol <andrew.j.reynolds@gmail.com>2014-10-28 14:28:31 +0100
committerajreynol <andrew.j.reynolds@gmail.com>2014-10-28 14:28:31 +0100
commit55323fd7283d758caf31e637be237d2416b86167 (patch)
tree250940ce676196591ddc35bed7291991545e6271 /src/theory/quantifiers/term_database.cpp
parent3ff5a32a45f2830acc4600b38332a287db4cf60a (diff)
Initial infrastructure for function definition quantifiers, internal parsing format for Smt2.
Diffstat (limited to 'src/theory/quantifiers/term_database.cpp')
-rw-r--r--src/theory/quantifiers/term_database.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/theory/quantifiers/term_database.cpp b/src/theory/quantifiers/term_database.cpp
index 9c1eeb9b4..3a9353de9 100644
--- a/src/theory/quantifiers/term_database.cpp
+++ b/src/theory/quantifiers/term_database.cpp
@@ -1015,6 +1015,10 @@ void TermDb::computeAttributes( Node q ) {
Trace("quant-attr") << "Attribute : conjecture : " << q << std::endl;
d_qattr_conjecture[q] = true;
}
+ if( avar.getAttribute(FunDefAttribute()) ){
+ Trace("quant-attr") << "Attribute : function definition : " << q << std::endl;
+ d_qattr_fundef[q] = true;
+ }
if( avar.getAttribute(SygusAttribute()) ){
//should be nested existential
Assert( q[1].getKind()==NOT );
@@ -1074,6 +1078,15 @@ bool TermDb::isQAttrAxiom( Node q ) {
}
}
+bool TermDb::isQAttrFunDef( Node q ) {
+ std::map< Node, bool >::iterator it = d_qattr_fundef.find( q );
+ if( it==d_qattr_fundef.end() ){
+ return false;
+ }else{
+ return it->second;
+ }
+}
+
bool TermDb::isQAttrSygus( Node q ) {
std::map< Node, bool >::iterator it = d_qattr_sygus.find( q );
if( it==d_qattr_sygus.end() ){
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback