diff options
author | ajreynol <reynolds@larapc05.epfl.ch> | 2014-06-03 14:01:01 +0200 |
---|---|---|
committer | ajreynol <reynolds@larapc05.epfl.ch> | 2014-06-03 14:01:08 +0200 |
commit | 6480823e5620b316b4c319453f45f6d7d452e2b1 (patch) | |
tree | c94fbf4956aa983906d99105d7d89906739d6290 /src/theory/quantifiers/trigger.cpp | |
parent | 30e1feed2331bb44338363228fe73e82ab7c7c3d (diff) |
Support E-matching/QCF for Set operators.
Diffstat (limited to 'src/theory/quantifiers/trigger.cpp')
-rw-r--r-- | src/theory/quantifiers/trigger.cpp | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/theory/quantifiers/trigger.cpp b/src/theory/quantifiers/trigger.cpp index 3de12b9c9..77a4efff5 100644 --- a/src/theory/quantifiers/trigger.cpp +++ b/src/theory/quantifiers/trigger.cpp @@ -323,9 +323,16 @@ bool Trigger::isUsableTrigger( Node n, Node f ){ } bool Trigger::isAtomicTrigger( Node n ){ - return ( n.getKind()==APPLY_UF && !n.getOperator().getAttribute(NoMatchAttribute()) ) || n.getKind()==SELECT || n.getKind()==STORE || - n.getKind()==APPLY_CONSTRUCTOR || n.getKind()==APPLY_SELECTOR_TOTAL || n.getKind()==APPLY_TESTER; + Kind k = n.getKind(); + return ( k==APPLY_UF && !n.getOperator().getAttribute(NoMatchAttribute()) ) || + ( k!=APPLY_UF && isAtomicTriggerKind( k ) ); } +bool Trigger::isAtomicTriggerKind( Kind k ) { + return k==APPLY_UF || k==SELECT || k==STORE || + k==APPLY_CONSTRUCTOR || k==APPLY_SELECTOR_TOTAL || k==APPLY_TESTER || + k==UNION || k==INTERSECTION || k==SUBSET || k==SETMINUS || k==MEMBER || k==SET_SINGLETON; +} + bool Trigger::isSimpleTrigger( Node n ){ if( isAtomicTrigger( n ) ){ for( int i=0; i<(int)n.getNumChildren(); i++ ){ |