Node SygusEnumerator::TermEnumMasterInterp::getCurrent() { return *d_te; }
bool SygusEnumerator::TermEnumMasterInterp::increment()
{
+ if (d_te.isFinished())
+ {
+ return false;
+ }
SygusEnumerator::TermCache& tc = d_se->d_tcache[d_tn];
Node curr = getCurrent();
tc.addTerm(curr);
regress1/sygus/nia-max-square-ns.sy
regress1/sygus/no-flat-simp.sy
regress1/sygus/no-mention.sy
+ regress1/sygus/once_2.sy
regress1/sygus/only-const-grammar.sy
regress1/sygus/parity-si-rcons.sy
regress1/sygus/pbe_multi.sy
--- /dev/null
+; EXPECT: unsat
+; COMMAND-LINE: --lang=sygus2 --sygus-out=status
+(set-logic BV)
+
+(define-sort Stream () (_ BitVec 2))
+
+(define-fun BV_ONE () Stream (_ bv1 2))
+
+(define-fun
+ O ( (X Stream) ) Stream
+ (bvneg (bvand X (bvnot (bvsub X BV_ONE))))
+)
+
+(synth-fun op ((x Stream)) Stream
+ (( y_term Stream))
+ (( y_term Stream (
+ ( Constant Stream)
+ ( Variable Stream)
+ ( bvnot y_term )
+ ( bvand y_term y_term )
+ ( bvor y_term y_term )
+ ( bvneg y_term )
+ ( bvadd y_term y_term )
+ ( bvsub y_term y_term )
+ ( bvmul y_term y_term )
+ ( bvudiv y_term y_term )
+ ( bvurem y_term y_term )
+ ( bvshl y_term y_term )
+ ( bvlshr y_term y_term )
+ ))
+))
+
+(define-fun C ((x Stream)) Bool
+ (= (op x) (O x))
+)
+
+(constraint (and
+(C (_ bv0 2))
+(C (_ bv1 2))
+(C (_ bv2 2))
+(C (_ bv3 2))
+))
+
+(check-synth)