Update checkSynth and checkSynthNext to return SynthResult (#8382)
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>
Fri, 25 Mar 2022 20:00:14 +0000 (15:00 -0500)
committerGitHub <noreply@github.com>
Fri, 25 Mar 2022 20:00:14 +0000 (20:00 +0000)
Also extends to non-trivial unit test of SynthResult.

Note this also changes the expected output when using --sygus-out=status from unsat/sat/unknown to feasible/infeasible/fail (the option is used mostly just for our regressions). The output mode status-or-def is now equivalent to standard and is hence deleted.

233 files changed:
examples/api/cpp/sygus-fun.cpp
examples/api/cpp/sygus-grammar.cpp
examples/api/cpp/sygus-inv.cpp
examples/api/java/SygusFun.java
examples/api/java/SygusGrammar.java
examples/api/java/SygusInv.java
examples/api/python/sygus-fun.py
examples/api/python/sygus-grammar.py
examples/api/python/sygus-inv.py
src/api/cpp/cvc5.cpp
src/api/cpp/cvc5.h
src/api/java/io/github/cvc5/api/Solver.java
src/api/java/jni/solver.cpp
src/api/python/cvc5.pxd
src/api/python/cvc5.pxi
src/options/smt_options.toml
src/smt/command.cpp
src/smt/command.h
src/smt/solver_engine.cpp
src/smt/solver_engine.h
src/smt/solver_engine_state.cpp
src/smt/solver_engine_state.h
src/smt/sygus_solver.cpp
src/smt/sygus_solver.h
src/theory/quantifiers/sygus/sygus_interpol.cpp
test/regress/cli/regress0/sygus/General_plus10.sy
test/regress/cli/regress0/sygus/aig-si.sy
test/regress/cli/regress0/sygus/array-grammar-select.sy
test/regress/cli/regress0/sygus/assume-simple.sy
test/regress/cli/regress0/sygus/c100.sy
test/regress/cli/regress0/sygus/ccp16.lus.sy
test/regress/cli/regress0/sygus/cegqi-si-string-triv-2fun.sy
test/regress/cli/regress0/sygus/cegqi-si-string-triv.sy
test/regress/cli/regress0/sygus/check-generic-red.sy
test/regress/cli/regress0/sygus/const-var-test.sy
test/regress/cli/regress0/sygus/dt-no-syntax.sy
test/regress/cli/regress0/sygus/dt-sel-parse1.sy
test/regress/cli/regress0/sygus/hd-05-d1-prog-nogrammar.sy
test/regress/cli/regress0/sygus/ho-occ-synth-fun.sy
test/regress/cli/regress0/sygus/incremental-modify-ex.sy
test/regress/cli/regress0/sygus/inv-different-var-order.sy
test/regress/cli/regress0/sygus/issue3624.sy
test/regress/cli/regress0/sygus/issue4383-cache-fv-id.sy
test/regress/cli/regress0/sygus/issue4790-dtd.sy
test/regress/cli/regress0/sygus/issue6298-par.sy
test/regress/cli/regress0/sygus/let-ringer.sy
test/regress/cli/regress0/sygus/let-simp.sy
test/regress/cli/regress0/sygus/no-logic.sy
test/regress/cli/regress0/sygus/no-syntax-test-bool.sy
test/regress/cli/regress0/sygus/no-syntax-test.sy
test/regress/cli/regress0/sygus/parity-AIG-d0.sy
test/regress/cli/regress0/sygus/parse-bv-let.sy
test/regress/cli/regress0/sygus/pbe-pred-contra.sy
test/regress/cli/regress0/sygus/real-si-all.sy
test/regress/cli/regress0/sygus/strings-unconstrained.sy
test/regress/cli/regress0/sygus/sygus-no-wf.sy
test/regress/cli/regress0/sygus/sygus-uf.sy
test/regress/cli/regress0/sygus/uminus_one.sy
test/regress/cli/regress0/sygus/univ_3-long-repeat-conflict.sy
test/regress/cli/regress1/sygus/Base16_1.sy
test/regress/cli/regress1/sygus/VC22_a.sy
test/regress/cli/regress1/sygus/abv.sy
test/regress/cli/regress1/sygus/array-grammar-store.sy
test/regress/cli/regress1/sygus/array-uc.sy
test/regress/cli/regress1/sygus/array_search_2.sy
test/regress/cli/regress1/sygus/array_search_5-Q-easy.sy
test/regress/cli/regress1/sygus/array_sum_2_5.sy
test/regress/cli/regress1/sygus/bvudiv-by-2.sy
test/regress/cli/regress1/sygus/car_3.lus.sy
test/regress/cli/regress1/sygus/cegar1.sy
test/regress/cli/regress1/sygus/cegis-unif-inv-eq-fair.sy
test/regress/cli/regress1/sygus/cggmp.sy
test/regress/cli/regress1/sygus/clock-inc-tuple.sy
test/regress/cli/regress1/sygus/coeff-solve-inv.sy
test/regress/cli/regress1/sygus/commutative.sy
test/regress/cli/regress1/sygus/complex-no-rewrite.sy
test/regress/cli/regress1/sygus/complex-rewrite-in-db.sy
test/regress/cli/regress1/sygus/concat_extract_example.sy
test/regress/cli/regress1/sygus/constant-bool-si-all.sy
test/regress/cli/regress1/sygus/constant-dec-tree-bug.sy
test/regress/cli/regress1/sygus/constant-ite-bv.sy
test/regress/cli/regress1/sygus/constant.sy
test/regress/cli/regress1/sygus/crci-ssb-unk.sy
test/regress/cli/regress1/sygus/crcy-si-rcons.sy
test/regress/cli/regress1/sygus/crcy-si.sy
test/regress/cli/regress1/sygus/cube-nia.sy
test/regress/cli/regress1/sygus/discPresent.sy
test/regress/cli/regress1/sygus/double.sy
test/regress/cli/regress1/sygus/dt-test-ns.sy
test/regress/cli/regress1/sygus/dup-op.sy
test/regress/cli/regress1/sygus/eq-sub-obs.sy
test/regress/cli/regress1/sygus/error1-dt.sy
test/regress/cli/regress1/sygus/eval-uc.sy
test/regress/cli/regress1/sygus/extract.sy
test/regress/cli/regress1/sygus/fast-enum-backtrack.sy
test/regress/cli/regress1/sygus/fg_polynomial3.sy
test/regress/cli/regress1/sygus/find_inv_eq_bvmul_4bit_withoutgrammar-v2.sy
test/regress/cli/regress1/sygus/find_sc_bvult_bvnot.sy
test/regress/cli/regress1/sygus/ground-ite-free-constant-si.sy
test/regress/cli/regress1/sygus/hd-01-d1-prog.sy
test/regress/cli/regress1/sygus/hd-19-d1-prog-dup-op.sy
test/regress/cli/regress1/sygus/hd-sdiv.sy
test/regress/cli/regress1/sygus/ho-sygus.sy
test/regress/cli/regress1/sygus/icfp_14.12-flip-args.sy
test/regress/cli/regress1/sygus/icfp_14.12.sy
test/regress/cli/regress1/sygus/icfp_14_12_diff_types.sy
test/regress/cli/regress1/sygus/icfp_28_10.sy
test/regress/cli/regress1/sygus/icfp_easy-ite.sy
test/regress/cli/regress1/sygus/incremental-stream-ex.sy
test/regress/cli/regress1/sygus/int-any-const.sy
test/regress/cli/regress1/sygus/inv-example.sy
test/regress/cli/regress1/sygus/inv-missed-sol-true.sy
test/regress/cli/regress1/sygus/inv-unused.sy
test/regress/cli/regress1/sygus/inv_gen_fig8.sy
test/regress/cli/regress1/sygus/issue2914.sy
test/regress/cli/regress1/sygus/issue2935.sy
test/regress/cli/regress1/sygus/issue3109-share-sel.sy
test/regress/cli/regress1/sygus/issue3320-quant.sy
test/regress/cli/regress1/sygus/issue3461.sy
test/regress/cli/regress1/sygus/issue3580.sy
test/regress/cli/regress1/sygus/issue3649.sy
test/regress/cli/regress1/sygus/issue3802-default-consts.sy
test/regress/cli/regress1/sygus/large-const-simp.sy
test/regress/cli/regress1/sygus/let-bug-simp.sy
test/regress/cli/regress1/sygus/list-head-x.sy
test/regress/cli/regress1/sygus/list_recursor.sy
test/regress/cli/regress1/sygus/logiccell_help.sy
test/regress/cli/regress1/sygus/max-all.sy
test/regress/cli/regress1/sygus/max-limit.sy
test/regress/cli/regress1/sygus/max-try1.sy
test/regress/cli/regress1/sygus/max-try2.sy
test/regress/cli/regress1/sygus/max.sy
test/regress/cli/regress1/sygus/max2-bv.sy
test/regress/cli/regress1/sygus/multi-fun-polynomial2.sy
test/regress/cli/regress1/sygus/nflat-fwd-3.sy
test/regress/cli/regress1/sygus/nflat-fwd.sy
test/regress/cli/regress1/sygus/nia-max-square-ns.sy
test/regress/cli/regress1/sygus/no-flat-simp.sy
test/regress/cli/regress1/sygus/no-mention.sy
test/regress/cli/regress1/sygus/node-discrete.sy
test/regress/cli/regress1/sygus/once_2.sy
test/regress/cli/regress1/sygus/only-const-grammar.sy
test/regress/cli/regress1/sygus/pLTL_5_trace.sy
test/regress/cli/regress1/sygus/parity-si-rcons.sy
test/regress/cli/regress1/sygus/pbe_multi.sy
test/regress/cli/regress1/sygus/phone-1-long.sy
test/regress/cli/regress1/sygus/planning-unif.sy
test/regress/cli/regress1/sygus/process-10-vars.sy
test/regress/cli/regress1/sygus/qe.sy
test/regress/cli/regress1/sygus/rand_const.sy
test/regress/cli/regress1/sygus/rand_p_0.sy
test/regress/cli/regress1/sygus/rand_p_1.sy
test/regress/cli/regress1/sygus/re-concat.sy
test/regress/cli/regress1/sygus/real-any-const.sy
test/regress/cli/regress1/sygus/real-grammar.sy
test/regress/cli/regress1/sygus/rec-fun-swap.sy
test/regress/cli/regress1/sygus/rec-fun-sygus.sy
test/regress/cli/regress1/sygus/rec-fun-while-1.sy
test/regress/cli/regress1/sygus/rec-fun-while-2.sy
test/regress/cli/regress1/sygus/rec-fun-while-infinite.sy
test/regress/cli/regress1/sygus/repair-const-rl.sy
test/regress/cli/regress1/sygus/replicate-mod-assume.sy
test/regress/cli/regress1/sygus/replicate-mod.sy
test/regress/cli/regress1/sygus/rex-strings-alarm.sy
test/regress/cli/regress1/sygus/sets-pred-test.sy
test/regress/cli/regress1/sygus/simple-no-rewrite.sy
test/regress/cli/regress1/sygus/simple-not-in-grammar.sy
test/regress/cli/regress1/sygus/simple-regexp.sy
test/regress/cli/regress1/sygus/simple-rewrite-in-db.sy
test/regress/cli/regress1/sygus/simple-rewrite-not-in-db.sy
test/regress/cli/regress1/sygus/stopwatch-bt.sy
test/regress/cli/regress1/sygus/strings-any-term1.sy
test/regress/cli/regress1/sygus/strings-concat-3-args.sy
test/regress/cli/regress1/sygus/strings-double-rec.sy
test/regress/cli/regress1/sygus/strings-no-syntax.sy
test/regress/cli/regress1/sygus/strings-small.sy
test/regress/cli/regress1/sygus/strings-template-infer-unused.sy
test/regress/cli/regress1/sygus/strings-template-infer.sy
test/regress/cli/regress1/sygus/strings-trivial-simp.sy
test/regress/cli/regress1/sygus/strings-trivial-two-type.sy
test/regress/cli/regress1/sygus/strings-trivial.sy
test/regress/cli/regress1/sygus/sygus-dt.sy
test/regress/cli/regress1/sygus/sygus-lambda-fv.sy
test/regress/cli/regress1/sygus/sygus-uf-ex.sy
test/regress/cli/regress1/sygus/t8.sy
test/regress/cli/regress1/sygus/temp_input_to_synth_ic-error-121418.sy
test/regress/cli/regress1/sygus/tester.sy
test/regress/cli/regress1/sygus/tl-type-0.sy
test/regress/cli/regress1/sygus/tl-type-4x.sy
test/regress/cli/regress1/sygus/tl-type.sy
test/regress/cli/regress1/sygus/triv-type-mismatch-si.sy
test/regress/cli/regress1/sygus/twolets1.sy
test/regress/cli/regress1/sygus/twolets2-orig.sy
test/regress/cli/regress1/sygus/unbdd_inv_gen_winf1.sy
test/regress/cli/regress1/sygus/univ_2-long-repeat.sy
test/regress/cli/regress2/sygus/MPwL_d1s3.sy
test/regress/cli/regress2/sygus/array_sum_dd.sy
test/regress/cli/regress2/sygus/cegisunif-depth1-bv.sy
test/regress/cli/regress2/sygus/ex23.sy
test/regress/cli/regress2/sygus/examples-deq.sy
test/regress/cli/regress2/sygus/icfp_easy_mt_ite.sy
test/regress/cli/regress2/sygus/lustre-real.sy
test/regress/cli/regress2/sygus/max2-univ.sy
test/regress/cli/regress2/sygus/min_IC_1.sy
test/regress/cli/regress2/sygus/mpg_guard1-dd.sy
test/regress/cli/regress2/sygus/multi-udiv.sy
test/regress/cli/regress2/sygus/no-bad-filter.sy
test/regress/cli/regress2/sygus/no-syntax-test-no-si.sy
test/regress/cli/regress2/sygus/pbe_bvurem.sy
test/regress/cli/regress2/sygus/process-10-vars-2fun.sy
test/regress/cli/regress2/sygus/process-arg-invariance.sy
test/regress/cli/regress2/sygus/proj-issue119.sy
test/regress/cli/regress2/sygus/real-grammar-neg.sy
test/regress/cli/regress2/sygus/sets-fun-test.sy
test/regress/cli/regress2/sygus/strings-no-syntax-len.sy
test/regress/cli/regress2/sygus/sumn_recur_synth.sy
test/regress/cli/regress2/sygus/three.sy
test/regress/cli/regress3/DRAGON_1.lus.sy
test/regress/cli/regress3/cegisunif-depth1.sy
test/regress/cli/regress3/inv_gen_n_c11.sy
test/regress/cli/regress3/nia-max-square.sy
test/regress/cli/regress3/policyM.sy
test/regress/cli/regress3/sixfuncs.sy
test/regress/cli/regress3/strings-any-term.sy
test/regress/cli/regress3/unbdd_inv_gen_ex7.sy
test/regress/cli/regress3/unifpi-solve-car_1.lus.sy
test/regress/cli/regress3/vcb.sy
test/unit/api/cpp/solver_black.cpp
test/unit/api/cpp/synth_result_black.cpp
test/unit/api/java/SolverTest.java
test/unit/api/java/SynthResultTest.java
test/unit/api/python/test_solver.py
test/unit/api/python/test_synth_result.py

index 978e55fe60c4c3a63506e4bad64bc0b6afe53594..630598cacef4f1ad0f7be5969e74b42388905172 100644 (file)
@@ -129,7 +129,7 @@ int main()
       {slv.mkTerm(ADD, {max_x_y, min_x_y}), slv.mkTerm(ADD, {varX, varY})}));
 
   // print solutions if available
-  if (slv.checkSynth().isUnsat())
+  if (slv.checkSynth().hasSolution())
   {
     // Output should be equivalent to:
     // (
index 7be3cb0626b3dcf0cb094064b4591962d1016a38..4d543039c17dcd6436e1c228172a04f5e83c51e8 100644 (file)
@@ -116,7 +116,7 @@ int main()
       slv.mkTerm(EQUAL, {{id1_x, id2_x, id3_x, id4_x, varX}}));
 
   // print solutions if available
-  if (slv.checkSynth().isUnsat())
+  if (slv.checkSynth().hasSolution())
   {
     // Output should be equivalent to:
     // (
index 3b8edd53a2e5f41f5aca82afb2bf0d1e21ef9f35..ba7b5ff93f279e4994136e78abaf59047b0ddfc0 100644 (file)
@@ -85,7 +85,7 @@ int main()
   slv.addSygusInvConstraint(inv_f, pre_f, trans_f, post_f);
 
   // print solutions if available
-  if (slv.checkSynth().isUnsat())
+  if (slv.checkSynth().hasSolution())
   {
     // Output should be equivalent to:
     // (
index 07a0eebbc934271d6b5be12e2104d5cad07ad985..42a93e4f7cd0755944c4331d8cfe327ee9d742de 100644 (file)
@@ -125,7 +125,7 @@ public class SygusFun
           slv.mkTerm(EQUAL, slv.mkTerm(ADD, max_x_y, min_x_y), slv.mkTerm(ADD, varX, varY)));
 
       // print solutions if available
-      if (slv.checkSynth().isUnsat())
+      if (slv.checkSynth().hasSolution())
       {
         // Output should be equivalent to:
         // (
index 25233617b2a79bdfaa6ae3a4abea911ac7941162..ce59ab9c55409e1259b3b54175f1830bf660bdc0 100644 (file)
@@ -113,7 +113,7 @@ public class SygusGrammar
       slv.addSygusConstraint(slv.mkTerm(EQUAL, new Term[] {id1_x, id2_x, id3_x, id4_x, varX}));
 
       // print solutions if available
-      if (slv.checkSynth().isUnsat())
+      if (slv.checkSynth().hasSolution())
       {
         // Output should be equivalent to:
         // (
index f07a4816eeb778ec0450daf1d7fada7b138911c1..f1d611b2eae1d7742e2499317a79ff5f7c756146 100644 (file)
@@ -81,7 +81,7 @@ public class SygusInv
       slv.addSygusInvConstraint(inv_f, pre_f, trans_f, post_f);
 
       // print solutions if available
-      if (slv.checkSynth().isUnsat())
+      if (slv.checkSynth().hasSolution())
       {
         // Output should be equivalent to:
         // (
index 82f3d08a73f2b629394512887005dab9cba4b8b7..94cd26d6be173ea9784d1316d9564e6fd5008caa 100644 (file)
@@ -90,7 +90,7 @@ if __name__ == "__main__":
       Kind.Equal, slv.mkTerm(Kind.Add, max_x_y, min_x_y), slv.mkTerm(Kind.Add, varX, varY)))
 
   # print solutions if available
-  if (slv.checkSynth().isUnsat()):
+  if (slv.checkSynth().hasSolution()):
     # Output should be equivalent to:
     # (define-fun max ((x Int) (y Int)) Int (ite (<= x y) y x))
     # (define-fun min ((x Int) (y Int)) Int (ite (<= x y) x y))
index c6c158f793b60365b609ed01cbd05fecdf56f295..7c020e39dba43cf93c0ded5104d16f65636154cb 100644 (file)
@@ -82,7 +82,7 @@ if __name__ == "__main__":
   slv.addSygusConstraint(slv.mkTerm(Kind.And, [slv.mkTerm(Kind.Equal, id1_x, id2_x), slv.mkTerm(Kind.Equal, id1_x, id3_x), slv.mkTerm(Kind.Equal, id1_x, id4_x), slv.mkTerm(Kind.Equal, id1_x, varX)]))
 
   # print solutions if available
-  if (slv.checkSynth().isUnsat()):
+  if (slv.checkSynth().hasSolution()):
     # Output should be equivalent to:
     # (define-fun id1 ((x Int)) Int (+ x (+ x (- x))))
     # (define-fun id2 ((x Int)) Int x)
index 90a3deca7327073a22613ed787ae69376f628d33..0b96e9ccd0ba2ccca236812aa9ab9f043ce85fcd 100644 (file)
@@ -58,7 +58,7 @@ if __name__ == "__main__":
   slv.addSygusInvConstraint(inv_f, pre_f, trans_f, post_f)
 
   # print solutions if available
-  if slv.checkSynth().isUnsat():
+  if slv.checkSynth().hasSolution():
     # Output should be equivalent to:
     # (define-fun inv-f ((x Int)) Bool (not (>= x 11)))
     terms = [inv_f]
index b229ef65f42bc69d01a37bcc3eb768d1a8376a0d..8a269a24157b3de746a4c38f571f740495c98204 100644 (file)
@@ -7626,7 +7626,7 @@ void Solver::addSygusInvConstraint(Term inv,
   CVC5_API_TRY_CATCH_END;
 }
 
-Result Solver::checkSynth() const
+SynthResult Solver::checkSynth() const
 {
   CVC5_API_TRY_CATCH_BEGIN;
   CVC5_API_CHECK(d_slv->getOptions().quantifiers.sygus)
@@ -7637,7 +7637,7 @@ Result Solver::checkSynth() const
   CVC5_API_TRY_CATCH_END;
 }
 
-Result Solver::checkSynthNext() const
+SynthResult Solver::checkSynthNext() const
 {
   CVC5_API_TRY_CATCH_BEGIN;
   CVC5_API_CHECK(d_slv->getOptions().quantifiers.sygus)
index a7ed927df3925e9603c498bb4c1da76c7ccbcb2a..026a7365b396796027fbc9f8590e112b10aa99e7 100644 (file)
@@ -4752,10 +4752,12 @@ class CVC5_EXPORT Solver
    *     (check-synth)
    * \endverbatim
    *
-   * @return the result of the check, which is unsat if the check succeeded,
-   * in which case solutions are available via getSynthSolutions.
+   * @return the result of the check, which is "solution" if the check found a
+   *         solution in which case solutions are available via
+   *         getSynthSolutions, "no solution" if it was determined there is no
+   *         solution, or "unknown" otherwise.
    */
-  Result checkSynth() const;
+  SynthResult checkSynth() const;
 
   /**
    * Try to find a next solution for the synthesis conjecture corresponding to
@@ -4771,10 +4773,12 @@ class CVC5_EXPORT Solver
    *     (check-synth-next)
    * \endverbatim
    *
-   * @return the result of the check, which is unsat if the check succeeded,
-   * in which case solutions are available via getSynthSolutions.
+   * @return the result of the check, which is "solution" if the check found a
+   *         solution in which case solutions are available via
+   *         getSynthSolutions, "no solution" if it was determined there is no
+   *         solution, or "unknown" otherwise.
    */
-  Result checkSynthNext() const;
+  SynthResult checkSynthNext() const;
 
   /**
    * Get the synthesis solution of the given term. This method should be called
index 32b5c4adcd3618253a208f66b50fec6e7d9b4976..01fe033b41426aee825c0606042c4975d96fc54f 100644 (file)
@@ -2636,13 +2636,14 @@ public class Solver implements IPointer, AutoCloseable
    * {@code
    *   ( check-synth )
    * }
-   * @return the result of the check, which is unsat if the check succeeded,
-   * in which case solutions are available via getSynthSolutions.
+   * @return the result of the check, which is "solution" if the check found a
+   *         solution in which case solutions are available via
+   *         getSynthSolutions, "no solution" if it was determined there is no
+   *         solution, or "unknown" otherwise.
    */
-  public Result checkSynth()
-  {
+  public SynthResult checkSynth() {
     long resultPointer = checkSynth(pointer);
-    return new Result(this, resultPointer);
+    return new SynthResult(this, resultPointer);
   }
 
   private native long checkSynth(long pointer);
@@ -2656,13 +2657,14 @@ public class Solver implements IPointer, AutoCloseable
    * {@code
    *   ( check-synth-next )
    * }
-   * @return the result of the check, which is UNSAT if the check succeeded,
-   * in which case solutions are available via getSynthSolutions.
+   * @return the result of the check, which is "solution" if the check found a
+   *         solution in which case solutions are available via
+   *         getSynthSolutions, "no solution" if it was determined there is no
+   *         solution, or "unknown" otherwise.
    */
-  public Result checkSynthNext()
-  {
+  public SynthResult checkSynthNext() {
     long resultPointer = checkSynthNext(pointer);
-    return new Result(this, resultPointer);
+    return new SynthResult(this, resultPointer);
   }
 
   private native long checkSynthNext(long pointer);
index 87caff1b0f7fa53a2fcf244aa255c4cfb3593c23..b8a2e27390eedbe286558fe784bc85caf85ace31 100644 (file)
@@ -2608,7 +2608,7 @@ JNIEXPORT jlong JNICALL Java_io_github_cvc5_api_Solver_checkSynth(JNIEnv* env,
 {
   CVC5_JAVA_API_TRY_CATCH_BEGIN;
   Solver* solver = reinterpret_cast<Solver*>(pointer);
-  Result* retPointer = new Result(solver->checkSynth());
+  SynthResult* retPointer = new SynthResult(solver->checkSynth());
   return reinterpret_cast<jlong>(retPointer);
   CVC5_JAVA_API_TRY_CATCH_END_RETURN(env, 0);
 }
@@ -2623,7 +2623,7 @@ JNIEXPORT jlong JNICALL Java_io_github_cvc5_api_Solver_checkSynthNext(
 {
   CVC5_JAVA_API_TRY_CATCH_BEGIN;
   Solver* solver = reinterpret_cast<Solver*>(pointer);
-  Result* retPointer = new Result(solver->checkSynthNext());
+  SynthResult* retPointer = new SynthResult(solver->checkSynthNext());
   return reinterpret_cast<jlong>(retPointer);
   CVC5_JAVA_API_TRY_CATCH_END_RETURN(env, 0);
 }
index f133f324dc4992b79041edd1048fbeac8a92734a..a5ca0470e5bf8388d1536e7f5063b5fffc2bcc4d 100644 (file)
@@ -252,8 +252,8 @@ cdef extern from "api/cpp/cvc5.h" namespace "cvc5::api":
         void addSygusInvConstraint(Term inv_f, Term pre_f, Term trans_f, Term post_f) except +
         Term synthFun(const string& symbol, const vector[Term]& bound_vars, Sort sort) except +
         Term synthFun(const string& symbol, const vector[Term]& bound_vars, Sort sort, Grammar grammar) except +
-        Result checkSynth() except +
-        Result checkSynthNext() except +
+        SynthResult checkSynth() except +
+        SynthResult checkSynthNext() except +
         Term getSynthSolution(Term t) except +
         vector[Term] getSynthSolutions(const vector[Term]& terms) except +
         Term synthInv(const string& symbol, const vector[Term]& bound_vars) except +
index 354adaed193a653e9258132c73189597ddceb3ef..cece9c3fbb6f5aa6faf3fb72e9f7cd82f80d9b64 100644 (file)
@@ -1678,9 +1678,12 @@ cdef class Solver:
 
             ( check-synth )
 
-        :return: the result of the synthesis conjecture.
+        :return: the result of the check, which is "solution" if the check
+                 found a solution in which case solutions are available via
+                 getSynthSolutions, "no solution" if it was determined there is
+                 no solution, or "unknown" otherwise.
         """
-        cdef Result r = Result()
+        cdef SynthResult r = SynthResult()
         r.cr = self.csolver.checkSynth()
         return r
 
@@ -1697,10 +1700,12 @@ cdef class Solver:
 
             ( check-synth )
 
-        :return: the result of the check, which is unsat if the check succeeded,
-                 in which case solutions are available via getSynthSolutions.
+        :return: the result of the check, which is "solution" if the check
+                 found a solution in which case solutions are available via
+                 getSynthSolutions, "no solution" if it was determined there is
+                 no solution, or "unknown" otherwise.
         """
-        cdef Result r = Result()
+        cdef SynthResult r = SynthResult()
         r.cr = self.csolver.checkSynthNext()
         return r
 
index 3b3f9e240963509b49aa02d71e9eb252baa6a05a..30da2e1defe7899e9a393bea5c53664b44aaef2f 100644 (file)
@@ -165,9 +165,6 @@ name   = "SMT Layer"
 [[option.mode.STATUS_AND_DEF]]
   name = "status-and-def"
   help = "Print status followed by definition corresponding to solution."
-[[option.mode.STATUS_OR_DEF]]
-  name = "status-or-def"
-  help = "Print status if infeasible, or definition corresponding to solution if feasible."
 [[option.mode.STANDARD]]
   name = "sygus-standard"
   help = "Print based on SyGuS standard."
index 04dbc77bbca08dd73b2f2fca1134aab715c75fea..f7772dab635c63cef8a2b37f19ff186689ca781e 100644 (file)
@@ -774,21 +774,25 @@ void CheckSynthCommand::invoke(api::Solver* solver, SymbolManager* sm)
     d_commandStatus = CommandSuccess::instance();
     d_solution.clear();
     // check whether we should print the status
-    if (!d_result.isUnsat()
+    if (!d_result.hasSolution()
         || options::sygusOut() == options::SygusSolutionOutMode::STATUS_AND_DEF
         || options::sygusOut() == options::SygusSolutionOutMode::STATUS)
     {
-      if (options::sygusOut() == options::SygusSolutionOutMode::STANDARD)
+      if (d_result.hasSolution())
       {
-        d_solution << "fail" << endl;
+        d_solution << "feasible" << std::endl;
+      }
+      else if (d_result.hasNoSolution())
+      {
+        d_solution << "infeasible" << std::endl;
       }
       else
       {
-        d_solution << d_result << endl;
+        d_solution << "fail" << std::endl;
       }
     }
     // check whether we should print the solution
-    if (d_result.isUnsat()
+    if (d_result.hasSolution()
         && options::sygusOut() != options::SygusSolutionOutMode::STATUS)
     {
       std::vector<api::Term> synthFuns = sm->getFunctionsToSynthesize();
@@ -823,7 +827,7 @@ void CheckSynthCommand::invoke(api::Solver* solver, SymbolManager* sm)
   }
 }
 
-api::Result CheckSynthCommand::getResult() const { return d_result; }
+api::SynthResult CheckSynthCommand::getResult() const { return d_result; }
 void CheckSynthCommand::printResult(std::ostream& out) const
 {
   if (!ok())
index 66c678ba87f192f7d4662335d2c6a6774c689235..3e4997878e0111adbcbd778ffc2b411949676e1c 100644 (file)
@@ -823,7 +823,7 @@ class CVC5_EXPORT CheckSynthCommand : public Command
  public:
   CheckSynthCommand(bool isNext = false) : d_isNext(isNext){};
   /** returns the result of the check-synth call */
-  api::Result getResult() const;
+  api::SynthResult getResult() const;
   /** prints the result of the check-synth-call */
   void printResult(std::ostream& out) const override;
   /** invokes this command
@@ -849,7 +849,7 @@ class CVC5_EXPORT CheckSynthCommand : public Command
   /** Whether this is a check-synth-next call */
   bool d_isNext;
   /** result of the check-synth call */
-  api::Result d_result;
+  api::SynthResult d_result;
   /** string stream that stores the output of the solution */
   std::stringstream d_solution;
 };
index 78e0a40b3fef89d8531f09aac7da1e6c7b771e6a..65acec2eeb635202b3c7eebb661ff660e9c2e779 100644 (file)
@@ -892,7 +892,7 @@ void SolverEngine::assertSygusInvConstraint(Node inv,
   d_sygusSolver->assertSygusInvConstraint(inv, pre, trans, post);
 }
 
-Result SolverEngine::checkSynth(bool isNext)
+SynthResult SolverEngine::checkSynth(bool isNext)
 {
   SolverEngineScope smts(this);
   finishInit();
@@ -902,7 +902,7 @@ Result SolverEngine::checkSynth(bool isNext)
         "Cannot check-synth-next unless immediately preceded by a successful "
         "call to check-synth(-next).");
   }
-  Result r = d_sygusSolver->checkSynth(*d_asserts, isNext);
+  SynthResult r = d_sygusSolver->checkSynth(*d_asserts, isNext);
   d_state->notifyCheckSynthResult(r);
   return r;
 }
index 1b186c2477932b14f5b73a3c720981bcad5d3cb8..6837c97a70a999633f89065583d4f3deb3489f4c 100644 (file)
@@ -29,6 +29,7 @@
 #include "smt/smt_mode.h"
 #include "theory/logic_info.h"
 #include "util/result.h"
+#include "util/synth_result.h"
 
 namespace cvc5 {
 
@@ -448,7 +449,7 @@ class CVC5_EXPORT SolverEngine
    *
    * @throw Exception
    */
-  Result checkSynth(bool isNext = false);
+  SynthResult checkSynth(bool isNext = false);
 
   /*------------------------- end of sygus commands ------------------------*/
 
index 3cab423abc7c3697abbeddfaccc0f43779e1ff1e..68a40b009cda7f8f031ca55456cebbd16307c505 100644 (file)
@@ -84,7 +84,8 @@ void SolverEngineState::notifyCheckSat(bool hasAssumptions)
   }
 }
 
-void SolverEngineState::notifyCheckSatResult(bool hasAssumptions, Result r)
+void SolverEngineState::notifyCheckSatResult(bool hasAssumptions,
+                                             const Result& r)
 {
   d_needPostsolve = true;
 
@@ -118,9 +119,9 @@ void SolverEngineState::notifyCheckSatResult(bool hasAssumptions, Result r)
   }
 }
 
-void SolverEngineState::notifyCheckSynthResult(Result r)
+void SolverEngineState::notifyCheckSynthResult(const SynthResult& r)
 {
-  if (r.getStatus() == Result::UNSAT)
+  if (r.getStatus() == SynthResult::SOLUTION)
   {
     // successfully generated a synthesis solution, update to abduct state
     d_smtMode = SmtMode::SYNTH;
index 5cc72fd08255d4741fe19f427f05c7dc840212f6..ac1a25e70e6b1d9bfaced014217bc3a11dccbb38 100644 (file)
@@ -24,6 +24,7 @@
 #include "smt/env_obj.h"
 #include "smt/smt_mode.h"
 #include "util/result.h"
+#include "util/synth_result.h"
 
 namespace cvc5 {
 
@@ -86,12 +87,12 @@ class SolverEngineState : protected EnvObj
    * If so, we pop a context.
    * @param r The result of the check-sat call.
    */
-  void notifyCheckSatResult(bool hasAssumptions, Result r);
+  void notifyCheckSatResult(bool hasAssumptions, const Result& r);
   /**
    * Notify that the result of the last check-synth or check-synth-next was r.
    * @param r The result of the check-synth or check-synth-next call.
    */
-  void notifyCheckSynthResult(Result r);
+  void notifyCheckSynthResult(const SynthResult& r);
   /**
    * Notify that we finished an abduction query, where success is whether the
    * command was successful. This is managed independently of the above
index 9ffdfc43868d86bdf7aedb962cf0cbe6d792bfa2..f1762fb580ffcd69176ee89309d11ea514a61d37 100644 (file)
@@ -183,7 +183,7 @@ void SygusSolver::assertSygusInvConstraint(Node inv,
   d_sygusConjectureStale = true;
 }
 
-Result SygusSolver::checkSynth(Assertions& as, bool isNext)
+SynthResult SygusSolver::checkSynth(Assertions& as, bool isNext)
 {
   Trace("smt") << "SygusSolver::checkSynth" << std::endl;
   // if applicable, check if the subsolver is the correct one
@@ -264,8 +264,8 @@ Result SygusSolver::checkSynth(Assertions& as, bool isNext)
   // The result returned by the above call is typically "unknown", which may
   // or may not correspond to a state in which we solved the conjecture
   // successfully. Instead we call getSynthSolutions below. If this returns
-  // true, then we were successful. In this case, we set the result to "unsat",
-  // since the synthesis conjecture was negated when asserted to the subsolver.
+  // true, then we were successful. In this case, we set the synthesis result to
+  // "solution".
   //
   // This behavior is done for 2 reasons:
   // (1) if we do not negate the synthesis conjecture, the subsolver in some
@@ -286,11 +286,12 @@ Result SygusSolver::checkSynth(Assertions& as, bool isNext)
   //
   // Thus, we use getSynthSolutions as means of knowing the conjecture was
   // solved.
+  SynthResult sr;
   std::map<Node, Node> sol_map;
   if (getSynthSolutions(sol_map))
   {
-    // if we have solutions, we return "unsat" by convention
-    r = Result(Result::UNSAT);
+    // if we have solutions, we return "solution"
+    sr = SynthResult(SynthResult::SOLUTION);
     // Check that synthesis solutions satisfy the conjecture
     if (options().smt.checkSynthSol)
     {
@@ -300,9 +301,9 @@ Result SygusSolver::checkSynth(Assertions& as, bool isNext)
   else
   {
     // otherwise, we return "unknown"
-    r = Result(Result::UNKNOWN, Result::UNKNOWN_REASON);
+    sr = SynthResult(SynthResult::UNKNOWN, Result::UNKNOWN_REASON);
   }
-  return r;
+  return sr;
 }
 
 bool SygusSolver::getSynthSolutions(std::map<Node, Node>& solMap)
index b37762ce1ceb3168a6271971e9dda3c821a497ba..6530f532bea9fafef331229d2e4670bfd52ce8cb 100644 (file)
@@ -24,7 +24,7 @@
 #include "expr/type_node.h"
 #include "smt/assertions.h"
 #include "smt/env_obj.h"
-#include "util/result.h"
+#include "util/synth_result.h"
 
 namespace cvc5 {
 
@@ -131,7 +131,7 @@ class SygusSolver : protected EnvObj
    * in which f1...fn are the functions-to-synthesize, v1...vm are the declared
    * universal variables and F is the set of declared constraints.
    */
-  Result checkSynth(Assertions& as, bool isNext);
+  SynthResult checkSynth(Assertions& as, bool isNext);
   /**
    * Get synth solution.
    *
index 4787b65db3bfd3e65173f8d2b3c5342afadc9403..a217b375e95e11514e5038cba241e062bf3775a6 100644 (file)
@@ -346,10 +346,10 @@ bool SygusInterpol::solveInterpolation(const std::string& name,
 
   Trace("sygus-interpol")
       << "  SygusInterpol::solveInterpolation check synth..." << std::endl;
-  Result r = d_subSolver->checkSynth();
+  SynthResult r = d_subSolver->checkSynth();
   Trace("sygus-interpol") << "  SygusInterpol::solveInterpolation result: " << r
                           << std::endl;
-  if (r.getStatus() == Result::UNSAT)
+  if (r.getStatus() == SynthResult::SOLUTION)
   {
     return findInterpol(d_subSolver.get(), interpol, d_itp);
   }
@@ -361,10 +361,10 @@ bool SygusInterpol::solveInterpolationNext(Node& interpol)
   Trace("sygus-interpol")
       << "  SygusInterpol::solveInterpolationNext check synth..." << std::endl;
   // invoke the check-synth with isNext = true.
-  Result r = d_subSolver->checkSynth(true);
+  SynthResult r = d_subSolver->checkSynth(true);
   Trace("sygus-interpol") << "  SygusInterpol::solveInterpolationNext result: "
                           << r << std::endl;
-  if (r.getStatus() == Result::UNSAT)
+  if (r.getStatus() == SynthResult::SOLUTION)
   {
     return findInterpol(d_subSolver.get(), interpol, d_itp);
   }
index 9dee4efdf845cefc18f9cf19cb36b13184567bcc..42fb39858ad29259b4df56cdf6e59026cdd8fbbe 100755 (executable)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-si=all --sygus-out=status
 (set-logic LIA)
 
index 3b8be96fd0db5f6fa40d2067c9d761b5e7b93472..238c558ee40d191afe183d5403c1f871539761ae 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-si=all --sygus-si-abort --decision=internal --cegqi --sygus-out=status
 (set-logic BV)
 
index 2c0b4cf9a16b37de1027d9687e06df34ab1d6fb2..51c5665a2c7dacf36a5321c79ce9929de82681ed 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status
 (set-logic ALIA)
 
index 58f3753d899d27af6f2c5abaf2c41e347bbdf388..ee2aa650ea511cebe752985241f4a07062419be1 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --sygus-out=status
 
 (set-logic LIA)
index b0837e3417e4ef70bd2a3ef18eeca3b53a9b8343..b75ad20d8618aa396725848788e30f48de790cba 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-si=all --sygus-out=status
 
 (set-logic LIA)
index 91fe27b0b3a8f807a1f3e3447f6431c31002545a..8df131a5ba16cb632539c3dfd7c9a260078a6d84 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status
 (set-logic SAT)
 
index 8fe64697b9e9aa8eee33442cb282d8ffe5183a20..e689333564c56329d4ec33023793f04989591651 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status
 (set-logic ALL)
 
index f5ce07ec6f2515ff6a4d44b7e30f5decd957aa7b..edae133cf4c8aa91053538b7762ef504402ec17b 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status
 (set-logic ALL)
 
index c1ebc52b2754a1061aaecd9662018281e1794b35..7b6a91eb5a803d34d316f18df06b25d3043e9eb2 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-si=all --sygus-out=status --decision=justification
 (set-logic LIA)
 
index 78029cbc8e3aa730fe411158f49aedde53a339f5..85957e9984c6a12116dff3068730e967a64ab5ac 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-si=all --sygus-out=status
 
 (set-logic LIA)
index e33edf36cc10137d6e2ff5d84583fab1050185c6..870d94e221699bcc772314575991eaec87e2e15c 100644 (file)
@@ -1,5 +1,5 @@
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status
-; EXPECT: unsat
+; EXPECT: feasible
 (set-logic LIA)
 
 (declare-datatypes ((List 0)) (((cons (head Int) (tail List)) (nil))))
index 05ba6b85eb74d020a6ee1769b63fd46df52c8839..15efe28b68eeaa540dccb7c6dcdd2af9aa0397b5 100644 (file)
@@ -1,5 +1,5 @@
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status
-; EXPECT: unsat
+; EXPECT: feasible
 (set-logic ALL)
 
 (declare-datatypes ((IntRange 0)) 
index 8c77eea61287ba622d5008e0336fa0d6a9707caf..0878f3bd03d2f77878e0090640b7cd90f01a6550 100644 (file)
@@ -1,5 +1,5 @@
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status --sygus-si=none
-; EXPECT: unsat
+; EXPECT: feasible
 
 (set-logic BV)
 
index 4bef02b69c47db397fa6e1cd54d2c69f551e25b4..0db67a112fe30320c3efea6837e0bd2f3aaf9933 100644 (file)
@@ -1,5 +1,5 @@
 ; COMMAND-LINE: --sygus-out=status
-; EXPECT: unsat
+; EXPECT: feasible
 (set-logic HO_ALL)
 (synth-fun f ((x Int)) Int)
 (synth-fun g ((x Int)) Int)
index f453964b0a167c50c44d14bce72773a3806ecfc6..d7e8379df030fb7e88a0b403a523c6fe89fd66f9 100644 (file)
@@ -1,6 +1,6 @@
 ; COMMAND-LINE: -i --sygus-out=status
-;EXPECT: unsat
-;EXPECT: unsat
+;EXPECT: feasible
+;EXPECT: feasible
 (set-logic LIA)
 
 (synth-fun f ((x Int) (y Int)) Int
index 7b7d50e22ba6f485285daccbc3573da73d8c70e1..3462362cadf7c46b8f7207262b43e10ce9306e67 100644 (file)
@@ -1,5 +1,5 @@
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status
-;EXPECT: unsat
+;EXPECT: feasible
 (set-logic LIA)
 (synth-inv inv-f ((x Int) (y Int) (b Bool)))
 (define-fun pre-f ((x Int) (y Int) (b Bool)) Bool
index 9929654327de95c600bf12349da25a8ee278861f..1f054595e0516b0de7dd434b9e7e263a439e50f2 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status
 (set-logic ALL)
 (declare-var A Bool)
index 27378d9ca0e90dd70329a3344cadbe17aba40d76..11860a82dd9dec6600b5d24f9d0a8f1ffbc52af1 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status
 (set-logic ALL)
 (synth-fun args_0_refinement_0 
index 55f4723ec674daa0bdf23cfa855919555de96b9c..0348e0ac9c49a92f5f7d6764405ef4dffae59548 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --sygus-out=status
 (set-logic NIA)
 (synth-fun patternGen ((i Int)) Int
index bffa02b29233673c89d1730cab72582f161a2898..b083af93c27a96a4e84d79f8b0328582cce95be7 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status
 (set-logic ALL)
 (declare-datatypes (( List 1)) ( (par (T) ((nil) (cons (head T) (tail (List T)))))))
index 9793c927b9fb4ba27dfb94d390d884196192359a..9187051188d15f1b11b7cca4ee7e078368dd6211 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-si=all --sygus-out=status
 ; COMMAND-LINE: --lang=sygus2 --sygus-si=all --sygus-unif-pi=complete --sygus-out=status
 (set-logic LIA)
index 19a4e6bc9471e5563a998bb99251b8e5e13e04bd..bf28ff0eb07aecde7a068d2f7c0857924ed88fc7 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-si=all --sygus-out=status
 (set-logic LIA)
 (define-fun letf ((z Int)) Int (+ z z))
index fd63506d29274f5c60a19387901b351fdf4f430a..f32b7efd9ef17bdc0f4d2132e187b96440f76722 100644 (file)
@@ -4,7 +4,7 @@
 ; EXPECT-ERROR: no-logic.sy:8.10: cvc5 will make all theories available.
 ; EXPECT-ERROR: no-logic.sy:8.10: Consider setting a stricter logic for (likely) better performance.
 ; EXPECT-ERROR: no-logic.sy:8.10: To suppress this warning in the future use (set-logic ALL).
-; EXPECT: unsat
+; EXPECT: feasible
 (synth-fun f ((x Int)) Int
   ((Start Int))
   (
index 4978b7a5735b18e2103c23b9c2bf56cde64a9333..92d72c6ebf17819a19e7d1b1db5112b04a01c26e 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status
 
 (set-logic LIA)
index 696d413ade05e71462aaaf1e0d373fb4383eb091..675f087d9b16525129256c578772bb26b114f14c 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status
 
 (set-logic LIA)
index d3ca69e965792e3fb63f40d4d8ea45639d144275..8bfe4a2e6befcd183160257baa58dc13e7f85312 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-si=all --sygus-out=status
 (set-logic BV)
 
index 60bb804b609ad65b4d18110d6c20d452c6129851..c32844e78e525dae1491cfeb54ef2d95dc5dadb9 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status
 (set-logic BV)
 
index 927d1bf0ef998fae31d4d5e3932cbabf454254d8..ff8bedd789343a0a44c752225ce83fdc1715eab5 100644 (file)
@@ -1,5 +1,5 @@
 ; COMMAND-LINE: --lang=sygus2 --sygus-si=none --sygus-out=status -q
-; EXPECT: unknown
+; EXPECT: fail
 (set-logic LIA)
 (synth-fun P ((x Int)) Bool)
 (constraint (P 54))
index 26524cdf6bfaf050b06498d6e70d939fdf856dd7..fa108005c009a036c797711c7358d213f492abd0 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status
 
 (set-logic LRA)
index 49272165d279314900da5fdb665bb07d72534634..faad97a3ab8fd9f6f72f42370c9d8798653b80bf 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status
 (set-logic SLIA)
 (synth-fun f ((firstname String) (lastname String)) String
index e89d07fd91fdb7617b7677b94cdd415856b7cf24..e34c30f5a4aca1135cdb311830e72566f5d517f8 100644 (file)
@@ -1,5 +1,5 @@
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status
-; EXPECT: unsat
+; EXPECT: feasible
 (set-logic ALL)
 (synth-fun f ((x0 Bool)) Bool
        ((B Bool) (I Int))
index 2f59598ecbae739cfccf9fe2b0ceadc0c2d65db6..b05fe31e596c89fe8429761c7c932449c1bc54e1 100644 (file)
@@ -1,5 +1,5 @@
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status
-; EXPECT: unsat
+; EXPECT: feasible
 (set-logic HO_ALL)
 
 (declare-var uf (-> Int Int))
index 9024ac3b62f563cc00a253ada462532a1cb4ddd7..87489735b68442f058bf8d4afb6f1da3bdb81727 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status
 (set-logic LIA)
 (synth-fun f ((x Int)) Int ((Start Int)) ((Start Int ((- 1)))))
index abcccd2ab22f500c0d0db9a50aaacb7d84a2e5bb..aada8f7dcffd634d871b64133e6c1f9a3d88cfdd 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unknown
+; EXPECT: fail
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status -q
 (set-logic SLIA)
 
index b47060bf89e0b08f6a6324f941d55dc667f82391..05b457e746248140105f4dadd42aca257bc8db0f 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-qe-preproc --cegqi-full --sygus-out=status --sygus-si=all
 (set-logic BV)
 
index f60f661dd0fea552353e60c75e2ccd53f8422ea1..5d27d649afbe632f0f4d259a013f5876f44f59ea 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status --cegis-sample=use
 (set-logic LIA)
index d42553c1bd7ff39cebd0288fbd5e64d0259aa7ea..be8b755f919badd4582a46011aed3238445567d7 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status
 (set-logic ABV)
 
index 025a17b156b471f3fd792577ea92e63a9e72238c..61ba2063e5dd57b4ccc756f1d58fd76559cf5f19 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status
 (set-logic ABV)
 
index b3d950436634835973dd07380708b89b9820eac2..1d43efede1d5f660bb1392a69bfb1233d11408c1 100644 (file)
@@ -1,5 +1,5 @@
 ; COMMAND-LINE: --sygus-out=status
-; EXPECT: unsat
+; EXPECT: feasible
 (set-logic ALL)
 (declare-sort U 0)
 (synth-fun f ((x (Array U Int)) (y U)) Bool)
index 9009c82606347b9b39113ac4d237a114dedc10b7..3c0253c9e11f147d5e2eb50685f02f54d93610e1 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-si=all --sygus-out=status
 (set-logic LIA)
 (synth-fun findIdx ((y1 Int) (y2 Int) (k1 Int)) Int ((Start Int) (BoolExpr Bool)) ((Start Int ( 0 1 2 y1 y2 k1 (ite BoolExpr Start Start))) (BoolExpr Bool ((< Start Start) (<= Start Start) (> Start Start) (>= Start Start)))))
index fb1c1033738b5fb13ff869b45bebc1388d98254e..759122e2c1041b85648aa771a77be73678fb729e 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-si=all --sygus-out=status --decision=justification
 (set-logic LIA)
 
index 9490f73b62607d06258dc3a78d10fb98479d672e..e0be37280f517ec9af1d05ddb7008fd867834fe1 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-si=all --sygus-out=status
 (set-logic LIA)
 (synth-fun findSum ( (y1 Int) (y2 Int) )Int ((Start Int) (BoolExpr Bool)) ((Start Int ( 0 1 2 y1 y2 (+ Start Start)    (ite BoolExpr Start Start))) (BoolExpr Bool ((< Start Start) (<= Start Start) (> Start Start) (>= Start Start)))))
index 2bd8fc0dc8f7d29fbba0db85a9501764be14f7e8..8a29db5ee7e39fff43c31ccf9bab3a0f3acb32b1 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status
 (set-logic BV)
 
index 3b58a997c868491d4d66fa424dd8fb6027d0b6a6..697443d36db452fdbb1027556a4fec97dac129e2 100755 (executable)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status --sygus-unif-pi=cond-enum-igain --decision=justification
 
 (set-logic LIA)
index d3b2030de1d0ec99d62422db060a9967538e4ee9..2fe42609ce406f0868c7d217e1aa9c17b38ec371 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-inv-templ=post --sygus-out=status
 (set-logic LIA)
 
index c3b09011c7a8e0362fc0c3b1232a2f2197cca2ad..d1253b1b42d190464c1ec2902f633234278d5142 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-unif-pi=complete --sygus-bool-ite-return-const --sygus-out=status
 (set-logic LIA)
 
index 551528633d459305f583a75d4a855d6e3f96bba7..a24ba278165daf681f3ed0b51a5b1dea88d3aeb3 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-inv-templ=pre --sygus-out=status
 
 (set-logic LIA)
index 5af4407f7f38bf200bf9a8e3ab06d46e1f2762a4..f16e3a5b8cfb6081079e04454fc6abac58906dbf 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-si=all --sygus-out=status --decision=justification
 
 (set-logic ALL)
index ed4689fe9e2d0a918613c4fc6c29dbf3e30076b7..0005b68644f1c97589940e4226e7dcc15a60b04b 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --sygus-out=status --sygus-repair-const --lang=sygus2 --sygus-grammar-cons=any-const
 (set-logic LIA)
 
index 7fe07c3facd30ae75365d55796da4875d39bd801..48ef2ce0b31814145966f8092cec824d454008d3 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status
 
 (set-logic LIA)
index 5a2d38cb8f074f6ddb9d75c952bbf2421e59ab84..bfc05f62381d8ca4f9000ceba41f8c03d95a2d3d 100644 (file)
@@ -1,5 +1,5 @@
 ; COMMAND-LINE: --sygus-si=all  --sygus-out=status
-; EXPECT: unsat
+; EXPECT: feasible
 
 (set-logic LIA)
 
index e3e017cec0772d68650a2399cdbb2d11615ffd04..e3a4990cd4021e2678fba0a0b02a9048c6e8f717 100644 (file)
@@ -1,5 +1,5 @@
 ; COMMAND-LINE: --sygus-si=all  --sygus-out=status
-; EXPECT: unsat
+; EXPECT: feasible
 
 (set-logic LIA)
 
index 7d66908164e679ddfc113201253f559b876afa6d..bc95582fec6c96c76db5e743280acdde58eb565f 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --sygus-out=status --lang=sygus2
 (set-logic BV)
 (synth-fun f (( x (_ BitVec 32))) (_ BitVec 32)
index 18a60f176c07b94e0761ae680919e853520a7251..d3239e724a1a3f0ffea3d2a87dc0c9baa34329b0 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status
 (set-logic LIA)
 (synth-fun f () Bool)
index ddbf07d6160038a94157a0c1e36e8cd159c7d91e..32bf9dfd4683b3f8fa95f92d32c8aabf9399ea6a 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status --sygus-unif-pi=complete
 
 (set-logic LIA)
index 356c71d1df4a45a02d15899df5db45c423368345..5a79f074f451c6c808affe972cd94710d998f1ad 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status --no-sygus-pbe --sygus-repair-const
 (set-logic BV)
 (synth-fun f ( (x (_ BitVec 64))) (_ BitVec 64)
index 1416d566dffa1470ab6a4b6973799b0f2776d70e..469f448aeec06a50b444df2b4822913d395c7beb 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status
 
 (set-logic LIA)
index d59fd297d547cde80d7787a3606c99047b96a546..791bb0242ec70c748c4b07fa4a7cb91b4a5dd4bc 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status
 
 (set-logic BV)
index 177a33274b7ee63b43ac043aee342b12f7f24aa5..6e503ab86ed2794f2c5acb3cdc222a6cf66ebc10 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-si=all --sygus-si-abort --decision=internal --sygus-si-rcons=try --sygus-out=status
 
 (set-logic BV)
index 1c0abc4fe54823673d91afa33b5d721334a77862..38a7bc3caa4bc4c1e8786418ad09a2b74e494d89 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status
 
 (set-logic BV)
index ef57840fee49f0c2bcc8279b643dcc97766f3f18..ce06e54e480d3b1b371ac065b540128fa6a4fac4 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status
 
 (set-logic NIA)
index e089dafa5b5119a818a4ef56da386d924fab6bd2..3d6c01a07e07836a37f36a36b521f533c86bc0aa 100644 (file)
@@ -1,5 +1,5 @@
 ; COMMAND-LINE: --sygus-out=status
-; EXPECT: unsat
+; EXPECT: feasible
 (set-logic LIA)
 
 ;declare enums
index 0ba8222780459baedf053b49cbcd6b67c7d5d640..5e3c25bd71ba4344e2aca9f5d886c87a14b0ac9a 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat\r
+; EXPECT: feasible\r
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status\r
 \r
 (set-logic SLIA)\r
index f67784002721cae5233a55f1d1a6b54a1250b444..0df9056d4d1b946d7bc46f5c862906a7f6021acd 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-si=all --sygus-out=status
 (set-logic DTLIA)
 
index dfd99f55d0c1ff68d652e7705d4386cc7d2ebc7b..62b81c967ba7269797e385a83760c08eaee516a3 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-si=none --sygus-out=status
 (set-logic LIA)
 (synth-fun f ((x Int)) Int
index 69399e29373453aab83295c151b1154ad1c13aa1..0dac347e888fa7490ad0985f5e31c7545d65866c 100644 (file)
@@ -1,5 +1,5 @@
 ; COMMAND-LINE: --sygus-si=all  --sygus-out=status
-; EXPECT: unsat
+; EXPECT: feasible
 
 ; This regression tests the behavior of the reconstruction algorithm when the
 ; term to reconstruct contains two equivalent sub-terms, but one is easier to
index 31308d62af60f0ae3dcc62c3e5d30e5b090de31f..9b88dadd44c61178c87f6231c26d47b599c1579e 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status --sygus-si=none --sygus-enum=fast
 
 (set-logic ALL)
index e007eec51f0aac7e2193fba7481ca55435971afa..7e0a7519792d44447671f1fad0cb60f62a0e382e 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status
 (set-logic HO_ALL)
 (declare-sort S 0)
index fef48f364a8c35c5c045c0715643d379ffb730b3..3eb30462c4acd022eb125b30accd7e96e9e7b7ea 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat\r
+; EXPECT: feasible\r
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status\r
 \r
 (set-logic ALL)\r
index 1778f91c72df7af687f1e7c4ad5a1b4c4b7a797f..2fc0a38c05eb0c071a8a75619fe4bf3c56623311 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --sygus-out=status --lang=sygus2 --sygus-enum=fast
 
 (set-logic ALL)
index 2da3809a8a709723fbaf3b83f57c4385385ffefb..d2e3c549f2a25b0778d5561c281c7bbdeba1bf1d 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status
 
 (set-logic LIA)
index 18a1426d52f70fa18dd938eb01c928f02111a6df..e78bcc89df139a833eddca0ba0789756b223a4e5 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status
 
 (set-logic BV)
index 145064141529e9e9a6f494e49f8de1bdc3189c27..67dd69d5ea98166a34f9a086a6df8bd32fb15d80 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status --cegis-sample=trust --no-check-synth-sol
 (set-logic BV)
index 1d724139950c673e7261353338000b441cc17124..f7b1d2b9035efd6c3c2bc66567d6b796136e8f53 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status
 (set-logic BV)
 
index 9a28d6d7918b27ca4bab3387aad6a6b81d92effd..3a09b9be4a42b3ad0a1323b88ff35da2adfd6a5a 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status
 
 (set-logic BV)
index ab8852d2eb18e6774262e864b1c9d15edd66a596..43042ce8772e35526097aa7dc91ffc76dd235966 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-si=all --sygus-out=status
 
 (set-logic BV)
index 2fdfb1c438d528892c4a92c473390fd2b7ef4a38..60120ea8acb5f5435b57062e9fcec206687314a8 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-si=none --sygus-out=status
 (set-logic BV)
 
index d46d8ecde869a979b6aa5f42c6bcab6898bdbc63..afabc5d5ea4f37505e3568bea03a383a472b302e 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status
 (set-logic HO_ALL)
 (synth-fun f ((y (-> Int Int)) (z Int)) Int)
index 96851045c13c3a4481cd6ef62ef334b4832eaed6..a7d703415e1893c0bb736a53b5aa730c46ed0620 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status
 (set-logic BV)
 
index 6f76346d5af8ebf627d2341b27c9ab6a0e3d886d..8f6979cc9fc5ded79573f10747c0c3af4cf268bd 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status
 (set-logic BV)
 
index 212943cab9fdf161e1f6d418cc082d4baa62be07..12d09874772947ae7b8bdae05c12dfbee15be0c8 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status
 (set-logic BV)
 
index 4ca73b87f5639e2c1796136e408bd8e40932bb7f..c853d2f442f2d30ee73da8bb2a62d2a103c8c962 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status
 
 (set-logic BV)
index 63cc4736cbc2767299a791fd46ebf5a471148a40..3f8a50e520211d722985236d7fd90925f23e56f3 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status
 (set-logic BV)
 
index 127a2e3bcb9cf385155c9f0b902690fac2724608..719f1a5557fdc6df93bf3ece3fcc7b824a209e64 100644 (file)
@@ -1,8 +1,8 @@
 ; COMMAND-LINE: -i --sygus-out=status
-;EXPECT: unsat
-;EXPECT: unsat
-;EXPECT: unsat
-;EXPECT: unsat
+;EXPECT: feasible
+;EXPECT: feasible
+;EXPECT: feasible
+;EXPECT: feasible
 
 (set-logic LIA)
 
index f377b23c14d8933cd95a0bc61b5c0684535ba99c..3c033fe609455ca5224b165ca01e81aef5da6e74 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status --no-sygus-pbe --sygus-si=none --sygus-grammar-cons=any-term-concise
 
 (set-logic LIA)
index bcc6c0aa8797fb58c8c33529976798f52cf9d7a1..059541aa37f87ead02f3814d823fb3f20fcedfab 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status
 (set-logic LIA)
 (synth-inv inv-f ((x Int) (y Int) (b Bool)))
index f8a3136f20d962f699fc90bc846ec6b1a497ca79..2d144e7c1213e203fbf686d0710a955eac9ebdaf 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status
 (set-logic LIA)
 
index a5eb41b260a5d0b66aada18527ad5eee45b513fc..24221814ff063b6ef35f75e7892cbeaeeee95d64 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status
 (set-logic LIA)
 (synth-inv inv-f ((x Int) (y Int) (b Bool)))
index 5c1aa4852e4c7928ebb961fbf841162e928a767a..9e9a93c22c7495bd81c02dc82b5a23f1d034cca1 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status
 (set-logic LIA)
 (synth-fun inv ((l Int)) Bool
index 71a5a59872ed90d4dbfcbdd7b74aa69bb44ff3f6..13f382141a901f230f0241da66e554441e259283 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status
 (set-logic SLIA)
 
index ea8011a5e5594d54cc61f5ad817feeb8084c0311..c0323cb409fde68b362fd2a167dbd8b7a1d55d18 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status
 (set-logic SLIA)
 
index 4b08a937dff5f8dcd8280baa7cfae45cf055eaf1..60e8cea29117d7b8d8767cf683ac30a2fb383731 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --sygus-out=status
 (set-logic ALL)
 
index 2d99ba5cff16ed1697ca9bce35c625dba1af383c..255065499512f76f50d6ad3356a74db0e2c840b6 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status
 (set-logic LIA)
 (declare-var x Int)
index ebd6dd34687e136c3cc0c9225c0b013223108a77..4ac8ed80832dd0509321c31a21c30d51d24f452c 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status
 
 (set-logic ALL)
index 0366436b207ad66800a30f1367516a55d250d2af..a40df6cee8c7d1889e3aa6c9eea63d4eda6d20c8 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --sygus-out=status --sygus-enum=smart --lang=sygus2
 (set-logic ALL)
 (synth-fun f 
index 0f7fc668caab91f6d1227ce337904c6584c2ea7e..661404616efe388a8fc137d975ea2298b95ce80d 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unknown
+; EXPECT: fail
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status -q
 (set-logic ALL)
 (synth-fun inv-fn ((i Int) (x (Array Int Int)) (c Int)) Bool)
index e07365052b073cdd21d428615a24cc52e4b465ae..e4e5c5366fa6c0b6cce2e5eeb87287a32ea4f8c1 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --sygus-out=status --lang=sygus2
 (set-logic ALL)
 (synth-fun f 
index 08f280a4ba796cc15acc9d0dda9fdb5202895767..30f215090148fad566a3df5b3da59aa5228f67d4 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-si=none --sygus-out=status --sygus-add-const-grammar
 (set-logic LIA)
 
index 1f383ab4301612967b5ab26412804c06cfeab7e9..7ab34c4cf6ae403d099f825e680d00a95f42dc63 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status
 (set-logic LIA)
 (define-fun letf ((z Int) (v1 Int) (v2 Int)) Bool
index f1c99a28f06730b2d502e94fc67101c540f07af3..e2901250653274f9b796fd64fa17a6cd50e569bb 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-si=all --sygus-out=status
 (set-logic ALL)
 
index cb1ae27219fc4d04c1c40af5047b13be90d75946..041045ca15cf6808c91fbcc659ac966eb173f7dc 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --sygus-out=status --lang=sygus2
 
 (set-logic HO_ALL)
index d6e8a75a4e7b8a60da6a84bd984e336d3b968387..cd47df17a476897482c046c97f134d599a939351 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status --sygus-repair-const
 (set-logic BV)
 
index aaf0e3bf0c7ef170f36c7422bba31a06e11af4ca..f63d8d737c63b3dc8633b80d48fee1d215290c1d 100644 (file)
@@ -1,5 +1,5 @@
 ; COMMAND-LINE: --sygus-si=all --sygus-si-rcons-limit=0 --sygus-out=status
-; EXPECT: unsat
+; EXPECT: feasible
 
 (set-logic LIA)
 
index 3031c869b96ec807175d0029587e72b3c81fa99c..40790f36dbebeac0a8b82df787d57b5447d1a083 100644 (file)
@@ -1,7 +1,7 @@
 ; COMMAND-LINE: --sygus-si=all --sygus-si-rcons=all-limit --sygus-si-rcons-limit=0 --sygus-out=status
 ; ERROR-SCRUBBER: grep -o "reconstruction to syntax failed."
 ; EXPECT-ERROR: reconstruction to syntax failed.
-; EXPECT: unknown
+; EXPECT: fail
 ; REQUIRES: no-competition
 
 (set-logic LIA)
index 8c1153ba046a68c6c45c2c4614e0679f7c9e3125..62c031c651d21a34710994a2408d7d976e8f6813 100644 (file)
@@ -1,5 +1,5 @@
 ; COMMAND-LINE: --sygus-si=all --sygus-si-rcons=try --sygus-out=status
-; EXPECT: unsat
+; EXPECT: feasible
 
 (set-logic LIA)
 
index ef8df46debcaeb079540abea86ddea1827e363ed..64f96a66b3dfbf71a07932a125831d32b2775de3 100644 (file)
@@ -1,7 +1,7 @@
 ; COMMAND-LINE: --sygus-si=all --sygus-si-rcons=try --sygus-out=status
 ; ERROR-SCRUBBER: grep -o "reconstruction to syntax failed."
 ; EXPECT-ERROR: reconstruction to syntax failed.
-; EXPECT: unknown
+; EXPECT: fail
 ; REQUIRES: no-competition
 
 (set-logic LIA)
index e753277ccd69be1759f470614e53801a6aa3e379..da267a74a33ba0b99378867f9ac03cb6f5352828 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-si=all --sygus-out=status
 (set-logic LIA)
 
index b8a23aba5a6e38f45caf71782e7e5de32b29c865..2fc3715725a0615cf67ceef3b19ff95c508f2b62 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status --cegqi-bv
 (set-logic BV)
 
index a20bf853da03bd67da359f50edc05e60d78f2fd4..9a20ec149699fa2e1b328af0cd485294c3e490df 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status
 
 (set-logic LIA)
index f9b6708d5bf0360eee25760454789e24a56df037..c7dee7dd143edd013da549cfe79a9abd0594f849 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status
 (set-logic LIA)
 (synth-fun f ((x Int)) Int
index c36232a5ddc6ed8a3f60ea104fafe44ae2600535..20310a9fade631a049ef1d6e3043e984f2ac97e9 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status
 (set-logic LIA)
 (synth-fun f ((x Int)) Int
index 1177be5e771d095a35a0e1829b5819088bfd248b..39f217529fc53c3cc776da338c6339fe5582e9f8 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-si=all --sygus-out=status --nl-ext-tplanes
 (set-logic NIA)
 
index 42b73394b750772d834bfad5bd50807a38967a7a..e0e30254e027b356367af98e8062f9716ebaf6a0 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status
 
 (set-logic LIA)
index ff10c12633833c7d9a1dc076740c6d5f0c533927..fe1c21e42b577d379bac1a25288da909f7fe4ec8 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status
 (set-logic LIA)
 
index 35d00b0a51ea39bdabe2849610dbcf98a12f066c..4b84657da9703bbbdc403ceb36d99fa0bd73d56c 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --sygus-out=status --lang=sygus2 --no-check-synth-sol
 (set-logic ALL)
 
@@ -22,7 +22,7 @@
 ; reliability
 (define-fun rel () Real 0.7)
 
-; new chance of success
+; new chance of feasible
 (define-fun updateReal ((addP Real) (currP Real)) Real
   (+ currP (* (- 1.0 currP) addP))
 )
     (let ((dst_pair (mkPair dst pck)))
     (let ((src_pair (mkPair actor pck)))
     (let ((chSuccess (ite (select prevRcv src_pair) rel 0.0)))
-    ; success and failure
+    ; feasible and failure
     (appendStateToPState
       (mkState (store prevRcv dst_pair true))
       (* r chSuccess)
     (let ((dst_pair (mkPair actor pck)))
     (let ((src_pair (mkPair src pck)))
     (let ((chSuccess (ite (select prevRcv src_pair) rel 0.0)))
-    ; success and failure
+    ; feasible and failure
     (appendStateToPState
       (mkState (store prevRcv dst_pair true))
       (* r chSuccess)
index af6d56aaf838b98ca8803b1d4ead5093d286020b..7add2784d8af7931099b933daa5cde660e96876a 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status
 (set-logic BV)
 
index 25effd154546be2608e63901a442e992ab400a1d..bd21bcecc06ed8a9a7e0b167a352ebfc29663598 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --sygus-out=status --lang=sygus2
 (set-logic LIA)
 
index 532a8f3a863d2e9275a3a6525d654abec710eeef..c4c3f6062829f305c5178e0d8f7d79494c7e972a 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --sygus-out=status --lang=sygus2
 (set-logic BV)
 
index 16ade4ee505f3eff4cadcb7512af1193f045fe20..8dd090ab629b2f06450d4b90bd4275a5e952ec72 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-si=all --sygus-si-abort --decision=internal --sygus-si-rcons=try --sygus-out=status
 
 (set-logic BV)
index 4c588ee17c1afc206feae721cbe51f32fbf89ebf..23aab101ee0942782ad23ad7d619410bf4041798 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat\r
+; EXPECT: feasible\r
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status\r
 (set-logic BV)\r
 \r
index 6d89a4e6c600e4670ff82b73e7ae824376c29e43..40e4a3496055344a1a130c7d387432c6a3d36ca8 100644 (file)
@@ -1,5 +1,5 @@
 ; COMMAND-LINE: --lang=sygus2 --sygus-si=none --sygus-out=status --sygus-fair=direct\r
-; EXPECT: unsat\r
+; EXPECT: feasible\r
 (set-logic SLIA)\r
 \r
 (synth-fun f ((name String)) String\r
index 212c2559565a38c50f66ee5b7acc1d706ff37fbd..b13003663017f486d207c7f6986eb5daad768434 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-unif-pi=complete --sygus-out=status
 (set-logic LIA)
 
index 86fac86cda81b17d8c7ff3ff5d9ed1c45ae32ba3..d2c95cc33df70b236532dc37a0fbea8da00131d9 100644 (file)
@@ -1,5 +1,5 @@
 ; COMMAND-LINE: --lang=sygus2 --sygus-si=none --sygus-out=status --sygus-arg-relevant
-; EXPECT: unsat
+; EXPECT: feasible
 (set-logic LIA)
 
 (synth-fun f ((x1 Int) (x2 Int) (x3 Int) (x4 Int) (x5 Int) (x6 Int) (x7 Int) (x8 Int) (x9 Int) (x10 Int)) Int)
index eba30350d9d978dee532f62fb8f0a7f55ed7d7cf..ebe4ac5a178adeb721ba1c6a6e1c10285f04f136 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-si=all --sygus-out=status --sygus-qe-preproc
 (set-logic LIA)
 
index cc87af3fe4765293e7e93deddf2688538db807b4..442c622241a897f177d7741db6db5b4130e04471 100644 (file)
@@ -1,5 +1,5 @@
 ; COMMAND-LINE: --sygus-enum=random --sygus-out=status
-; EXPECT: unsat
+; EXPECT: feasible
 
 (set-logic BV)
 
index 03d6cbc6734fb405d1aa800955ba38ee6fe4d59a..6850afac30848b69540b7623a7dc632bbd845b06 100644 (file)
@@ -1,5 +1,5 @@
 ; COMMAND-LINE: --sygus-enum=random --sygus-out=status
-; EXPECT: unsat
+; EXPECT: feasible
 
 (set-logic BV)
 (set-option :sygus-enum-random-p 0)
index a1eb851836eaa118eefa2ec488017b4178935c1a..2501568a9983252707815fd2eac3433fe4f464c4 100644 (file)
@@ -1,5 +1,5 @@
 ; COMMAND-LINE: --sygus-enum=random --sygus-out=status
-; EXPECT: unsat
+; EXPECT: feasible
 
 (set-logic BV)
 (set-option :sygus-enum-random-p 1)
index ac1172e330c541bf080bd92b78e609b04e64260d..cbd07525a584ce0cc7c87a1dc86b824b14217a50 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status
 (set-logic SLIA)
 (synth-fun f () RegLan ((Start RegLan) (Tokens String)) (
index 53db26910b8602134f2603844d7b79f2e242bbb9..93bd36bd6556c5873b74ec048f0b0cf0da75b87e 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status --no-sygus-pbe --sygus-si=none --sygus-grammar-cons=any-term-concise
 
 (set-logic LRA)
index d664bf2a2e7c3d6a88db4d289a028f2b69fac49e..6af5689db86c39016d5e335ab190d06f2d335fc0 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status --sygus-si=none
 
 (set-logic LRA)
index 056d6a8fc7f2e18567f6906e70796c544d80ad56..0d19d297d7e569e1adc47cce51626e4c02233b95 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --sygus-out=status --lang=sygus2
 
 (set-logic ALL)
index 769e173de28be63c120bc10dfca08159ec956b5a..282a6c85335e54814b9ea68e6bf1721e6b89d96a 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --sygus-out=status --lang=sygus2
 
 (set-logic ALL)
index e805fdc203b0654aa3248d0b6c6552893bfb34b2..3a362bf1f95230644b01b617d4aea7f9863648f6 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --sygus-out=status --lang=sygus2 --no-check-synth-sol
 
 (set-logic ALL)
index 7e32384b38bdc1c9285994fdb21811c2b02d04f8..ba7d7f83253802d686bdc1420e408792e3f6f725 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --sygus-out=status --lang=sygus2 --no-check-synth-sol
 
 (set-logic ALL)
index b43b3d5e277f40f321c8def056eb6b17438199e9..ed2dd87a375de464c75a23cbe10ea36b565b73b8 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unknown
+; EXPECT: fail
 ; COMMAND-LINE: --sygus-out=status --lang=sygus2 --no-check-synth-sol
 
 (set-logic ALL)
index 3374d6a8ab58fcdd5412efbf50921bf33b544902..7688681f908ac5a31c17a297180a4fa22e3d9213 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --sygus-out=status --sygus-si=none --sygus-repair-const --lang=sygus2
 (set-logic LIA)
 
index c10cab2f5e661796365da93a1dc9563f18318c1b..c7c9131af636bdfd2e8b7cdb76a91f3d7246dfd8 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --sygus-out=status
 (set-logic LIA)
 (synth-fun fr0 ((_v Int) (n Int) (x Int)) Int
index fbe3b7d65840c611276062defbd7c261fbcc9689..01c49d752d16717522f0083594257d82e05adede 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --sygus-qe-preproc --sygus-si=all  --sygus-out=status
 (set-logic LIA)
 (synth-fun fr0 ((_v Int) (n Int) (x Int)) Int
index aa2ddb2a3abe5bbea98e519525e471a22ad7f0da..25854886f474ecb2a968aa9591eda9116bd5c6d6 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --sygus-out=status --lang=sygus2 --strings-exp
 
 (set-logic S)
index 18e78302727f8f1a58a1bf113d07cf276b5fd9c6..2c9524ef27748bca0c36462885434f3872321c5d 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status
 (set-logic ALL)
 (synth-fun P ((x (Set Int))) Bool)
index 68e8a3a48d4e19e613edff8a3cb051baf35bf2d7..bb3c4fc540cf6c7f1b39baf4eaeb836a4c28751d 100644 (file)
@@ -1,5 +1,5 @@
 ; COMMAND-LINE: --sygus-si=all  --sygus-out=status
-; EXPECT: unsat
+; EXPECT: feasible
 
 (set-logic UF)
 
index f9f6354f5f9fcf1c9162e03ed9401060d169fc9e..365c0927f1f398d31024f7a6b3fc7127dab6a82b 100644 (file)
@@ -1,5 +1,5 @@
 ; COMMAND-LINE: --sygus-si=all  --sygus-out=status
-; EXPECT: unsat
+; EXPECT: feasible
 
 (set-logic UF)
 
index b7646725dcbf96d956945fc7ab77c92581e46762..118cb9a851d93e9c2b726b3385e361db7ad694ea 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status
 (set-logic SLIA)
 (synth-fun P ((x String)) Bool
index 46d3b59b01e99add58ea3790f5491f3a0da5334f..8fcd9aa89247a792a134ee537a35d3d75f9eb85c 100644 (file)
@@ -1,5 +1,5 @@
 ; COMMAND-LINE: --sygus-si=all  --sygus-out=status
-; EXPECT: unsat
+; EXPECT: feasible
 
 (set-logic UF)
 
index 5b4dbbee1770ccb85db4c65f711751afabf029e0..98c851099e306664476d1a307961414d4e328d2d 100644 (file)
@@ -1,5 +1,5 @@
 ; COMMAND-LINE: --sygus-si=all --sygus-out=status
-; EXPECT: unsat
+; EXPECT: feasible
 
 (set-logic UF)
 
index c33e16bcd31b36562fdf55c6f0e172e0f1be4dd5..6044cbccbc577432adb4b6746f357708e8417931 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-inv-templ=post --sygus-out=status
 (set-logic LIA)
 
index 2c3eaac336d38fd8c766d6b3afce41d358ddddae..50bb1781772d3b708ea6533bfe980aa4e68d5549 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status --no-sygus-pbe --sygus-si=none --sygus-grammar-cons=any-term
 (set-logic ALL)
 (synth-fun f ((x String) (y String)) Int)
index 681d3ccff4e89ef7b3b1e8115df4318277a8529b..3821e343e97a5f4b4d418387faaac423d13cac02 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status
 (set-logic SLIA)
 (synth-fun f ((x String)) String
index 0c21015e7d06c6c98cd5a99d2d470680061a4a08..333f20fab0407c4209c000a1a4b4b8558dcb221c 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status
 (set-logic SLIA)
 
index 8abb33f33df69908885f23f9a366146e026e75cd..1805df168a96a8a4a01022e9990a65c8e4b4796d 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status
 (set-logic ALL)
 
index 834898b02a0d6cef4d84cad5cae94ae8aa5dc04d..2c79cadd6da3e5c80cfa1a8d869d75816f187640 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status
 (set-logic SLIA)
 (synth-fun f ((firstname String) (lastname String)) String
index 2c075388a648b8c7324d0132044bcdb2c972d59e..0066b7b698bb9d38938aedfc4980837aff68dff4 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status
 (set-logic SLIA)
 
index 8cbce19b67ec5e56032dd78d48b1b3ba56ad606b..909a887e49fa1dc2cd1f69ef07de9c08926ac35c 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status
 (set-logic SLIA)
 
index c0e3f0ea6ab02451d601d1e80d2a92b122925644..32240307058c42f5a1c33ab176586f76d79f6aab 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status
 (set-logic SLIA)
 
index ba9ac506466a79dd933bcc6f8b09e1ffe492492b..89fd5d424f50e8e80654260446bcc543bcc8f0bf 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status
 (set-logic SLIA)
 
index 7fe96cf14a0354403657fd7f23c77e70c198b90b..3823e6cab674e2cfa144855e75de095c7747af7b 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status
 (set-logic SLIA)
 
index 7539fdd0d761edffbd46dfdc73c9bc69584e2f14..ecf7d86e1bbf106c90b91a6f608b1a503398f89e 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status --decision=justification
 
 (set-logic LIA)
index d96960c8316891407e812aeae43e99551ee2ac5a..9bcb9e77463b52e75fedd7c61d26bdbb858dceeb 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status
 (set-logic ALL)
 
index c74ce79b7df9f0ef6a4e001c5291adac6cf5fc30..acf14ccaeeb6b3e028bad83cae296cc6ed940cfd 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status
 (set-logic HO_ALL)
 
index 6ac9048328c568be387cb35f674fb2a14646140d..fac55d9cb634c25ba9a3191fed357f562f1d030b 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status
 (set-logic LIA)
 (
index 385ade07f6413c6c9ffd6cba9fbf556c2394ffc0..10164d48fc5b5b1301f270566803e8071e2a5cb7 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status
 (set-logic ALL)
 (define-sort FP () (_ FloatingPoint 3 5))
index c5b72b009f388e5973ca523a064bcd975036e3f6..d2c5f6773d7e9dff369f9056c078f5749a0d63e8 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status
 
 (set-logic DTSLIA)
index 3da21f6dcd87fa69b6525ceedbf01a451f788b25..704f8a143dd25f9be0d93bf02b168a092b086b55 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-si=none --sygus-out=status
 (set-logic LIA)
 (synth-fun f ((x Int)) Int
index 7d6fa778ee72b8b8f0f307eec4cdf80182d9543f..1892885ae187b711215afdd09095fd392aef07f5 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-si=none --sygus-out=status
 (set-logic LIA)
 (synth-fun f ((x Int)) Int
index 8be604b23fb18d5e2a4a28785d06506fb280079b..a5e7a4252936d8b3acb1ebb4730c4fb67bdbf07f 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-si=none --sygus-out=status
 (set-logic LIA)
 (synth-fun f ((x Int)) Int
index 6ef891560272c971110fb37954e60bb3d53c1bf4..875ff3b2012be7564934a2d503934116ad640ee1 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status
 (set-logic LIA)
 
index 7f3fed923237c3c29274e46b05b23a2772ae2442..b94d4390eccec9a06f7f5a9859f19f203032e5f1 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-si=all --sygus-out=status
 (set-logic LIA)
 
index 16b3e27aa073922e158a1d86a47ed6516a5824fd..9da634005bc7c14c4a3c072bdf976cf3fbc6af49 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-si=all --sygus-out=status
 (set-logic LIA)
 (define-fun letf ((x Int) (y Int) (z Int)) Int (+ (+ y x) z))
index edfc2176becba26bb4c4a9082106a8ec9bc1518f..a39dae89b8dd81102cc576718809dc0aefb44af7 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status
 
 (set-logic LIA)
index a2c4c028dd601a26dede08516b735dbba2cb4ff5..fd34d5beaadb529c0def78a2fd613e3372c07fc0 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat\r
+; EXPECT: feasible\r
 ; COMMAND-LINE: --lang=sygus2 --sygus-fair=direct --sygus-out=status\r
 (set-logic SLIA)\r
 \r
index 9ff13d5ab843c893f88da2c8eef7f1c8ad38d650..0e5b03efcecefd4703b8084a704fd5aec6dcb72d 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status
 (set-logic LIA)
 
index 2b417784350eee1a8e9b4efba3feca1cf65689de..dea7d8f9c134036685146abc97345105f76ec19d 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status
 (set-logic LIA)
 (synth-fun findSum ((y1 Int) (y2 Int)) Int ((Start Int) (BoolExpr Bool)) (
index 6aa17ef307e2406f9d0228bdad66d131c5a37939..286fd13b3e79ca7532d3c263967855f16c85c1f6 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-unif-pi=complete --sygus-out=status
 (set-logic BV)
 
index 9e3d2ea7554a2b17859c70d6ab94ccc80eb26386..9a0c7055bbbed84f74ddd45b1fac81be21e05b1c 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status --sygus-repair-const --sygus-grammar-cons=any-const
 (set-logic LIA)
 
index 5b52e1da77ce51b08992e4ce1863ce6cbfc5f697..5e5a45f7bd8a09d5ab192cb9b60efce6085e7f68 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status
 (set-logic LIA)
 (synth-fun f ((x Int) (y Int)) Int)
index d7cc161dac89acd6fe51b385c9585ef93415264e..bc1286e76ec5f4e0dcab9cc737df346f438ebe72 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status
 (set-logic BV)
 
index b7637567f3c26ccbb665c89cbd6e217b2aef5461..cd5bb6244566fe0bbd6cea5d8d57d09e76eca077 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-si=none --sygus-out=status
 (set-logic LIRA)
 (define-fun
index d8222ded2d0e29ab75b5c8370dce58b2a6d74bcf..e4abed5d199f82d4eb9ac3b9a9c592d54c9f1362 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status
 ; Synthesize the maximum of 2 integers, but property has 4 variables (requires 2 passes)
 (set-logic LIA)
index 8c0e2d82b43c963e76d4ca25cc224526ea9129d6..29df32707bbf8bd3991cc07a9dbc0867547042c2 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status --fp-exp
 (set-logic ALL)
 (define-sort FP () (_ FloatingPoint 3 5))
index 98f13bb92b3532b8068dfee388a128a196be25bb..f3287ed52e94bfe31be45a277a9edd46b9ae1dfa 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status
 (set-logic LIA)
 
index 3a81a48855e2f726d123c5dd6bdb00362cd68dfd..8b08aaf1bbab2fd32e279a49eb0ee71a8ecafa80 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status --sygus-enum=fast
 (set-logic BV)
 
index 4e7c35033546efe5bdbebcca603a906deccafc2d..a3d7e28b4cc799a36a4cba88291360aceff0a2bf 100644 (file)
@@ -1,5 +1,5 @@
 ; COMMAND-LINE: --sygus-out=status --sygus-si=all
-; EXPECT: unsat
+; EXPECT: feasible
 
 ; This regression ensures that we are not too aggressive in filtering
 ; enumerated shapes in the pool.
index 1906e3ef1c0770068f154472a15c96b6bd92a905..4f5229a532d71b1559006ca9612dca61c0b1e27b 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status
 
 (set-logic LIA)
index 07f029577426ae68a8164fc20ad5397ff44a93c3..89b065ac1b640db35fbc1d294429eb173cd71ef3 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status
 (set-logic BV)
 (define-sort BV () (_ BitVec 8))
index 00a0099b0f1ec1129deaae5456a6367bd0474367..82d153b9f487e048e0df238f21b2ebc60ed0c765 100644 (file)
@@ -1,5 +1,5 @@
 ; COMMAND-LINE: --lang=sygus2 --sygus-si=none --sygus-out=status --no-sygus-repair-const --sygus-arg-relevant
-; EXPECT: unsat
+; EXPECT: feasible
 (set-logic LIA)
 
 (synth-fun f ((x1 Int) (x2 Int) (x3 Int) (x4 Int) (x5 Int) (x6 Int) (x7 Int) (x8 Int) (x9 Int) (x10 Int)) Int)
index 15bffb073802ffa381a179b4937afc6bac0e6477..2c86e75419b8dab4bf5ce28095db4f0a2d54e477 100644 (file)
@@ -1,5 +1,5 @@
 ; COMMAND-LINE: --lang=sygus2 --sygus-si=none --sygus-out=status --no-sygus-add-const-grammar --sygus-arg-relevant
-; EXPECT: unsat
+; EXPECT: feasible
 (set-logic LIA)
 
 (synth-fun f ((x1 Int) (x2 Int) (x3 Int) (x4 Int) (x5 Int) (x6 Int) (x7 Int) (x8 Int) (x9 Int) (x10 Int)) Int)
index 910126e2e34e94d9737e24051987c58282581e70..a67f0671ae02b0e90f63dbbb4b9f7ed6e7cacafc 100644 (file)
@@ -1,5 +1,5 @@
 ; COMMAND-LINE: --sygus-out=status
-; EXPECT: unsat
+; EXPECT: feasible
 (set-logic ALL)
 (define-fun safe-mod ((x Int) (y Int)) Int (mod x (+ 1 (abs y))))
 (synth-fun args_0_refinement_0
index d9a66bcceef65520efa26d702386af8a143c10b8..7d1c35e3abc341dca1c532eb1f579d4a04102f87 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status --sygus-si=none --no-sygus-pbe
 
 (set-logic LRA)
index 561014ed5501ca630fb293345db6b1287d2eed33..9a0149dd3d72422381be7fc69ab35b141dd6f6ec 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status --sygus-enum=fast
 (set-logic ALL)
 (synth-fun f ((x Int)) (Set Int))
index e0b039c167a89a48da70fc6892cd02f24b6fb29d..8312c4af5c0e8321d2f9fb0e3eca2fecc73e6c76 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status
 (set-logic ALL)
 
index 103992dfec69788bdda21373dbb7fb9550f44219..959c094ab0f69bca44779e63d9ba3b2c5d777ccc 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status
 (set-logic UFLIA)
 
index 17af8c93ba8e3476536f09e949144eda6d1bed8c..402b8d358a8b885be24e4b4d81edcb3ef6267a7e 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status --sygus-enum=fast
 
 (set-logic NIA)
index 4d9510adea71e9c4d8480d1e17c021e3bf78288a..baa97b0ccb7fb22a511f6fa0a355890b07aaaf42 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status --sygus-unif-pi=complete --cegis-sample=use
 
 (set-logic LIA)
index 06c4d3a783cbc933a1e68b905feed4f1851036ac..ba1fb07c60eca9fcdad9c905892a84f316fa039c 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-unif-pi=complete --sygus-out=status
 (set-logic LIA)
 
index aebc03dea04b6b04cf705a00643971f5dead9730..a01e307255625bfd606bf3461e9ae5cd8336d667 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status
 (set-logic LIA)
 (synth-fun inv ((i Int) (l Int)) Bool
index 0657494b1f89128f4bd9bb7cea4b4905e72e0bcd..514709735e27565f20d0441ab577853b2a77d827 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status --nl-ext-tplanes
 (set-logic NIA)
 
index 0e9b33148af636171e723dbf23c7d37247087463..21c7622bf1159ca309fb034bfbc83911715dcab1 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --sygus-out=status --lang=sygus2
 (set-logic ALL)
 
index 89f112e0af4f3be6562a69920f3a9abdc8a1e34b..d8fe765053ed4c1fd1ae84829ab173e257ad07d4 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status --decision=justification
 (set-logic LIA)
 
index d405d3b49b92ed8675475c503f8ea1592ffc677f..97c9875293924fff383f2767b5127f7e53ce38af 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status --no-sygus-pbe --sygus-si=none --sygus-grammar-cons=any-term --sygus-enum=smart
 (set-logic ALL)
 (synth-fun f ((x String) (y String)) Int)
index 34abb6de85fe931ad812a985b1fe88c60ce4e14e..ac866b052c5da658c1121a2239c97bd9333c7b6c 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status
 (set-logic LIA)
 (synth-fun inv ((i Int) (y Int) (l Int)) Bool
index c1d196f60b4d0636a12b5beb17e263e36f01f15b..e31234ed7985d843f86d19c89b5fee96b65c847f 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status --sygus-grammar-cons=any-term-concise --sygus-unif-pi=complete
 
 (set-logic LIA)
index a0122193d7b700baf7f84738ccf77ceb2863d1a8..8ce9bdfca8fbf3c4e8b0c2dbe8c1d06917ce1418 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: unsat
+; EXPECT: feasible
 ; COMMAND-LINE: --lang=sygus2 --sygus-out=status --no-sygus-repair-const --decision=justification
 (set-logic LIA)
 
index 7e9fd58809e467a5f44c89311c18becfe24d1007..c9b47e2de62c943a5e9b27c07cc3364c09978af9 100644 (file)
@@ -2679,7 +2679,8 @@ TEST_F(TestApiBlackSolver, getSynthSolution)
 
   ASSERT_THROW(d_solver.getSynthSolution(f), CVC5ApiException);
 
-  d_solver.checkSynth();
+  cvc5::api::SynthResult sr = d_solver.checkSynth();
+  ASSERT_EQ(sr.hasSolution(), true);
 
   ASSERT_NO_THROW(d_solver.getSynthSolution(f));
   ASSERT_NO_THROW(d_solver.getSynthSolution(f));
@@ -2722,9 +2723,11 @@ TEST_F(TestApiBlackSolver, checkSynthNext)
   d_solver.setOption("incremental", "true");
   Term f = d_solver.synthFun("f", {}, d_solver.getBooleanSort());
 
-  d_solver.checkSynth();
+  cvc5::api::SynthResult sr = d_solver.checkSynth();
+  ASSERT_EQ(sr.hasSolution(), true);
   ASSERT_NO_THROW(d_solver.getSynthSolutions({f}));
-  d_solver.checkSynthNext();
+  sr = d_solver.checkSynthNext();
+  ASSERT_EQ(sr.hasSolution(), true);
   ASSERT_NO_THROW(d_solver.getSynthSolutions({f}));
 }
 
index d2aebdbc46d898d2d5b70c681ce939b28f462ec4..813138323c659d6b2ee854170c712cbced723d32 100644 (file)
@@ -34,5 +34,41 @@ TEST_F(TestApiBlackSynthResult, isNull)
   ASSERT_FALSE(res_null.isUnknown());
 }
 
+TEST_F(TestApiBlackSynthResult, hasSolution)
+{
+  d_solver.setOption("sygus", "true");
+  Term f = d_solver.synthFun("f", {}, d_solver.getBooleanSort());
+  Term boolTerm = d_solver.mkTrue();
+  d_solver.addSygusConstraint(boolTerm);
+  cvc5::api::SynthResult res = d_solver.checkSynth();
+  ASSERT_FALSE(res.isNull());
+  ASSERT_TRUE(res.hasSolution());
+  ASSERT_FALSE(res.hasNoSolution());
+  ASSERT_FALSE(res.isUnknown());
+}
+
+TEST_F(TestApiBlackSynthResult, hasNoSolution)
+{
+  // note that we never return synth result for which hasNoSolution is true
+  // currently
+  cvc5::api::SynthResult res_null;
+  ASSERT_FALSE(res_null.hasNoSolution());
+}
+
+TEST_F(TestApiBlackSynthResult, isUnknown)
+{
+  d_solver.setOption("sygus", "true");
+  Term f = d_solver.synthFun("f", {}, d_solver.getBooleanSort());
+  Term boolTerm = d_solver.mkFalse();
+  d_solver.addSygusConstraint(boolTerm);
+  cvc5::api::SynthResult res = d_solver.checkSynth();
+  // currently isUnknown, could also return hasNoSolution when support for
+  // infeasibility of sygus conjectures is added.
+  ASSERT_FALSE(res.isNull());
+  ASSERT_FALSE(res.hasSolution());
+  ASSERT_FALSE(res.hasNoSolution());
+  ASSERT_TRUE(res.isUnknown());
+}
+
 }  // namespace test
 }  // namespace cvc5
index fe5afeee61fb21c83f2740ae87ab360d0fb4b279..1c01e32b5d091da14ad5e93939c0b4f3e4351866 100644 (file)
@@ -2641,7 +2641,8 @@ class SolverTest
 
     assertThrows(CVC5ApiException.class, () -> d_solver.getSynthSolution(f));
 
-    d_solver.checkSynth();
+    SynthResult sr = d_solver.checkSynth();
+    assertEquals(sr.hasSolution(), true);
 
     assertDoesNotThrow(() -> d_solver.getSynthSolution(f));
     assertDoesNotThrow(() -> d_solver.getSynthSolution(f));
@@ -2685,9 +2686,11 @@ class SolverTest
     d_solver.setOption("incremental", "true");
     Term f = d_solver.synthFun("f", new Term[] {}, d_solver.getBooleanSort());
 
-    d_solver.checkSynth();
+    SynthResult sr = d_solver.checkSynth();
+    assertEquals(sr.hasSolution(), true);
     assertDoesNotThrow(() -> d_solver.getSynthSolutions(new Term[] {f}));
-    d_solver.checkSynthNext();
+    sr = d_solver.checkSynthNext();
+    assertEquals(sr.hasSolution(), true);
     assertDoesNotThrow(() -> d_solver.getSynthSolutions(new Term[] {f}));
   }
 
index 058decd0b31f2b7058febb850c2c4f68152842d7..efc82a8162506f3add662f5e5445a7dc76863ae1 100644 (file)
@@ -44,4 +44,36 @@ class SynthResultTest
     assertFalse(res_null.hasNoSolution());
     assertFalse(res_null.isUnknown());
   }
+
+  @Test void hasSolution()
+  {
+    d_solver.setOption("sygus", "true");
+    Term f = d_solver.synthFun("f", new Term[] {}, d_solver.getBooleanSort());
+    Term boolTerm = d_solver.mkTrue();
+    d_solver.addSygusConstraint(boolTerm);
+    SynthResult res = d_solver.checkSynth();
+    assertFalse(res.isNull());
+    assertTrue(res.hasSolution());
+    assertFalse(res.hasNoSolution());
+    assertFalse(res.isUnknown());
+  }
+
+  @Test void hasNoSolution()
+  {
+    SynthResult res_null = d_solver.getNullSynthResult();
+    assertFalse(res_null.hasSolution());
+  }
+
+  @Test void isUnknown()
+  {
+    d_solver.setOption("sygus", "true");
+    Term f = d_solver.synthFun("f", new Term[] {}, d_solver.getBooleanSort());
+    Term boolTerm = d_solver.mkTrue();
+    d_solver.addSygusConstraint(boolTerm);
+    SynthResult res = d_solver.checkSynth();
+    assertFalse(res.isNull());
+    assertTrue(res.hasSolution());
+    assertFalse(res.hasNoSolution());
+    assertFalse(res.isUnknown());
+  }
 }
index 6f18d96b4bd419caa7223fc02e43bf3538759837..099b1171ba8d61ffb578f1276474f78675d8d91f 100644 (file)
@@ -2046,7 +2046,8 @@ def test_get_synth_solution(solver):
     with pytest.raises(RuntimeError):
         solver.getSynthSolution(f)
 
-    solver.checkSynth()
+    res = solver.checkSynth()
+    assert res.hasSolution()
 
     solver.getSynthSolution(f)
     solver.getSynthSolution(f)
@@ -2065,10 +2066,12 @@ def test_check_synth_next(solver):
     solver.setOption("incremental", "true")
     f = solver.synthFun("f", [], solver.getBooleanSort())
 
-    solver.checkSynth()
+    res = solver.checkSynth()
+    assert res.hasSolution()
     solver.getSynthSolutions([f])
 
-    solver.checkSynthNext()
+    res = solver.checkSynthNext()
+    assert res.hasSolution()
     solver.getSynthSolutions([f])
 
 def test_check_synth_next2(solver):
index a07b635de5e69d8504e26cf290d801d1f434d2bb..27ff9f2d2844474236b97b9637a8b858bdbbca4a 100644 (file)
@@ -31,3 +31,29 @@ def test_is_null(solver):
     assert not res_null.hasSolution()
     assert not res_null.hasNoSolution()
     assert not res_null.isUnknown()
+
+def test_has_solution(solver):
+    solver.setOption("sygus", "true")
+    f = solver.synthFun("f", [], solver.getBooleanSort())
+    boolTerm = solver.mkBoolean(True)
+    solver.addSygusConstraint(boolTerm)
+    res = solver.checkSynth()
+    assert not res_null.isNull()
+    assert res_null.hasSolution()
+    assert not res_null.hasNoSolution()
+    assert not res_null.isUnknown()
+
+def test_has_no_solution(solver):
+    res_null = SynthResult(solver)
+    assert not res_null.hasNoSolution()
+
+def test_has_is_unknown(solver):
+    solver.setOption("sygus", "true")
+    f = solver.synthFun("f", [], solver.getBooleanSort())
+    boolTerm = solver.mkBoolean(False)
+    solver.addSygusConstraint(boolTerm)
+    res = solver.checkSynth()
+    assert not res_null.isNull()
+    assert not res_null.hasSolution()
+    assert not res_null.hasNoSolution()
+    assert res_null.isUnknown()