Rename checkValid/query to checkEntailed. (#4191)
authorAina Niemetz <aina.niemetz@gmail.com>
Wed, 1 Apr 2020 01:12:16 +0000 (18:12 -0700)
committerGitHub <noreply@github.com>
Wed, 1 Apr 2020 01:12:16 +0000 (18:12 -0700)
This renames api::Solver::checkValidAssuming to checkEntailed and
removes api::Solver::checkValid. Internally, SmtEngine::query is renamed
to SmtEngine::checkEntailed, and these changes are further propagated to
the Result class.

268 files changed:
examples/SimpleVC.java
examples/SimpleVC.ml
examples/SimpleVC.php
examples/SimpleVC.pl
examples/SimpleVC.py
examples/SimpleVC.rb
examples/SimpleVC.tcl
examples/api/bitvectors-new.cpp
examples/api/bitvectors.cpp
examples/api/combination-new.cpp
examples/api/combination.cpp
examples/api/extract-new.cpp
examples/api/extract.cpp
examples/api/helloworld-new.cpp
examples/api/helloworld.cpp
examples/api/java/BitVectors.java
examples/api/java/Combination.java
examples/api/java/HelloWorld.java
examples/api/java/LinearArith.java
examples/api/linear_arith-new.cpp
examples/api/linear_arith.cpp
examples/api/python/bitvectors.py
examples/api/python/combination.py
examples/api/python/extract.py
examples/api/python/helloworld.py
examples/api/python/linear_arith.py
examples/api/python/sets.py
examples/api/sets-new.cpp
examples/api/sets.cpp
examples/simple_vc_cxx.cpp
src/api/cvc4cpp.cpp
src/api/cvc4cpp.h
src/api/python/cvc4.pxd
src/api/python/cvc4.pxi
src/smt/command.cpp
src/smt/smt_engine.cpp
src/smt/smt_engine.h
src/util/result.cpp
src/util/result.h
src/util/result.i
test/regress/regress0/arith/arith.01.cvc
test/regress/regress0/arith/arith.02.cvc
test/regress/regress0/arith/arith.03.cvc
test/regress/regress0/arith/bug549.cvc
test/regress/regress0/arith/integers/arith-int-014.cvc
test/regress/regress0/arith/integers/arith-int-015.cvc
test/regress/regress0/arith/integers/arith-int-021.cvc
test/regress/regress0/arith/integers/arith-int-023.cvc
test/regress/regress0/arith/integers/arith-int-025.cvc
test/regress/regress0/arith/integers/arith-int-042.cvc
test/regress/regress0/arith/integers/arith-int-042.min.cvc
test/regress/regress0/arith/integers/arith-int-079.cvc
test/regress/regress0/arith/integers/arith-interval.cvc
test/regress/regress0/boolean-prec.cvc
test/regress/regress0/bug310.cvc
test/regress/regress0/bug32.cvc
test/regress/regress0/bug322b.cvc
test/regress/regress0/bug486.cvc
test/regress/regress0/bv/bvcomp.cvc
test/regress/regress0/bv/bvsimple.cvc
test/regress/regress0/cvc-rerror-print.cvc
test/regress/regress0/cvc3-bug15.cvc
test/regress/regress0/cvc3.userdoc.01.cvc
test/regress/regress0/cvc3.userdoc.02.cvc
test/regress/regress0/cvc3.userdoc.03.cvc
test/regress/regress0/cvc3.userdoc.04.cvc
test/regress/regress0/cvc3.userdoc.05.cvc
test/regress/regress0/cvc3.userdoc.06.cvc
test/regress/regress0/datatypes/bug286.cvc
test/regress/regress0/datatypes/datatype-dump.cvc
test/regress/regress0/datatypes/datatype.cvc
test/regress/regress0/datatypes/datatype0.cvc
test/regress/regress0/datatypes/datatype1.cvc
test/regress/regress0/datatypes/datatype13.cvc
test/regress/regress0/datatypes/datatype2.cvc
test/regress/regress0/datatypes/datatype3.cvc
test/regress/regress0/datatypes/datatype4.cvc
test/regress/regress0/datatypes/empty_tuprec.cvc
test/regress/regress0/datatypes/mutually-recursive.cvc
test/regress/regress0/datatypes/rec1.cvc
test/regress/regress0/datatypes/rec2.cvc
test/regress/regress0/datatypes/rec4.cvc
test/regress/regress0/datatypes/rewriter.cvc
test/regress/regress0/datatypes/tuple-record-bug.cvc
test/regress/regress0/datatypes/tuple.cvc
test/regress/regress0/datatypes/typed_v10l30054.cvc
test/regress/regress0/datatypes/typed_v1l80005.cvc
test/regress/regress0/datatypes/typed_v2l30079.cvc
test/regress/regress0/datatypes/typed_v3l20092.cvc
test/regress/regress0/datatypes/typed_v5l30069.cvc
test/regress/regress0/datatypes/v10l40099.cvc
test/regress/regress0/datatypes/v2l40025.cvc
test/regress/regress0/datatypes/v3l60006.cvc
test/regress/regress0/datatypes/v5l30058.cvc
test/regress/regress0/datatypes/wrong-sel-simp.cvc
test/regress/regress0/fmf/bug-041417-set-options.cvc
test/regress/regress0/let.cvc
test/regress/regress0/logops.01.cvc
test/regress/regress0/logops.02.cvc
test/regress/regress0/logops.03.cvc
test/regress/regress0/logops.04.cvc
test/regress/regress0/logops.05.cvc
test/regress/regress0/precedence/and-not.cvc
test/regress/regress0/precedence/and-xor.cvc
test/regress/regress0/precedence/bool-cmp.cvc
test/regress/regress0/precedence/cmp-plus.cvc
test/regress/regress0/precedence/eq-fun.cvc
test/regress/regress0/precedence/iff-assoc.cvc
test/regress/regress0/precedence/iff-implies.cvc
test/regress/regress0/precedence/implies-assoc.cvc
test/regress/regress0/precedence/implies-iff.cvc
test/regress/regress0/precedence/implies-or.cvc
test/regress/regress0/precedence/not-and.cvc
test/regress/regress0/precedence/not-eq.cvc
test/regress/regress0/precedence/or-implies.cvc
test/regress/regress0/precedence/or-xor.cvc
test/regress/regress0/precedence/plus-mult.cvc
test/regress/regress0/precedence/xor-and.cvc
test/regress/regress0/precedence/xor-assoc.cvc
test/regress/regress0/precedence/xor-or.cvc
test/regress/regress0/preprocess/preprocess_00.cvc
test/regress/regress0/preprocess/preprocess_02.cvc
test/regress/regress0/preprocess/preprocess_06.cvc
test/regress/regress0/preprocess/preprocess_13.cvc
test/regress/regress0/printer/tuples_and_records.cvc
test/regress/regress0/push-pop/bug233.cvc
test/regress/regress0/push-pop/incremental-subst-bug.cvc
test/regress/regress0/quantifiers/cegqi-nl-simp.cvc
test/regress/regress0/sets/cvc-sample.cvc
test/regress/regress0/simple.cvc
test/regress/regress0/smallcnf.cvc
test/regress/regress0/smtlib/set-info-status.smt2
test/regress/regress0/test11.cvc
test/regress/regress0/test9.cvc
test/regress/regress0/uf/simple.01.cvc
test/regress/regress0/uf/simple.02.cvc
test/regress/regress0/uf/simple.03.cvc
test/regress/regress0/uf/simple.04.cvc
test/regress/regress0/uf20-03.cvc
test/regress/regress0/wiki.01.cvc
test/regress/regress0/wiki.02.cvc
test/regress/regress0/wiki.03.cvc
test/regress/regress0/wiki.04.cvc
test/regress/regress0/wiki.05.cvc
test/regress/regress0/wiki.06.cvc
test/regress/regress0/wiki.07.cvc
test/regress/regress0/wiki.08.cvc
test/regress/regress0/wiki.09.cvc
test/regress/regress0/wiki.10.cvc
test/regress/regress0/wiki.11.cvc
test/regress/regress0/wiki.12.cvc
test/regress/regress0/wiki.13.cvc
test/regress/regress0/wiki.14.cvc
test/regress/regress0/wiki.15.cvc
test/regress/regress0/wiki.16.cvc
test/regress/regress0/wiki.17.cvc
test/regress/regress0/wiki.18.cvc
test/regress/regress0/wiki.19.cvc
test/regress/regress0/wiki.20.cvc
test/regress/regress0/wiki.21.cvc
test/regress/regress1/arith/arith-int-001.cvc
test/regress/regress1/arith/arith-int-002.cvc
test/regress/regress1/arith/arith-int-003.cvc
test/regress/regress1/arith/arith-int-004.cvc
test/regress/regress1/arith/arith-int-005.cvc
test/regress/regress1/arith/arith-int-006.cvc
test/regress/regress1/arith/arith-int-007.cvc
test/regress/regress1/arith/arith-int-008.cvc
test/regress/regress1/arith/arith-int-009.cvc
test/regress/regress1/arith/arith-int-010.cvc
test/regress/regress1/arith/arith-int-011.cvc
test/regress/regress1/arith/arith-int-012.cvc
test/regress/regress1/arith/arith-int-013.cvc
test/regress/regress1/arith/arith-int-016.cvc
test/regress/regress1/arith/arith-int-017.cvc
test/regress/regress1/arith/arith-int-018.cvc
test/regress/regress1/arith/arith-int-019.cvc
test/regress/regress1/arith/arith-int-020.cvc
test/regress/regress1/arith/arith-int-022.cvc
test/regress/regress1/arith/arith-int-024.cvc
test/regress/regress1/arith/arith-int-026.cvc
test/regress/regress1/arith/arith-int-027.cvc
test/regress/regress1/arith/arith-int-028.cvc
test/regress/regress1/arith/arith-int-029.cvc
test/regress/regress1/arith/arith-int-030.cvc
test/regress/regress1/arith/arith-int-031.cvc
test/regress/regress1/arith/arith-int-032.cvc
test/regress/regress1/arith/arith-int-033.cvc
test/regress/regress1/arith/arith-int-034.cvc
test/regress/regress1/arith/arith-int-035.cvc
test/regress/regress1/arith/arith-int-036.cvc
test/regress/regress1/arith/arith-int-037.cvc
test/regress/regress1/arith/arith-int-038.cvc
test/regress/regress1/arith/arith-int-039.cvc
test/regress/regress1/arith/arith-int-040.cvc
test/regress/regress1/arith/arith-int-041.cvc
test/regress/regress1/arith/arith-int-043.cvc
test/regress/regress1/arith/arith-int-044.cvc
test/regress/regress1/arith/arith-int-045.cvc
test/regress/regress1/arith/arith-int-046.cvc
test/regress/regress1/arith/arith-int-047.cvc
test/regress/regress1/arith/arith-int-048.cvc
test/regress/regress1/arith/arith-int-049.cvc
test/regress/regress1/arith/arith-int-050.cvc
test/regress/regress1/arith/arith-int-051.cvc
test/regress/regress1/arith/arith-int-052.cvc
test/regress/regress1/arith/arith-int-053.cvc
test/regress/regress1/arith/arith-int-054.cvc
test/regress/regress1/arith/arith-int-055.cvc
test/regress/regress1/arith/arith-int-056.cvc
test/regress/regress1/arith/arith-int-057.cvc
test/regress/regress1/arith/arith-int-058.cvc
test/regress/regress1/arith/arith-int-059.cvc
test/regress/regress1/arith/arith-int-060.cvc
test/regress/regress1/arith/arith-int-061.cvc
test/regress/regress1/arith/arith-int-062.cvc
test/regress/regress1/arith/arith-int-063.cvc
test/regress/regress1/arith/arith-int-064.cvc
test/regress/regress1/arith/arith-int-065.cvc
test/regress/regress1/arith/arith-int-066.cvc
test/regress/regress1/arith/arith-int-067.cvc
test/regress/regress1/arith/arith-int-068.cvc
test/regress/regress1/arith/arith-int-069.cvc
test/regress/regress1/arith/arith-int-070.cvc
test/regress/regress1/arith/arith-int-071.cvc
test/regress/regress1/arith/arith-int-072.cvc
test/regress/regress1/arith/arith-int-073.cvc
test/regress/regress1/arith/arith-int-074.cvc
test/regress/regress1/arith/arith-int-075.cvc
test/regress/regress1/arith/arith-int-076.cvc
test/regress/regress1/arith/arith-int-077.cvc
test/regress/regress1/arith/arith-int-078.cvc
test/regress/regress1/arith/arith-int-080.cvc
test/regress/regress1/arith/arith-int-081.cvc
test/regress/regress1/arith/arith-int-082.cvc
test/regress/regress1/arith/arith-int-083.cvc
test/regress/regress1/arith/arith-int-084.cvc
test/regress/regress1/arith/arith-int-085.cvc
test/regress/regress1/arith/arith-int-086.cvc
test/regress/regress1/arith/arith-int-087.cvc
test/regress/regress1/arith/arith-int-088.cvc
test/regress/regress1/arith/arith-int-089.cvc
test/regress/regress1/arith/arith-int-090.cvc
test/regress/regress1/arith/arith-int-091.cvc
test/regress/regress1/arith/arith-int-092.cvc
test/regress/regress1/arith/arith-int-093.cvc
test/regress/regress1/arith/arith-int-094.cvc
test/regress/regress1/arith/arith-int-095.cvc
test/regress/regress1/arith/arith-int-096.cvc
test/regress/regress1/arith/arith-int-097.cvc
test/regress/regress1/arith/arith-int-099.cvc
test/regress/regress1/arith/arith-int-100.cvc
test/regress/regress1/boolean.cvc
test/regress/regress1/fmf/ko-bound-set.cvc
test/regress/regress1/hole6.cvc
test/regress/regress1/quantifiers/set-choice-koikonomou.cvc
test/regress/regress1/test12.cvc
test/regress/regress2/arith/arith-int-098.cvc
test/regress/regress2/hole7.cvc
test/regress/regress2/hole8.cvc
test/regress/regress2/typed_v1l50016-simp.cvc
test/regress/regress3/hole9.cvc
test/regress/regress4/hole10.cvc
test/system/boilerplate.cpp
test/system/statistics.cpp
test/system/two_smt_engines.cpp
test/unit/api/result_black.h
test/unit/api/solver_black.h

index e77a5e99fa57d553b8bc299dcfcae1eb17a53a40..798dc08af39683ef7cb794018a8d9ea8d398b73b 100644 (file)
@@ -55,8 +55,9 @@ public class SimpleVC {
       new Expr(em.mkExpr(Kind.AND, x_positive, y_positive)).
       impExpr(new Expr(twox_plus_y_geq_3));
 
-    System.out.println("Checking validity of formula " + formula + " with CVC4.");
-    System.out.println("CVC4 should report VALID.");
-    System.out.println("Result from CVC4 is: " + smt.query(formula));
+    System.out.println(
+        "Checking entailment of formula " + formula + " with CVC4.");
+    System.out.println("CVC4 should report ENTAILED.");
+    System.out.println("Result from CVC4 is: " + smt.checkEntailed(formula));
   }
 }
index c89341dc80ad463c7a41e4ef7891e175b4fb1d77..d9d78586b9b9ab78733ac66acbf083bf234532c5 100644 (file)
@@ -79,13 +79,13 @@ let formula = em->mkExpr(implies, lhs, twox_plus_y_geq_3)
 
 let bformula = new_Expr(formula) in
 
-print_string "Checking validity of formula " ;
+print_string "Checking entailment of formula " ;
 print_string (get_string (formula->toString ())) ;
 print_string " with CVC4." ;
 print_newline () ;
-print_string "CVC4 should report VALID." ;
+print_string "CVC4 should report ENTAILED." ;
 print_newline () ;
 print_string "Result from CVC4 is: " ;
-print_string (get_string (smt->query(bformula)->toString ())) ;
+print_string (get_string (smt->checkEntailed(bformula)->toString ())) ;
 print_newline ()
 ;;
index 3294467033dcaf5ac00a5d580aa586d83340f54d..031c0a1c5b6906fe0ab88dcfbaa157c1ad5472e8 100755 (executable)
@@ -50,7 +50,7 @@ my $twox_plus_y_geq_3 = $em->mkExpr($CVC4::GEQ, $twox_plus_y, $three);
 
 my $formula = new CVC4::Expr($em->mkExpr($CVC4::AND, $x_positive, $y_positive))->impExpr(new CVC4::Expr($twox_plus_y_geq_3));
 
-print "Checking validity of formula " . $formula->toString() . " with CVC4.\n";
-print "CVC4 should report VALID.\n";
-print "Result from CVC4 is: " . $smt->query($formula)->toString() . "\n";
+print "Checking entailment of formula " . $formula->toString() . " with CVC4.\n";
+print "CVC4 should report ENTAILED.\n";
+print "Result from CVC4 is: " . $smt->checkEntailed($formula)->toString() . "\n";
 
index 998c28bb092011a5a5f2154c4c7dd31ef8786c74..20ad6c737d5befb9d07d0277db01eff943d83ae5 100755 (executable)
@@ -50,7 +50,7 @@ my $twox_plus_y_geq_3 = $em->mkExpr($CVC4::GEQ, $twox_plus_y, $three);
 
 my $formula = new CVC4::Expr($em->mkExpr($CVC4::AND, $x_positive, $y_positive))->impExpr(new CVC4::Expr($twox_plus_y_geq_3));
 
-print "Checking validity of formula " . $formula->toString() . " with CVC4.\n";
-print "CVC4 should report VALID.\n";
-print "Result from CVC4 is: " . $smt->query($formula)->toString() . "\n";
+print "Checking entailment of formula " . $formula->toString() . " with CVC4.\n";
+print "CVC4 should report ENTAILED.\n";
+print "Result from CVC4 is: " . $smt->checkEntailed($formula)->toString() . "\n";
 
index 4c21d35c063db3c528b7c196f2ab274bb1d4d3ea..5550974c94ad8ef1e3813a6d22b4f5bc8e236eb6 100755 (executable)
@@ -53,9 +53,9 @@ def main():
 
   formula = Expr(em.mkExpr(CVC4.AND, x_positive, y_positive)).impExpr(Expr(twox_plus_y_geq_3))
 
-  print("Checking validity of formula " + formula.toString() + " with CVC4.")
-  print("CVC4 should report VALID.")
-  print("Result from CVC4 is: " + smt.query(formula).toString())
+  print("Checking entailment of formula " + formula.toString() + " with CVC4.")
+  print("CVC4 should report ENTAILED .")
+  print("Result from CVC4 is: " + smt.checkEntailed(formula).toString())
 
   return 0
 
index 0d19ef49fd7e765334fe075e048546b9340ddf2d..4f289d34f95ef1846f4f473dabe014b47e9f735e 100755 (executable)
@@ -49,9 +49,9 @@ twox_plus_y_geq_3 = em.mkExpr(GEQ, twox_plus_y, three)
 
 formula = Expr.new(em.mkExpr(AND, x_positive, y_positive)).impExpr(Expr.new(twox_plus_y_geq_3))
 
-puts "Checking validity of formula " + formula.toString + " with CVC4."
-puts "CVC4 should report VALID."
-puts "Result from CVC4 is: " + smt.query(formula).toString
+puts "Checking entailment of formula " + formula.toString + " with CVC4."
+puts "CVC4 should report ENTAILED."
+puts "Result from CVC4 is: " + smt.checkEntailed(formula).toString
 
 exit
 
index ed0decb26e64fa80ba923e8812cff661cbd88f98..4e1c76c5a90374623a95d7004c102409aa444549 100755 (executable)
@@ -48,7 +48,7 @@ set twox_plus_y_geq_3 [ExprManager_mkExpr em $GEQ $twox_plus_y $three]
 
 set formula [Expr_impExpr [Expr _1 [ExprManager_mkExpr em $AND $x_positive $y_positive]] [Expr _2 $twox_plus_y_geq_3]]
 
-puts "Checking validity of formula [Expr_toString $formula] with CVC4."
-puts "CVC4 should report VALID."
-puts "Result from CVC4 is: [Result_toString [SmtEngine_query smt $formula]]"
+puts "Checking entailment of formula [Expr_toString $formula] with CVC4."
+puts "CVC4 should report ENTAILED."
+puts "Result from CVC4 is: [Result_toString [SmtEngine_checkEntailed smt $formula]]"
 
index 4578da7335e6f26eb3f29b3f0570b7a7b73a23bf..ebb8ee7eeac09a3c8c42ac74af673d889b297ec9 100644 (file)
@@ -87,9 +87,9 @@ int main()
   slv.assertFormula(assignment1);
   Term new_x_eq_new_x_ = slv.mkTerm(EQUAL, new_x, new_x_);
 
-  cout << " Check validity assuming: " << new_x_eq_new_x_ << endl;
-  cout << " Expect valid. " << endl;
-  cout << " CVC4: " << slv.checkValidAssuming(new_x_eq_new_x_) << endl;
+  cout << " Check entailment assuming: " << new_x_eq_new_x_ << endl;
+  cout << " Expect ENTAILED. " << endl;
+  cout << " CVC4: " << slv.checkEntailed(new_x_eq_new_x_) << endl;
   cout << " Popping context. " << endl;
   slv.pop();
 
@@ -103,15 +103,15 @@ int main()
   cout << "Asserting " << assignment2 << " to CVC4 " << endl;
   slv.assertFormula(assignment2);
 
-  cout << " Check validity assuming: " << new_x_eq_new_x_ << endl;
-  cout << " Expect valid. " << endl;
-  cout << " CVC4: " << slv.checkValidAssuming(new_x_eq_new_x_) << endl;
+  cout << " Check entailment assuming: " << new_x_eq_new_x_ << endl;
+  cout << " Expect ENTAILED. " << endl;
+  cout << " CVC4: " << slv.checkEntailed(new_x_eq_new_x_) << endl;
 
   Term x_neq_x = slv.mkTerm(EQUAL, x, x).notTerm();
   std::vector<Term> v{new_x_eq_new_x_, x_neq_x};
-  cout << " Check Validity Assuming: " << v << endl;
-  cout << " Expect invalid. " << endl;
-  cout << " CVC4: " << slv.checkValidAssuming(v) << endl;
+  cout << " Check entailment assuming: " << v << endl;
+  cout << " Expect NOT_ENTAILED. " << endl;
+  cout << " CVC4: " << slv.checkEntailed(v) << endl;
 
   // Assert that a is odd
   Op extract_op = slv.mkOp(BITVECTOR_EXTRACT, 0, 0);
index 259eb48ff5014c96a6d6e1a6ad0e16c8b7502260..494a45abc71d1e82a6cee30355d0d3462daaf360 100644 (file)
@@ -87,8 +87,8 @@ int main() {
   Expr new_x_eq_new_x_ = em.mkExpr(kind::EQUAL, new_x, new_x_);
 
   cout << " Querying: " << new_x_eq_new_x_ << endl;
-  cout << " Expect valid. " << endl;
-  cout << " CVC4: " << smt.query(new_x_eq_new_x_) << endl;
+  cout << " Expect entailed. " << endl;
+  cout << " CVC4: " << smt.checkEntailed(new_x_eq_new_x_) << endl;
   cout << " Popping context. " << endl;
   smt.pop();
 
@@ -103,14 +103,14 @@ int main() {
   smt.assertFormula(assignment2);
 
   cout << " Querying: " << new_x_eq_new_x_ << endl;
-  cout << " Expect valid. " << endl;
-  cout << " CVC4: " << smt.query(new_x_eq_new_x_) << endl;
+  cout << " Expect ENTAILED. " << endl;
+  cout << " CVC4: " << smt.checkEntailed(new_x_eq_new_x_) << endl;
 
   Expr x_neq_x = em.mkExpr(kind::EQUAL, x, x).notExpr();
   std::vector<Expr> v{new_x_eq_new_x_, x_neq_x};
   cout << " Querying: " << v << endl;
-  cout << " Expect invalid. " << endl;
-  cout << " CVC4: " << smt.query(v) << endl;
+  cout << " Expect NOT_ENTAILED. " << endl;
+  cout << " CVC4: " << smt.checkEntailed(v) << endl;
 
   // Assert that a is odd 
   Expr extract_op = em.mkConst(BitVectorExtract(0, 0));
index 5284a01193f7ea79fcd96a783a3619baa6dcbdf2..546d9ee9c08ed818f4a7c9d4eb38d004dd9b3ef2 100644 (file)
@@ -82,9 +82,10 @@ int main()
   cout << "Given the following assertions:" << endl
        << assertions << endl << endl;
 
-  cout << "Prove x /= y is valid. " << endl
-       << "CVC4: " << slv.checkValidAssuming(slv.mkTerm(DISTINCT, x, y))
-       << "." << endl << endl;
+  cout << "Prove x /= y is entailed. " << endl
+       << "CVC4: " << slv.checkEntailed(slv.mkTerm(DISTINCT, x, y)) << "."
+       << endl
+       << endl;
 
   cout << "Call checkSat to show that the assertions are satisfiable. "
        << endl
index 646e6b17a20244c69f243f1394c0fde8761b8d3e..2e972a54396619558e013d7093e66c2ab97b2e2f 100644 (file)
@@ -86,8 +86,8 @@ int main() {
 
   cout << "Given the following assumptions:" << endl
        << assumptions << endl
-       << "Prove x /= y is valid. "
-       << "CVC4 says: " << smt.query(em.mkExpr(kind::DISTINCT, x, y))
+       << "Prove x /= y is entailed. "
+       << "CVC4 says: " << smt.checkEntailed(em.mkExpr(kind::DISTINCT, x, y))
        << "." << endl;
 
   cout << "Now we call checksat on a trivial query to show that" << endl
index 0f0f8243a8fdd5a33ed2231ca9a07d92b05a3423..705cdd90f90959e6d77277c10be59ead7cdf26eb 100644 (file)
@@ -47,9 +47,9 @@ int main()
   slv.assertFormula(eq);
 
   Term eq2 = slv.mkTerm(EQUAL, x_31_31, x_0_0);
-  cout << " Check validity assuming: " << eq2 << endl;
-  cout << " Expect valid. " << endl;
-  cout << " CVC4: " << slv.checkValidAssuming(eq2) << endl;
+  cout << " Check entailment assuming: " << eq2 << endl;
+  cout << " Expect ENTAILED. " << endl;
+  cout << " CVC4: " << slv.checkEntailed(eq2) << endl;
 
   return 0;
 }
index a008ec718d8709659322c48c327278bdbb3afef7..e2558df28ef96312adc713813b5deb432a221c82 100644 (file)
@@ -48,8 +48,8 @@ int main() {
 
   Expr eq2 = em.mkExpr(kind::EQUAL, x_31_31, x_0_0);
   cout << " Querying: " << eq2 << endl;
-  cout << " Expect valid. " << endl;
-  cout << " CVC4: " << smt.query(eq2) << endl;
+  cout << " Expect entailed. " << endl;
+  cout << " CVC4: " << smt.checkEntailed(eq2) << endl;
 
   return 0;
 }
index ab869f03cea5691551fd5eed3dba87b70ed56c10..f442c141200e0989591b1acf6f267b1b471a9368 100644 (file)
@@ -24,7 +24,7 @@ int main()
 {
   Solver slv;
   Term helloworld = slv.mkVar(slv.getBooleanSort(), "Hello World!");
-  std::cout << helloworld << " is " << slv.checkValidAssuming(helloworld)
+  std::cout << helloworld << " is " << slv.checkEntailed(helloworld)
             << std::endl;
   return 0;
 }
index befeaa7bdb0ef44104a0177ba6bd09d51a7b4b8e..49a334504dd31811bffe899fd03108ebabcea2f5 100644 (file)
@@ -23,6 +23,7 @@ int main() {
   ExprManager em;
   Expr helloworld = em.mkVar("Hello World!", em.booleanType());
   SmtEngine smt(&em);
-  std::cout << helloworld << " is " << smt.query(helloworld) << std::endl;
+  std::cout << helloworld << " is " << smt.checkEntailed(helloworld)
+            << std::endl;
   return 0;
 }
index 17111b63acfffda79c63b6066630186a8ed4d90b..bb2245a6fdc19074e79af5a47b42d23265a36084 100644 (file)
@@ -86,8 +86,8 @@ public class BitVectors {
     Expr new_x_eq_new_x_ = em.mkExpr(Kind.EQUAL, new_x, new_x_);
 
     System.out.println(" Querying: " + new_x_eq_new_x_);
-    System.out.println(" Expect valid. ");
-    System.out.println(" CVC4: " + smt.query(new_x_eq_new_x_));
+    System.out.println(" Expect entailed. ");
+    System.out.println(" CVC4: " + smt.checkEntailed(new_x_eq_new_x_));
     System.out.println(" Popping context. ");
     smt.pop();
 
@@ -102,7 +102,7 @@ public class BitVectors {
     smt.assertFormula(assignment2);
 
     System.out.println(" Querying: " + new_x_eq_new_x_);
-    System.out.println(" Expect valid. ");
-    System.out.println(" CVC4: " + smt.query(new_x_eq_new_x_));
+    System.out.println(" Expect entailed. ");
+    System.out.println(" CVC4: " + smt.checkEntailed(new_x_eq_new_x_));
   }
 }
index 0c9ca84d6f7037857b4be63bc3a8bf507c28623a..53b1fa92db35b469e53643c24a093f207f3a50f1 100644 (file)
@@ -83,10 +83,9 @@ public class Combination {
 
     System.out.println("Given the following assumptions:");
     System.out.println(assumptions);
-    System.out.println("Prove x /= y is valid. " +
-                       "CVC4 says: " + smt.query(em.mkExpr(Kind.DISTINCT, x, y)) +
-                       ".");
-
+    System.out.println("Prove x /= y is entailed. "
+        + "CVC4 says: " + smt.checkEntailed(em.mkExpr(Kind.DISTINCT, x, y))
+        + ".");
 
     System.out.println("Now we call checksat on a trivial query to show that");
     System.out.println("the assumptions are satisfiable: " +
index 393ce40f0c92a725186108799fba5179c258b3eb..a08f3d452932044656c343a90c10910fefeafa28 100644 (file)
@@ -30,6 +30,6 @@ public class HelloWorld {
     Expr helloworld = em.mkVar("Hello World!", em.booleanType());
     SmtEngine smt = new SmtEngine(em);
 
-    System.out.println(helloworld + " is " + smt.query(helloworld));
+    System.out.println(helloworld + " is " + smt.checkEntailed(helloworld));
   }
 }
index 2ddf9258432e4dd0ca5f443a11d448fcc8ee11c1..e060263b465afbb8775b68c854d8e8cae62de04f 100644 (file)
@@ -61,8 +61,9 @@ public class LinearArith {
     smt.push();
     Expr diff_leq_two_thirds = em.mkExpr(Kind.LEQ, diff, two_thirds);
     System.out.println("Prove that " + diff_leq_two_thirds + " with CVC4.");
-    System.out.println("CVC4 should report VALID.");
-    System.out.println("Result from CVC4 is: " + smt.query(diff_leq_two_thirds));
+    System.out.println("CVC4 should report ENTAILED.");
+    System.out.println(
+        "Result from CVC4 is: " + smt.checkEntailed(diff_leq_two_thirds));
     smt.pop();
 
     System.out.println();
index a4ff9a2cc74bdb0899a81816e75922c03aa96c29..887c35d24f57146a48ed8e4cd232c7b26c23db17 100644 (file)
@@ -62,9 +62,9 @@ int main()
   slv.push();
   Term diff_leq_two_thirds = slv.mkTerm(LEQ, diff, two_thirds);
   cout << "Prove that " << diff_leq_two_thirds << " with CVC4." << endl;
-  cout << "CVC4 should report VALID." << endl;
-  cout << "Result from CVC4 is: "
-       << slv.checkValidAssuming(diff_leq_two_thirds) << endl;
+  cout << "CVC4 should report ENTAILED." << endl;
+  cout << "Result from CVC4 is: " << slv.checkEntailed(diff_leq_two_thirds)
+       << endl;
   slv.pop();
 
   cout << endl;
index f1c8b861cb42d00360a4f82d6bb8a3335faa3bc0..9e605f85c70b544173810da449fb225397bcea84 100644 (file)
@@ -62,8 +62,9 @@ int main() {
   smt.push();
   Expr diff_leq_two_thirds = em.mkExpr(kind::LEQ, diff, two_thirds);
   cout << "Prove that " << diff_leq_two_thirds << " with CVC4." << endl;
-  cout << "CVC4 should report VALID." << endl;
-  cout << "Result from CVC4 is: " << smt.query(diff_leq_two_thirds) << endl;
+  cout << "CVC4 should report ENTAILED." << endl;
+  cout << "Result from CVC4 is: " << smt.checkEntailed(diff_leq_two_thirds)
+       << endl;
   smt.pop();
 
   cout << endl;
index 773974cc7d40c1df5b8b5f1d7546ee2937341fd8..8e4e1b6826a2e3cca11522140b65b883f70878a2 100755 (executable)
@@ -4,7 +4,7 @@
 #! \file bitvectors.py
  ## \verbatim
  ## Top contributors (to current version):
- ##   Makai Mann
+ ##   Makai Mann, Aina Niemetz
  ## This file is part of the CVC4 project.
  ## Copyright (c) 2009-2018 by the authors listed in the file AUTHORS
  ## in the top-level source directory) and their institutional affiliations.
@@ -82,9 +82,9 @@ if __name__ == "__main__":
     slv.assertFormula(assignment1)
     new_x_eq_new_x_ = slv.mkTerm(kinds.Equal, new_x, new_x_)
 
-    print("Checking validity assuming:", new_x_eq_new_x_)
-    print("Expect valid.")
-    print("CVC4:", slv.checkValidAssuming(new_x_eq_new_x_))
+    print("Checking entailment assuming:", new_x_eq_new_x_)
+    print("Expect ENTAILED.")
+    print("CVC4:", slv.checkEntailment(new_x_eq_new_x_))
     print("Popping context.")
     slv.pop()
 
@@ -98,16 +98,16 @@ if __name__ == "__main__":
     print("Asserting {} to CVC4".format(assignment2))
     slv.assertFormula(assignment2)
 
-    print("Checking validity assuming:", new_x_eq_new_x_)
-    print("Expect valid.")
-    print("CVC4:", slv.checkValidAssuming(new_x_eq_new_x_))
+    print("Checking entailment assuming:", new_x_eq_new_x_)
+    print("Expect ENTAILED.")
+    print("CVC4:", slv.checkEntailed(new_x_eq_new_x_))
 
 
     x_neq_x = slv.mkTerm(kinds.Equal, x, x).notTerm()
     v = [new_x_eq_new_x_, x_neq_x]
-    print("Check Validity Assuming: ", v)
-    print("Expect invalid.")
-    print("CVC4:", slv.checkValidAssuming(v))
+    print("Check entailment assuming: ", v)
+    print("Expect NOT_ENTAILED.")
+    print("CVC4:", slv.checkEntailed(v))
 
     # Assert that a is odd
     extract_op = slv.mkOp(kinds.BVExtract, 0, 0)
index 1b488d7d5416701fbb1fe024eec03d8978992bce..7a8055bdf2d42406607e5c23d34d69153445d654 100755 (executable)
@@ -4,7 +4,7 @@
 #! \file combination.py
  ## \verbatim
  ## Top contributors (to current version):
- ##   Makai Mann
+ ##   Makai Mann, Aina Niemetz
  ## This file is part of the CVC4 project.
  ## Copyright (c) 2009-2018 by the authors listed in the file AUTHORS
  ## in the top-level source directory) and their institutional affiliations.
@@ -69,8 +69,8 @@ if __name__ == "__main__":
     slv.assertFormula(assertions)
 
     print("Given the following assertions:", assertions, "\n")
-    print("Prove x /= y is valid.\nCVC4: ",
-          slv.checkValidAssuming(slv.mkTerm(kinds.Distinct, x, y)), "\n")
+    print("Prove x /= y is entailed.\nCVC4: ",
+          slv.checkEntailed(slv.mkTerm(kinds.Distinct, x, y)), "\n")
 
     print("Call checkSat to show that the assertions are satisfiable")
     print("CVC4:", slv.checkSat(), "\n")
index 1bfdf652a00540eed92386ff7a19f893e1e61b40..2b87147392cd06f9cec7e18ca4a1f16adfb9cfbf 100755 (executable)
@@ -4,7 +4,7 @@
 #! \file extract.py
  ## \verbatim
  ## Top contributors (to current version):
- ##   Makai Mann
+ ##   Makai Mann, Aina Niemetz
  ## This file is part of the CVC4 project.
  ## Copyright (c) 2009-2018 by the authors listed in the file AUTHORS
  ## in the top-level source directory) and their institutional affiliations.
@@ -46,6 +46,6 @@ if __name__ == "__main__":
     slv.assertFormula(eq)
 
     eq2 = slv.mkTerm(Equal, x_31_31, x_0_0)
-    print("Check validity assuming:", eq2)
-    print("Expect valid")
-    print("CVC4:", slv.checkValidAssuming(eq2))
+    print("Check entailment assuming:", eq2)
+    print("Expect ENTAILED")
+    print("CVC4:", slv.checkEntailed(eq2))
index 472cf945b049f8171f2497e2743781c591b1f6b5..5607d7f83b5dbefde51b0db6eb90c1f52dc5bef6 100755 (executable)
@@ -4,7 +4,7 @@
 #! \file helloworld.py
 ## \verbatim
 ## Top contributors (to current version):
-##   Makai Mann
+##   Makai Mann, Aina Niemetz
 ## This file is part of the CVC4 project.
 ## Copyright (c) 2009-2018 by the authors listed in the file AUTHORS
 ## in the top-level source directory) and their institutional affiliations.
@@ -18,4 +18,4 @@ from pycvc4 import kinds
 if __name__ == "__main__":
     slv = pycvc4.Solver()
     helloworld = slv.mkConst(slv.getBooleanSort(), "Hello World!")
-    print(helloworld, "is", slv.checkValidAssuming(helloworld))
+    print(helloworld, "is", slv.checkEntailed(helloworld))
index 6ae6427b144418095cfa147805aea9ca18ee1001..bab9680b308b0cf490f8464c0059aaa2e2bcedc0 100755 (executable)
@@ -4,7 +4,7 @@
 #! \file linear_arith.py
 ## \verbatim
 ## Top contributors (to current version):
-##   Makai Mann
+##   Makai Mann, Aina Niemetz
 ## This file is part of the CVC4 project.
 ## Copyright (c) 2009-2018 by the authors listed in the file AUTHORS
 ## in the top-level source directory) and their institutional affiliations.
@@ -54,9 +54,9 @@ if __name__ == "__main__":
     slv.push()
     diff_leq_two_thirds = slv.mkTerm(kinds.Leq, diff, two_thirds)
     print("Prove that", diff_leq_two_thirds, "with CVC4")
-    print("CVC4 should report VALID")
+    print("CVC4 should report ENTAILED")
     print("Result from CVC4 is:",
-          slv.checkValidAssuming(diff_leq_two_thirds))
+          slv.checkEntailed(diff_leq_two_thirds))
     slv.pop()
 
     print()
index 584880b2b3ae7fa509cc435c2362d0b25522791a..b69c56b5699d158701bdf0b62be166fa1709d995 100755 (executable)
@@ -4,7 +4,7 @@
 #! \file sets.py
 ## \verbatim
 ## Top contributors (to current version):
-##   Makai Mann
+##   Makai Mann, Aina Niemetz
 ## This file is part of the CVC4 project.
 ## Copyright (c) 2009-2018 by the authors listed in the file AUTHORS
 ## in the top-level source directory) and their institutional affiliations.
@@ -48,7 +48,7 @@ if __name__ == "__main__":
     theorem = slv.mkTerm(kinds.Equal, lhs, rhs)
 
     print("CVC4 reports: {} is {}".format(theorem,
-                                          slv.checkValidAssuming(theorem)))
+                                          slv.checkEntailed(theorem)))
 
     # Verify emptset is a subset of any set
 
@@ -58,7 +58,7 @@ if __name__ == "__main__":
     theorem = slv.mkTerm(kinds.Subset, emptyset, A)
 
     print("CVC4 reports: {} is {}".format(theorem,
-                                          slv.checkValidAssuming(theorem)))
+                                          slv.checkEntailed(theorem)))
 
     # Find me an element in 1, 2 intersection 2, 3, if there is one.
 
index 2ca3db9d2f089df8b04d0b122ce8a0b937a95df8..21ef925df771df26f55ced6c0ba61f6625721f1b 100644 (file)
@@ -52,8 +52,8 @@ int main()
 
     Term theorem = slv.mkTerm(EQUAL, lhs, rhs);
 
-    cout << "CVC4 reports: " << theorem << " is "
-         << slv.checkValidAssuming(theorem) << "." << endl;
+    cout << "CVC4 reports: " << theorem << " is " << slv.checkEntailed(theorem)
+         << "." << endl;
   }
 
   // Verify emptset is a subset of any set
@@ -63,8 +63,8 @@ int main()
 
     Term theorem = slv.mkTerm(SUBSET, emptyset, A);
 
-    cout << "CVC4 reports: " << theorem << " is "
-         << slv.checkValidAssuming(theorem) << "." << endl;
+    cout << "CVC4 reports: " << theorem << " is " << slv.checkEntailed(theorem)
+         << "." << endl;
   }
 
   // Find me an element in {1, 2} intersection {2, 3}, if there is one.
index 9fb342431aa1977fba82525cf5ce2979c76760c1..eb6a5a350410ebaa05b54a45d2538ff9d0e3bbdf 100644 (file)
@@ -55,7 +55,8 @@ int main() {
 
     Expr theorem = em.mkExpr(kind::EQUAL, lhs, rhs);
 
-    cout << "CVC4 reports: " << theorem << " is " << smt.query(theorem) << "." << endl;
+    cout << "CVC4 reports: " << theorem << " is " << smt.checkEntailed(theorem)
+         << "." << endl;
   }
 
   // Verify emptset is a subset of any set
@@ -65,7 +66,8 @@ int main() {
 
     Expr theorem = em.mkExpr(kind::SUBSET, emptyset, A);
 
-    cout << "CVC4 reports: " << theorem << " is " << smt.query(theorem) << "." << endl;
+    cout << "CVC4 reports: " << theorem << " is " << smt.checkEntailed(theorem)
+         << "." << endl;
   }
 
   // Find me an element in {1, 2} intersection {2, 3}, if there is one.
index 25a05a1a76f8f6e3fac0a974087d6bccae028146..cfd14b089ddce46077864c30d3d2c019aac36a65 100644 (file)
@@ -50,9 +50,9 @@ int main() {
     em.mkExpr(kind::AND, x_positive, y_positive).
     impExpr(twox_plus_y_geq_3);
 
-  cout << "Checking validity of formula " << formula << " with CVC4." << endl;
-  cout << "CVC4 should report VALID." << endl;
-  cout << "Result from CVC4 is: " << smt.query(formula) << endl;
+  cout << "Checking entailment of formula " << formula << " with CVC4." << endl;
+  cout << "CVC4 should report ENTAILED." << endl;
+  cout << "Result from CVC4 is: " << smt.checkEntailed(formula) << endl;
 
   return 0;
 }
index fa727088e8c5d315d8797a244cd75a3a9bcddd94..fff4bef85c0e6893e4cedf8a9f6d4af40a4cb8f3 100644 (file)
@@ -768,22 +768,22 @@ bool Result::isSatUnknown(void) const
          && d_result->isSat() == CVC4::Result::SAT_UNKNOWN;
 }
 
-bool Result::isValid(void) const
+bool Result::isEntailed(void) const
 {
-  return d_result->getType() == CVC4::Result::TYPE_VALIDITY
-         && d_result->isValid() == CVC4::Result::VALID;
+  return d_result->getType() == CVC4::Result::TYPE_ENTAILMENT
+         && d_result->isEntailed() == CVC4::Result::ENTAILED;
 }
 
-bool Result::isInvalid(void) const
+bool Result::isNotEntailed(void) const
 {
-  return d_result->getType() == CVC4::Result::TYPE_VALIDITY
-         && d_result->isValid() == CVC4::Result::INVALID;
+  return d_result->getType() == CVC4::Result::TYPE_ENTAILMENT
+         && d_result->isEntailed() == CVC4::Result::NOT_ENTAILED;
 }
 
-bool Result::isValidUnknown(void) const
+bool Result::isEntailmentUnknown(void) const
 {
-  return d_result->getType() == CVC4::Result::TYPE_VALIDITY
-         && d_result->isValid() == CVC4::Result::VALIDITY_UNKNOWN;
+  return d_result->getType() == CVC4::Result::TYPE_ENTAILMENT
+         && d_result->isEntailed() == CVC4::Result::ENTAILMENT_UNKNOWN;
 }
 
 bool Result::operator==(const Result& r) const
@@ -3585,7 +3585,7 @@ Term Solver::simplify(const Term& t)
   CVC4_API_SOLVER_TRY_CATCH_END;
 }
 
-Result Solver::checkValid(void) const
+Result Solver::checkEntailed(Term term) const
 {
   CVC4_API_SOLVER_TRY_CATCH_BEGIN;
   CVC4::ExprManagerScope exmgrs(*(d_exprMgr.get()));
@@ -3593,14 +3593,15 @@ Result Solver::checkValid(void) const
                  || CVC4::options::incrementalSolving())
       << "Cannot make multiple queries unless incremental solving is enabled "
          "(try --incremental)";
+  CVC4_API_ARG_CHECK_NOT_NULL(term);
 
-  CVC4::Result r = d_smtEngine->query();
+  CVC4::Result r = d_smtEngine->checkEntailed(*term.d_expr);
   return Result(r);
 
   CVC4_API_SOLVER_TRY_CATCH_END;
 }
 
-Result Solver::checkValidAssuming(Term assumption) const
+Result Solver::checkEntailed(const std::vector<Term>& terms) const
 {
   CVC4_API_SOLVER_TRY_CATCH_BEGIN;
   CVC4::ExprManagerScope exmgrs(*(d_exprMgr.get()));
@@ -3608,29 +3609,13 @@ Result Solver::checkValidAssuming(Term assumption) const
                  || CVC4::options::incrementalSolving())
       << "Cannot make multiple queries unless incremental solving is enabled "
          "(try --incremental)";
-  CVC4_API_ARG_CHECK_NOT_NULL(assumption);
-
-  CVC4::Result r = d_smtEngine->query(*assumption.d_expr);
-  return Result(r);
-
-  CVC4_API_SOLVER_TRY_CATCH_END;
-}
-
-Result Solver::checkValidAssuming(const std::vector<Term>& assumptions) const
-{
-  CVC4_API_SOLVER_TRY_CATCH_BEGIN;
-  CVC4::ExprManagerScope exmgrs(*(d_exprMgr.get()));
-  CVC4_API_CHECK(!d_smtEngine->isQueryMade()
-                 || CVC4::options::incrementalSolving())
-      << "Cannot make multiple queries unless incremental solving is enabled "
-         "(try --incremental)";
-  for (const Term& assumption : assumptions)
+  for (const Term& term : terms)
   {
-    CVC4_API_ARG_CHECK_NOT_NULL(assumption);
+    CVC4_API_ARG_CHECK_NOT_NULL(term);
   }
 
-  std::vector<Expr> eassumptions = termVectorToExprs(assumptions);
-  CVC4::Result r = d_smtEngine->query(eassumptions);
+  std::vector<Expr> exprs = termVectorToExprs(terms);
+  CVC4::Result r = d_smtEngine->checkEntailed(exprs);
   return Result(r);
 
   CVC4_API_SOLVER_TRY_CATCH_END;
index 3c99d248091ef8e4445c226a5d74e9f40f563818..1a1cd3b619f9c050053fc270a16a9d07e48f3a00 100644 (file)
@@ -114,22 +114,21 @@ class CVC4_PUBLIC Result
   bool isSatUnknown() const;
 
   /**
-   * Return true if corresponding query was a valid checkValid() or
-   * checkValidAssuming() query.
+   * Return true if corresponding query was an entailed checkEntailed() query.
    */
-  bool isValid() const;
+  bool isEntailed() const;
 
   /**
-   * Return true if corresponding query was an invalid checkValid() or
-   * checkValidAssuming() query.
+   * Return true if corresponding query was a checkEntailed() query that is
+   * not entailed.
    */
-  bool isInvalid() const;
+  bool isNotEntailed() const;
 
   /**
-   * Return true if query was a checkValid() or checkValidAssuming() query
-   * and CVC4 was not able to determine (in)validity.
+   * Return true if query was a checkEntailed() () query and CVC4 was not able
+   * to determine if it is entailed.
    */
-  bool isValidUnknown() const;
+  bool isEntailmentUnknown() const;
 
   /**
    * Operator overloading for equality of two results.
@@ -2555,24 +2554,19 @@ class CVC4_PUBLIC Solver
   Result checkSatAssuming(const std::vector<Term>& assumptions) const;
 
   /**
-   * Check validity.
-   * @return the result of the validity check.
+   * Check entailment of the given formula w.r.t. the current set of assertions.
+   * @param term the formula to check entailment for
+   * @return the result of the entailment check.
    */
-  Result checkValid() const;
+  Result checkEntailed(Term term) const;
 
   /**
-   * Check validity assuming the given formula.
-   * @param assumption the formula to assume
-   * @return the result of the validity check.
-   */
-  Result checkValidAssuming(Term assumption) const;
-
-  /**
-   * Check validity assuming the given formulas.
-   * @param assumptions the formulas to assume
-   * @return the result of the validity check.
+   * Check entailment of the given set of given formulas w.r.t. the current
+   * set of assertions.
+   * @param terms the terms to check entailment for
+   * @return the result of the entailmentcheck.
    */
-  Result checkValidAssuming(const std::vector<Term>& assumptions) const;
+  Result checkEntailed(const std::vector<Term>& terms) const;
 
   /**
    * Create datatype sort.
index bbff6f58b5b2e0dfc75facc09d4b1df6f3db55e2..d81d0c0bf73558615ad7cef179c90cc8ecfdd842 100644 (file)
@@ -87,9 +87,9 @@ cdef extern from "api/cvc4cpp.h" namespace "CVC4::api":
         bint isSat() except +
         bint isUnsat() except +
         bint isSatUnknown() except +
-        bint isValid() except +
-        bint isInvalid() except +
-        bint isValidUnknown() except +
+        bint isEntailed() except +
+        bint isNotEntailed() except +
+        bint isEntailmentUnknown() except +
         string getUnknownExplanation() except +
         string toString() except +
 
@@ -168,8 +168,7 @@ cdef extern from "api/cvc4cpp.h" namespace "CVC4::api":
         void assertFormula(Term term) except +
         Result checkSat() except +
         Result checkSatAssuming(const vector[Term]& assumptions) except +
-        Result checkValid() except +
-        Result checkValidAssuming(const vector[Term]& assumptions) except +
+        Result checkEntailed(const vector[Term]& assumptions) except +
         Sort declareDatatype(const string& symbol, const vector[DatatypeConstructorDecl]& ctors)
         Term declareFun(const string& symbol, Sort sort) except +
         Term declareFun(const string& symbol, const vector[Sort]& sorts, Sort sort) except +
index 1887531224212f70453ba47c17b33933daf485af..60bd89cbd3abf271374ce106534c28ce1d1df8e8 100644 (file)
@@ -749,19 +749,11 @@ cdef class Solver:
             explanation = r.getUnknownExplanation().decode()
         return  Result(name, explanation)
 
-    def checkValid(self):
-        cdef c_Result r = self.csolver.checkValid()
-        name = r.toString().decode()
-        explanation = ""
-        if r.isValidUnknown():
-            explanation = r.getUnknownExplanation().decode()
-        return Result(name, explanation)
-
     @expand_list_arg(num_req_args=0)
-    def checkValidAssuming(self, *assumptions):
+    def checkEntailed(self, *assumptions):
         '''
             Supports the following arguments:
-                 Result checkValidAssuming(List[Term] assumptions)
+                 Result checkEntailed(List[Term] assumptions)
 
                  where assumptions can also be comma-separated arguments of
                  type (boolean) Term
@@ -771,10 +763,10 @@ cdef class Solver:
         cdef vector[c_Term] v
         for a in assumptions:
             v.push_back((<Term?> a).cterm)
-        r = self.csolver.checkValidAssuming(<const vector[c_Term]&> v)
+        r = self.csolver.checkEntailed(<const vector[c_Term]&> v)
         name = r.toString().decode()
         explanation = ""
-        if r.isValidUnknown():
+        if r.isEntailmentUnknown():
             explanation = r.getUnknownExplanation().decode()
         return Result(name, explanation)
 
index 79cc465ac5b76f34b76697478918aa3618d52ce3..20f2dcff9fade82eba2ffebbbbabf601cd35601f 100644 (file)
@@ -513,7 +513,7 @@ void QueryCommand::invoke(SmtEngine* smtEngine)
 {
   try
   {
-    d_result = smtEngine->query(d_expr);
+    d_result = smtEngine->checkEntailed(d_expr);
     d_commandStatus = CommandSuccess::instance();
   }
   catch (exception& e)
index 10fc76bf779e213dbf76dcb84d6f095847ab5c1a..2e1716543f5e05ab72eea6fa6c91d41c1f809431 100644 (file)
@@ -1766,7 +1766,7 @@ Result SmtEngine::check() {
       resourceManager->out()) {
     Result::UnknownExplanation why = resourceManager->outOfResources() ?
                              Result::RESOURCEOUT : Result::TIMEOUT;
-    return Result(Result::VALIDITY_UNKNOWN, why, d_filename);
+    return Result(Result::ENTAILMENT_UNKNOWN, why, d_filename);
   }
 
   // Make sure the prop layer has all of the assertions
@@ -1791,7 +1791,8 @@ Result SmtEngine::check() {
 Result SmtEngine::quickCheck() {
   Assert(d_fullyInited);
   Trace("smt") << "SMT quickCheck()" << endl;
-  return Result(Result::VALIDITY_UNKNOWN, Result::REQUIRES_FULL_CHECK, d_filename);
+  return Result(
+      Result::ENTAILMENT_UNKNOWN, Result::REQUIRES_FULL_CHECK, d_filename);
 }
 
 theory::TheoryModel* SmtEngine::getAvailableModel(const char* c) const
@@ -1807,7 +1808,8 @@ theory::TheoryModel* SmtEngine::getAvailableModel(const char* c) const
   {
     std::stringstream ss;
     ss << "Cannot " << c
-       << " unless immediately preceded by SAT/INVALID or UNKNOWN response.";
+       << " unless immediately preceded by SAT/NOT_ENTAILED or UNKNOWN "
+          "response.";
     throw RecoverableModalException(ss.str().c_str());
   }
 
@@ -2380,35 +2382,34 @@ Result SmtEngine::checkSat(const vector<Expr>& assumptions, bool inUnsatCore)
   return checkSatisfiability(assumptions, inUnsatCore, false);
 }
 
-Result SmtEngine::query(const Expr& assumption, bool inUnsatCore)
+Result SmtEngine::checkEntailed(const Expr& expr, bool inUnsatCore)
 {
-  Dump("benchmark") << QueryCommand(assumption, inUnsatCore);
-  return checkSatisfiability(assumption.isNull()
-                                 ? std::vector<Expr>()
-                                 : std::vector<Expr>{assumption},
-                             inUnsatCore,
-                             true)
-      .asValidityResult();
+  Dump("benchmark") << QueryCommand(expr, inUnsatCore);
+  return checkSatisfiability(
+             expr.isNull() ? std::vector<Expr>() : std::vector<Expr>{expr},
+             inUnsatCore,
+             true)
+      .asEntailmentResult();
 }
 
-Result SmtEngine::query(const vector<Expr>& assumptions, bool inUnsatCore)
+Result SmtEngine::checkEntailed(const vector<Expr>& exprs, bool inUnsatCore)
 {
-  return checkSatisfiability(assumptions, inUnsatCore, true).asValidityResult();
+  return checkSatisfiability(exprs, inUnsatCore, true).asEntailmentResult();
 }
 
 Result SmtEngine::checkSatisfiability(const Expr& expr,
                                       bool inUnsatCore,
-                                      bool isQuery)
+                                      bool isEntailmentCheck)
 {
   return checkSatisfiability(
       expr.isNull() ? std::vector<Expr>() : std::vector<Expr>{expr},
       inUnsatCore,
-      isQuery);
+      isEntailmentCheck);
 }
 
 Result SmtEngine::checkSatisfiability(const vector<Expr>& assumptions,
                                       bool inUnsatCore,
-                                      bool isQuery)
+                                      bool isEntailmentCheck)
 {
   try
   {
@@ -2416,7 +2417,8 @@ Result SmtEngine::checkSatisfiability(const vector<Expr>& assumptions,
     finalOptionsAreSet();
     doPendingPops();
 
-    Trace("smt") << "SmtEngine::" << (isQuery ? "query" : "checkSat") << "("
+    Trace("smt") << "SmtEngine::"
+                 << (isEntailmentCheck ? "checkEntailed" : "checkSat") << "("
                  << assumptions << ")" << endl;
 
     if(d_queryMade && !options::incrementalSolving()) {
@@ -2434,7 +2436,7 @@ Result SmtEngine::checkSatisfiability(const vector<Expr>& assumptions,
 
     setProblemExtended();
 
-    if (isQuery)
+    if (isEntailmentCheck)
     {
       size_t size = assumptions.size();
       if (size > 1)
@@ -2540,8 +2542,8 @@ Result SmtEngine::checkSatisfiability(const vector<Expr>& assumptions,
       d_smtMode = SMT_MODE_SAT_UNKNOWN;
     }
 
-    Trace("smt") << "SmtEngine::" << (isQuery ? "query" : "checkSat") << "("
-                 << assumptions << ") => " << r << endl;
+    Trace("smt") << "SmtEngine::" << (isEntailmentCheck ? "query" : "checkSat")
+                 << "(" << assumptions << ") => " << r << endl;
 
     // Check that SAT results generate a model correctly.
     if(options::checkModels()) {
@@ -2587,7 +2589,7 @@ vector<Expr> SmtEngine::getUnsatAssumptions(void)
   {
     throw RecoverableModalException(
         "Cannot get unsat assumptions unless immediately preceded by "
-        "UNSAT/VALID response.");
+        "UNSAT/ENTAILED.");
   }
   finalOptionsAreSet();
   if (Dump.isOn("benchmark"))
@@ -2625,7 +2627,7 @@ Result SmtEngine::assertFormula(const Expr& ex, bool inUnsatCore)
   }
   bool maybeHasFv = language::isInputLangSygus(options::inputLanguage());
   d_private->addFormula(e.getNode(), inUnsatCore, true, false, maybeHasFv);
-  return quickCheck().asValidityResult();
+  return quickCheck().asEntailmentResult();
 }/* SmtEngine::assertFormula() */
 
 /*
@@ -3218,13 +3220,13 @@ std::pair<Expr, Expr> SmtEngine::getSepHeapAndNilExpr(void)
   Expr heap;
   Expr nil;
   Model* m = getAvailableModel("get separation logic heap and nil");
-  if (m->getHeapModel(heap, nil))
+  if (!m->getHeapModel(heap, nil))
   {
-    return std::make_pair(heap, nil);
+    InternalError()
+        << "SmtEngine::getSepHeapAndNilExpr(): failed to obtain heap/nil "
+           "expressions from theory model.";
   }
-  InternalError()
-      << "SmtEngine::getSepHeapAndNilExpr(): failed to obtain heap/nil "
-         "expressions from theory model.";
+  return std::make_pair(heap, nil);
 }
 
 std::vector<Expr> SmtEngine::getExpandedAssertions()
@@ -3294,8 +3296,8 @@ UnsatCore SmtEngine::getUnsatCoreInternal()
   if (d_smtMode != SMT_MODE_UNSAT)
   {
     throw RecoverableModalException(
-        "Cannot get an unsat core unless immediately preceded by UNSAT/VALID "
-        "response.");
+        "Cannot get an unsat core unless immediately preceded by "
+        "UNSAT/ENTAILED response.");
   }
 
   d_proofManager->traceUnsatCore();  // just to trigger core creation
@@ -3800,7 +3802,7 @@ const Proof& SmtEngine::getProof()
   if (d_smtMode != SMT_MODE_UNSAT)
   {
     throw RecoverableModalException(
-        "Cannot get a proof unless immediately preceded by UNSAT/VALID "
+        "Cannot get a proof unless immediately preceded by UNSAT/ENTAILED "
         "response.");
   }
 
index 2cb227fc95ca308d368571f48a68ffe187a261d0..37b89cfb772421863bc748eaa9a1e0cc91690f0f 100644 (file)
@@ -152,7 +152,9 @@ class CVC4_PUBLIC SmtEngine
    */
   bool isFullyInited() { return d_fullyInited; }
 
-  /** Return true if a query() or checkSat() has already been made.  */
+  /**
+   * Return true if a checkEntailed() or checkSatisfiability() has been made.
+   */
   bool isQueryMade() { return d_queryMade; }
 
   /** Return the user context level.  */
@@ -211,8 +213,8 @@ class CVC4_PUBLIC SmtEngine
   std::string getFilename() const;
 
   /**
-   * Get the model (only if immediately preceded by a SAT
-   * or INVALID query).  Only permitted if produce-models is on.
+   * Get the model (only if immediately preceded by a SAT or NOT_ENTAILED
+   * query).  Only permitted if produce-models is on.
    */
   Model* getModel();
 
@@ -230,9 +232,9 @@ class CVC4_PUBLIC SmtEngine
 
   /**
    * Block the current model values of (at least) the values in exprs.
-   * Can be called only if immediately preceded by a SAT or INVALID query. Only
-   * permitted if produce-models is on, and the block-models option is set to a
-   * mode other than "none".
+   * Can be called only if immediately preceded by a SAT or NOT_ENTAILED query.
+   * Only permitted if produce-models is on, and the block-models option is set
+   * to a mode other than "none".
    *
    * This adds an assertion to the assertion stack of the form:
    *  (or (not (= exprs[0] M0)) ... (not (= exprs[n] Mn)))
@@ -310,18 +312,21 @@ class CVC4_PUBLIC SmtEngine
   Result assertFormula(const Expr& e, bool inUnsatCore = true);
 
   /**
-   * Check validity of an expression with respect to the current set
-   * of assertions by asserting the query expression's negation and
-   * calling check().  Returns valid, invalid, or unknown result.
+   * Check if a given (set of) expression(s) is entailed with respect to the
+   * current set of assertions. We check this by asserting the negation of
+   * the (big AND over the) given (set of) expression(s).
+   * Returns ENTAILED, NOT_ENTAILED, or ENTAILMENT_UNKNOWN result.
    *
    * @throw Exception
    */
-  Result query(const Expr& assumption = Expr(), bool inUnsatCore = true);
-  Result query(const std::vector<Expr>& assumptions, bool inUnsatCore = true);
+  Result checkEntailed(const Expr& assumption = Expr(),
+                       bool inUnsatCore = true);
+  Result checkEntailed(const std::vector<Expr>& assumptions,
+                       bool inUnsatCore = true);
 
   /**
    * Assert a formula (if provided) to the current context and call
-   * check().  Returns sat, unsat, or unknown result.
+   * check().  Returns SAT, UNSAT, or SAT_UNKNOWN result.
    *
    * @throw Exception
    */
@@ -456,9 +461,9 @@ class CVC4_PUBLIC SmtEngine
   Expr expandDefinitions(const Expr& e);
 
   /**
-   * Get the assigned value of an expr (only if immediately preceded
-   * by a SAT or INVALID query).  Only permitted if the SmtEngine is
-   * set to operate interactively and produce-models is on.
+   * Get the assigned value of an expr (only if immediately preceded by a SAT
+   * or NOT_ENTAILED query).  Only permitted if the SmtEngine is set to operate
+   * interactively and produce-models is on.
    *
    * @throw ModalException, TypeCheckingException, LogicException,
    *        UnsafeInterruptException
@@ -483,15 +488,15 @@ class CVC4_PUBLIC SmtEngine
 
   /**
    * Get the assignment (only if immediately preceded by a SAT or
-   * INVALID query).  Only permitted if the SmtEngine is set to
+   * NOT_ENTAILED query).  Only permitted if the SmtEngine is set to
    * operate interactively and produce-assignments is on.
    */
   std::vector<std::pair<Expr, Expr> > getAssignment();
 
   /**
-   * Get the last proof (only if immediately preceded by an UNSAT
-   * or VALID query).  Only permitted if CVC4 was built with proof
-   * support and produce-proofs is on.
+   * Get the last proof (only if immediately preceded by an UNSAT or ENTAILED
+   * query).  Only permitted if CVC4 was built with proof support and
+   * produce-proofs is on.
    *
    * The Proof object is owned by this SmtEngine until the SmtEngine is
    * destroyed.
@@ -624,9 +629,9 @@ class CVC4_PUBLIC SmtEngine
                                    std::vector<std::vector<Expr> >& tvecs);
 
   /**
-   * Get an unsatisfiable core (only if immediately preceded by an
-   * UNSAT or VALID query).  Only permitted if CVC4 was built with
-   * unsat-core support and produce-unsat-cores is on.
+   * Get an unsatisfiable core (only if immediately preceded by an UNSAT or
+   * ENTAILED query).  Only permitted if CVC4 was built with unsat-core support
+   * and produce-unsat-cores is on.
    */
   UnsatCore getUnsatCore();
 
@@ -714,8 +719,8 @@ class CVC4_PUBLIC SmtEngine
    *
    * Note that the cumulative timer only ticks away when one of the
    * SmtEngine's workhorse functions (things like assertFormula(),
-   * query(), checkSat(), and simplify()) are running.  Between calls,
-   * the timer is still.
+   * checkEntailed(), checkSat(), and simplify()) are running.
+   * Between calls, the timer is still.
    *
    * When an SmtEngine is first created, it has no time or resource
    * limits.
@@ -774,7 +779,10 @@ class CVC4_PUBLIC SmtEngine
   /** Flush statistic from this SmtEngine. Safe to use in a signal handler. */
   void safeFlushStatistics(int fd) const;
 
-  /** Returns the most recent result of checkSat/query or (set-info :status). */
+  /**
+   * Returns the most recent result of checkSat/checkEntailed or
+   * (set-info :status).
+   */
   Result getStatusOfLastCommand() const { return d_status; }
 
   /**
@@ -881,7 +889,7 @@ class CVC4_PUBLIC SmtEngine
 
   /**
    * Internal method to get an unsatisfiable core (only if immediately preceded
-   * by an UNSAT or VALID query). Only permitted if CVC4 was built with
+   * by an UNSAT or ENTAILED query). Only permitted if CVC4 was built with
    * unsat-core support and produce-unsat-cores is on. Does not dump the
    * command.
    */
@@ -1007,13 +1015,13 @@ class CVC4_PUBLIC SmtEngine
                                 bool userVisible = true,
                                 const char* dumpTag = "declarations");
 
-  /* Check satisfiability (used for query and check-sat). */
+  /* Check satisfiability (used to check satisfiability and entailment). */
   Result checkSatisfiability(const Expr& assumption,
                              bool inUnsatCore,
-                             bool isQuery);
+                             bool isEntailmentCheck);
   Result checkSatisfiability(const std::vector<Expr>& assumptions,
                              bool inUnsatCore,
-                             bool isQuery);
+                             bool isEntailmentCheck);
 
   /**
    * Check that all Expr in formals are of BOUND_VARIABLE kind, where func is
@@ -1123,9 +1131,9 @@ class CVC4_PUBLIC SmtEngine
 
   /**
    * The list of assumptions from the previous call to checkSatisfiability.
-   * Note that if the last call to checkSatisfiability was a validity check,
-   * i.e., a call to query(a1, ..., an), then d_assumptions contains one single
-   * assumption ~(a1 AND ... AND an).
+   * Note that if the last call to checkSatisfiability was an entailment check,
+   * i.e., a call to checkEntailed(a1, ..., an), then d_assumptions contains
+   * one single assumption ~(a1 AND ... AND an).
    */
   std::vector<Expr> d_assumptions;
 
@@ -1189,10 +1197,10 @@ class CVC4_PUBLIC SmtEngine
   bool d_fullyInited;
 
   /**
-   * Whether or not a query() or checkSat() has already been made through
-   * this SmtEngine.  If true, and incrementalSolving is false, then
-   * attempting an additional query() or checkSat() will fail with a
-   * ModalException.
+   * Whether or not a checkEntailed() or checkSatisfiability() has already been
+   * made through this SmtEngine.  If true, and incrementalSolving is false,
+   * then attempting an additional checkEntailed() or checkSat() will fail with
+   * ModalException.
    */
   bool d_queryMade;
 
@@ -1214,7 +1222,8 @@ class CVC4_PUBLIC SmtEngine
   bool d_globalNegation;
 
   /**
-   * Most recent result of last checkSat/query or (set-info :status).
+   * Most recent result of last checkSatisfiability/checkEntailed or
+   * (set-info :status).
    */
   Result d_status;
 
index 433dcbf291d00be84ecc86ba069ea48e2be4ee25..916e16b4fc95b231e3c273ae51d5621e56c70445 100644 (file)
@@ -29,59 +29,68 @@ namespace CVC4 {
 
 Result::Result()
     : d_sat(SAT_UNKNOWN),
-      d_validity(VALIDITY_UNKNOWN),
+      d_entailment(ENTAILMENT_UNKNOWN),
       d_which(TYPE_NONE),
       d_unknownExplanation(UNKNOWN_REASON),
-      d_inputName("") {}
+      d_inputName("")
+{
+}
 
 Result::Result(enum Sat s, std::string inputName)
     : d_sat(s),
-      d_validity(VALIDITY_UNKNOWN),
+      d_entailment(ENTAILMENT_UNKNOWN),
       d_which(TYPE_SAT),
       d_unknownExplanation(UNKNOWN_REASON),
-      d_inputName(inputName) {
+      d_inputName(inputName)
+{
   PrettyCheckArgument(s != SAT_UNKNOWN,
                       "Must provide a reason for satisfiability being unknown");
 }
 
-Result::Result(enum Validity v, std::string inputName)
+Result::Result(enum Entailment e, std::string inputName)
     : d_sat(SAT_UNKNOWN),
-      d_validity(v),
-      d_which(TYPE_VALIDITY),
+      d_entailment(e),
+      d_which(TYPE_ENTAILMENT),
       d_unknownExplanation(UNKNOWN_REASON),
-      d_inputName(inputName) {
-  PrettyCheckArgument(v != VALIDITY_UNKNOWN,
-                      "Must provide a reason for validity being unknown");
+      d_inputName(inputName)
+{
+  PrettyCheckArgument(e != ENTAILMENT_UNKNOWN,
+                      "Must provide a reason for entailment being unknown");
 }
 
-Result::Result(enum Sat s, enum UnknownExplanation unknownExplanation,
+Result::Result(enum Sat s,
+               enum UnknownExplanation unknownExplanation,
                std::string inputName)
     : d_sat(s),
-      d_validity(VALIDITY_UNKNOWN),
+      d_entailment(ENTAILMENT_UNKNOWN),
       d_which(TYPE_SAT),
       d_unknownExplanation(unknownExplanation),
-      d_inputName(inputName) {
+      d_inputName(inputName)
+{
   PrettyCheckArgument(s == SAT_UNKNOWN,
                       "improper use of unknown-result constructor");
 }
 
-Result::Result(enum Validity v, enum UnknownExplanation unknownExplanation,
+Result::Result(enum Entailment e,
+               enum UnknownExplanation unknownExplanation,
                std::string inputName)
     : d_sat(SAT_UNKNOWN),
-      d_validity(v),
-      d_which(TYPE_VALIDITY),
+      d_entailment(e),
+      d_which(TYPE_ENTAILMENT),
       d_unknownExplanation(unknownExplanation),
-      d_inputName(inputName) {
-  PrettyCheckArgument(v == VALIDITY_UNKNOWN,
+      d_inputName(inputName)
+{
+  PrettyCheckArgument(e == ENTAILMENT_UNKNOWN,
                       "improper use of unknown-result constructor");
 }
 
 Result::Result(const std::string& instr, std::string inputName)
     : d_sat(SAT_UNKNOWN),
-      d_validity(VALIDITY_UNKNOWN),
+      d_entailment(ENTAILMENT_UNKNOWN),
       d_which(TYPE_NONE),
       d_unknownExplanation(UNKNOWN_REASON),
-      d_inputName(inputName) {
+      d_inputName(inputName)
+{
   string s = instr;
   transform(s.begin(), s.end(), s.begin(), ::tolower);
   if (s == "sat" || s == "satisfiable") {
@@ -90,38 +99,56 @@ Result::Result(const std::string& instr, std::string inputName)
   } else if (s == "unsat" || s == "unsatisfiable") {
     d_which = TYPE_SAT;
     d_sat = UNSAT;
-  } else if (s == "valid") {
-    d_which = TYPE_VALIDITY;
-    d_validity = VALID;
-  } else if (s == "invalid") {
-    d_which = TYPE_VALIDITY;
-    d_validity = INVALID;
-  } else if (s == "incomplete") {
+  }
+  else if (s == "entailed")
+  {
+    d_which = TYPE_ENTAILMENT;
+    d_entailment = ENTAILED;
+  }
+  else if (s == "not_entailed")
+  {
+    d_which = TYPE_ENTAILMENT;
+    d_entailment = NOT_ENTAILED;
+  }
+  else if (s == "incomplete")
+  {
     d_which = TYPE_SAT;
     d_sat = SAT_UNKNOWN;
     d_unknownExplanation = INCOMPLETE;
-  } else if (s == "timeout") {
+  }
+  else if (s == "timeout")
+  {
     d_which = TYPE_SAT;
     d_sat = SAT_UNKNOWN;
     d_unknownExplanation = TIMEOUT;
-  } else if (s == "resourceout") {
+  }
+  else if (s == "resourceout")
+  {
     d_which = TYPE_SAT;
     d_sat = SAT_UNKNOWN;
     d_unknownExplanation = RESOURCEOUT;
-  } else if (s == "memout") {
+  }
+  else if (s == "memout")
+  {
     d_which = TYPE_SAT;
     d_sat = SAT_UNKNOWN;
     d_unknownExplanation = MEMOUT;
-  } else if (s == "interrupted") {
+  }
+  else if (s == "interrupted")
+  {
     d_which = TYPE_SAT;
     d_sat = SAT_UNKNOWN;
     d_unknownExplanation = INTERRUPTED;
-  } else if (s.size() >= 7 && s.compare(0, 7, "unknown") == 0) {
+  }
+  else if (s.size() >= 7 && s.compare(0, 7, "unknown") == 0)
+  {
     d_which = TYPE_SAT;
     d_sat = SAT_UNKNOWN;
-  } else {
+  }
+  else
+  {
     IllegalArgument(s,
-                    "expected satisfiability/validity result, "
+                    "expected satisfiability/entailment result, "
                     "instead got `%s'",
                     s.c_str());
   }
@@ -142,37 +169,41 @@ bool Result::operator==(const Result& r) const {
     return d_sat == r.d_sat && (d_sat != SAT_UNKNOWN ||
                                 d_unknownExplanation == r.d_unknownExplanation);
   }
-  if (d_which == TYPE_VALIDITY) {
-    return d_validity == r.d_validity &&
-           (d_validity != VALIDITY_UNKNOWN ||
-            d_unknownExplanation == r.d_unknownExplanation);
+  if (d_which == TYPE_ENTAILMENT)
+  {
+    return d_entailment == r.d_entailment
+           && (d_entailment != ENTAILMENT_UNKNOWN
+               || d_unknownExplanation == r.d_unknownExplanation);
   }
   return false;
 }
 
 bool operator==(enum Result::Sat sr, const Result& r) { return r == sr; }
 
-bool operator==(enum Result::Validity vr, const Result& r) { return r == vr; }
+bool operator==(enum Result::Entailment e, const Result& r) { return r == e; }
 bool operator!=(enum Result::Sat s, const Result& r) { return !(s == r); }
-bool operator!=(enum Result::Validity v, const Result& r) { return !(v == r); }
+bool operator!=(enum Result::Entailment e, const Result& r)
+{
+  return !(e == r);
+}
 
 Result Result::asSatisfiabilityResult() const {
   if (d_which == TYPE_SAT) {
     return *this;
   }
 
-  if (d_which == TYPE_VALIDITY) {
-    switch (d_validity) {
-      case INVALID:
-        return Result(SAT, d_inputName);
+  if (d_which == TYPE_ENTAILMENT)
+  {
+    switch (d_entailment)
+    {
+      case NOT_ENTAILED: return Result(SAT, d_inputName);
 
-      case VALID:
-        return Result(UNSAT, d_inputName);
+      case ENTAILED: return Result(UNSAT, d_inputName);
 
-      case VALIDITY_UNKNOWN:
+      case ENTAILMENT_UNKNOWN:
         return Result(SAT_UNKNOWN, d_unknownExplanation, d_inputName);
 
-      default: Unhandled() << d_validity;
+      default: Unhandled() << d_entailment;
     }
   }
 
@@ -180,28 +211,28 @@ Result Result::asSatisfiabilityResult() const {
   return Result(SAT_UNKNOWN, NO_STATUS, d_inputName);
 }
 
-Result Result::asValidityResult() const {
-  if (d_which == TYPE_VALIDITY) {
+Result Result::asEntailmentResult() const
+{
+  if (d_which == TYPE_ENTAILMENT)
+  {
     return *this;
   }
 
   if (d_which == TYPE_SAT) {
     switch (d_sat) {
-      case SAT:
-        return Result(INVALID, d_inputName);
+      case SAT: return Result(NOT_ENTAILED, d_inputName);
 
-      case UNSAT:
-        return Result(VALID, d_inputName);
+      case UNSAT: return Result(ENTAILED, d_inputName);
 
       case SAT_UNKNOWN:
-        return Result(VALIDITY_UNKNOWN, d_unknownExplanation, d_inputName);
+        return Result(ENTAILMENT_UNKNOWN, d_unknownExplanation, d_inputName);
 
       default: Unhandled() << d_sat;
     }
   }
 
   // TYPE_NONE
-  return Result(VALIDITY_UNKNOWN, NO_STATUS, d_inputName);
+  return Result(ENTAILMENT_UNKNOWN, NO_STATUS, d_inputName);
 }
 
 string Result::toString() const {
@@ -226,18 +257,14 @@ ostream& operator<<(ostream& out, enum Result::Sat s) {
   return out;
 }
 
-ostream& operator<<(ostream& out, enum Result::Validity v) {
-  switch (v) {
-    case Result::INVALID:
-      out << "INVALID";
-      break;
-    case Result::VALID:
-      out << "VALID";
-      break;
-    case Result::VALIDITY_UNKNOWN:
-      out << "VALIDITY_UNKNOWN";
-      break;
-    default: Unhandled() << v;
+ostream& operator<<(ostream& out, enum Result::Entailment e)
+{
+  switch (e)
+  {
+    case Result::NOT_ENTAILED: out << "NOT_ENTAILED"; break;
+    case Result::ENTAILED: out << "ENTAILED"; break;
+    case Result::ENTAILMENT_UNKNOWN: out << "ENTAILMENT_UNKNOWN"; break;
+    default: Unhandled() << e;
   }
   return out;
 }
@@ -301,14 +328,11 @@ void Result::toStreamDefault(std::ostream& out) const {
         break;
     }
   } else {
-    switch (isValid()) {
-      case Result::INVALID:
-        out << "invalid";
-        break;
-      case Result::VALID:
-        out << "valid";
-        break;
-      case Result::VALIDITY_UNKNOWN:
+    switch (isEntailed())
+    {
+      case Result::NOT_ENTAILED: out << "not_entailed"; break;
+      case Result::ENTAILED: out << "entailed"; break;
+      case Result::ENTAILMENT_UNKNOWN:
         out << "unknown";
         if (whyUnknown() != Result::UNKNOWN_REASON) {
           out << " (" << whyUnknown() << ")";
@@ -332,11 +356,17 @@ void Result::toStreamTptp(std::ostream& out) const {
     out << "Satisfiable";
   } else if (isSat() == Result::UNSAT) {
     out << "Unsatisfiable";
-  } else if (isValid() == Result::VALID) {
+  }
+  else if (isEntailed() == Result::ENTAILED)
+  {
     out << "Theorem";
-  } else if (isValid() == Result::INVALID) {
+  }
+  else if (isEntailed() == Result::NOT_ENTAILED)
+  {
     out << "CounterSatisfiable";
-  } else {
+  }
+  else
+  {
     out << "GaveUp";
   }
   out << " for " << getInputName();
index f34a9bb5aefea91ead2fc042c75b1fdc75e86864..10df0538815775bc0e1f274205b8169d67dc8715 100644 (file)
@@ -38,9 +38,19 @@ class CVC4_PUBLIC Result {
  public:
   enum Sat { UNSAT = 0, SAT = 1, SAT_UNKNOWN = 2 };
 
-  enum Validity { INVALID = 0, VALID = 1, VALIDITY_UNKNOWN = 2 };
+  enum Entailment
+  {
+    NOT_ENTAILED = 0,
+    ENTAILED = 1,
+    ENTAILMENT_UNKNOWN = 2
+  };
 
-  enum Type { TYPE_SAT, TYPE_VALIDITY, TYPE_NONE };
+  enum Type
+  {
+    TYPE_SAT,
+    TYPE_ENTAILMENT,
+    TYPE_NONE
+  };
 
   enum UnknownExplanation {
     REQUIRES_FULL_CHECK,
@@ -57,7 +67,7 @@ class CVC4_PUBLIC Result {
 
  private:
   enum Sat d_sat;
-  enum Validity d_validity;
+  enum Entailment d_entailment;
   enum Type d_which;
   enum UnknownExplanation d_unknownExplanation;
   std::string d_inputName;
@@ -67,12 +77,13 @@ class CVC4_PUBLIC Result {
 
   Result(enum Sat s, std::string inputName = "");
 
-  Result(enum Validity v, std::string inputName = "");
+  Result(enum Entailment v, std::string inputName = "");
 
   Result(enum Sat s, enum UnknownExplanation unknownExplanation,
          std::string inputName = "");
 
-  Result(enum Validity v, enum UnknownExplanation unknownExplanation,
+  Result(enum Entailment v,
+         enum UnknownExplanation unknownExplanation,
          std::string inputName = "");
 
   Result(const std::string& s, std::string inputName = "");
@@ -84,12 +95,13 @@ class CVC4_PUBLIC Result {
 
   enum Sat isSat() const { return d_which == TYPE_SAT ? d_sat : SAT_UNKNOWN; }
 
-  enum Validity isValid() const {
-    return d_which == TYPE_VALIDITY ? d_validity : VALIDITY_UNKNOWN;
+  enum Entailment isEntailed() const
+  {
+    return d_which == TYPE_ENTAILMENT ? d_entailment : ENTAILMENT_UNKNOWN;
   }
 
   bool isUnknown() const {
-    return isSat() == SAT_UNKNOWN && isValid() == VALIDITY_UNKNOWN;
+    return isSat() == SAT_UNKNOWN && isEntailed() == ENTAILMENT_UNKNOWN;
   }
 
   Type getType() const { return d_which; }
@@ -101,7 +113,7 @@ class CVC4_PUBLIC Result {
   bool operator==(const Result& r) const;
   inline bool operator!=(const Result& r) const;
   Result asSatisfiabilityResult() const;
-  Result asValidityResult() const;
+  Result asEntailmentResult() const;
 
   std::string toString() const;
 
@@ -128,7 +140,7 @@ class CVC4_PUBLIC Result {
    * Write a Result out to a stream.
    *
    * The default implementation writes a reasonable string in lowercase
-   * for sat, unsat, valid, invalid, or unknown results.  This behavior
+   * for sat, unsat, entailed, not entailed, or unknown results.  This behavior
    * is overridable by each Printer, since sometimes an output language
    * has a particular preference for how results should appear.
    */
@@ -139,15 +151,15 @@ inline bool Result::operator!=(const Result& r) const { return !(*this == r); }
 
 std::ostream& operator<<(std::ostream& out, enum Result::Sat s) CVC4_PUBLIC;
 std::ostream& operator<<(std::ostream& out,
-                         enum Result::Validity v) CVC4_PUBLIC;
+                         enum Result::Entailment e) CVC4_PUBLIC;
 std::ostream& operator<<(std::ostream& out,
                          enum Result::UnknownExplanation e) CVC4_PUBLIC;
 
 bool operator==(enum Result::Sat s, const Result& r) CVC4_PUBLIC;
-bool operator==(enum Result::Validity v, const Result& r) CVC4_PUBLIC;
+bool operator==(enum Result::Entailment e, const Result& r) CVC4_PUBLIC;
 
 bool operator!=(enum Result::Sat s, const Result& r) CVC4_PUBLIC;
-bool operator!=(enum Result::Validity v, const Result& r) CVC4_PUBLIC;
+bool operator!=(enum Result::Entailment e, const Result& r) CVC4_PUBLIC;
 
 } /* CVC4 namespace */
 
index b77bfd88143bca2c28c85d37f4ed60a2b828a20b..cb835fbb04cbc87a10ad3da85a09a4663415f29e 100644 (file)
@@ -8,13 +8,13 @@
 %ignore CVC4::Result::operator!=(const Result& r) const;
 
 %ignore CVC4::operator<<(std::ostream&, enum Result::Sat);
-%ignore CVC4::operator<<(std::ostream&, enum Result::Validity);
+%ignore CVC4::operator<<(std::ostream&, enum Result::Entailment);
 %ignore CVC4::operator<<(std::ostream&, enum Result::UnknownExplanation);
 
 %ignore CVC4::operator==(enum Result::Sat, const Result&);
 %ignore CVC4::operator!=(enum Result::Sat, const Result&);
 
-%ignore CVC4::operator==(enum Result::Validity, const Result&);
-%ignore CVC4::operator!=(enum Result::Validity, const Result&);
+%ignore CVC4::operator==(enum Result::Entailment, const Result&);
+%ignore CVC4::operator!=(enum Result::Entailment, const Result&);
 
 %include "util/result.h"
index 1de397ab142872afe3e26cd982c1ab83e1526bd7..08d5915900540ef4fc5f2c22617954fd640c8b6a 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 x : REAL;
 y : REAL;
 
index d7b0291f7d02ff8f0a14f0f343a82098b8494bb3..e0a48c35789bd363da814a0ed951232067ab2af8 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 x : REAL;
 y : REAL;
 z : REAL;
index 288c341ef15f8210ca84ebb8127885ce7c35878d..ce54c8b7e0610145df30e13302259f0501905800 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 x : REAL;
 y : REAL;
 
index 54df5e62cd65007724e5bd667452a1543412ea95..bfb3e75d58a7334615c09461d989dd664b99e858 100644 (file)
@@ -1,3 +1,3 @@
-% EXPECT: valid
+% EXPECT: entailed
 a, b : REAL;
-QUERY (a*b)^5 = b*a*a*a*a*b*b*b*b*a;
\ No newline at end of file
+QUERY (a*b)^5 = b*a*a*a*a*b*b*b*b*a;
index 265d18a848ecd649ea1373ae49bcf5a18a816c50..84954a3ea231162914674ff785d3157960369116 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: invalid
+% EXPECT: not_entailed
 x0, x1, x2, x3 : INT;
 ASSERT (10 * x0) + (25 * x1) + (10 * x2) + (-28 * x3) <= 20 ;
 ASSERT  (24 * x0) + (-9 * x1) + (-12 * x2) + (15 * x3) <= 3;
index d2e2639abdcdf63b359cf33d465bc1346198ab22..8f8b01fc9b56f0ef4798888c594df35ca70edfd1 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: invalid
+% EXPECT: not_entailed
 x0, x1, x2, x3 : INT;
 ASSERT (-22 * x0) + (-3 * x1) + (9 * x2) + (-13 * x3) > -31 ;
 ASSERT  (31 * x0) + (-17 * x1) + (28 * x2) + (-16 * x3) > -28;
index 345c90899e7a17a0093f626c3f8a56864658ba5e..66f02401b6dd7625238d96ee7f87a85e4dffafa5 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: invalid
+% EXPECT: not_entailed
 x0, x1, x2, x3 : INT;
 ASSERT (8 * x0) + (-27 * x1) + (29 * x2) + (-13 * x3) < 12;
 QUERY FALSE;
index 01d51a226cce57e1c310812f9212dbf02546e4b2..b3d79e8ffc3168c02644d5f6a371bec68f979a67 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: invalid
+% EXPECT: not_entailed
 x0, x1, x2, x3 : INT;
 ASSERT (29 * x0) + (-19 * x1) + (23 * x2) + (15 * x3) <= 9;
 QUERY FALSE;
index 5a11212d543e391ea5ab97f8d880394c16ce3cbf..e905da9a0514e0ebff9a33897e679d47c8bced06 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: invalid
+% EXPECT: not_entailed
 x0, x1, x2, x3 : INT;
 ASSERT (-19 * x0) + (-29 * x1) + (2 * x2) + (26 * x3) >= 3;
 QUERY FALSE;
index c38231695f34908b0822a2373a7cd62560a73142..b6db26e867984927ece7e0999f2a06ca8ce13666 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 x0, x1, x2, x3 : INT;
 ASSERT  (-9 * x0) + (25 * x1) + (0 * x2) + (13 * x3) = 17 ;
 ASSERT  (-6 * x0) + (32 * x1) + (2 * x2) + (-32 * x3) = -5 ;
index 77571e5265bb0f989e6e4b3dbc5df91df501dda1..3fd20a0b6bf645e25306146df4a06d5491843d84 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 x1: INT;
 x0: INT;
 QUERY NOT (((x0 * 6) + (x1 * 32)) = 1);
index 7fa2fc937178fd11d3d24c5d9f3b36a1598cf41b..1739b336421ef6cdc878767da995d30141008758 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 x0, x1, x2, x3 : INT;
 ASSERT  (6 * x0) + (2 * x1) + (22 * x2) + (-18 * x3) = -15 ;
 ASSERT (-8 * x0) + (-25 * x1) + (-25 * x2) + (7 * x3) > 10 ;
index d79ec94a7ebac443da97e49c1ce97889142510fc..ed6cb747e6a0c4cd05fd6d785783c76460b6004c 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 x: INT;
 P: INT -> BOOLEAN;
 
index 9d1029cbf62ba7228884056d8c1d6049310e1aa8..07a2aa2f57ecd3778157f9f038645358059b8c51 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 % Simple test for right precedence of AND, <=>, NOT.
 
 A, B, C: BOOLEAN;
index 0cb6cf0fe1874ff0566746d0bf0354c83b1fc5b5..12cb804942d738e9e045cdec433c581f6aee9844 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 b : BOOLEAN;
 DATATYPE D = c(s:INT) END;
 QUERY c(IF b THEN 1 ELSE 0 ENDIF) = IF b THEN c(1) ELSE c(0) ENDIF;
index 304dd6ec450dcc8c14ab68218b3a8fee62e7b285..400f55885a3360a12a0a7bde084e6a0aad2b5c33 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 a:BOOLEAN;
 b:BOOLEAN;
 ASSERT(a);
index fa9462f64533dbf0079f3bbf6a46e9725b91740a..0e06cbc13525ffe1eae9bb3c8d45a53cb2789106 100644 (file)
@@ -1,7 +1,7 @@
 % COMMAND-LINE: --incremental
-% EXPECT: valid
-% EXPECT: valid
-% EXPECT: valid
+% EXPECT: entailed
+% EXPECT: entailed
+% EXPECT: entailed
 x : INT;
 y : INT = x + 1;
 z : INT = -10;
index c51af4e24e198c04f535670e064c9320119f9744..665bcdafbaaeaf282431ed1b446688012e8916a7 100644 (file)
@@ -1,6 +1,6 @@
 % COMMAND-LINE: --finite-model-find -i
-% EXPECT: invalid
-% EXPECT: valid
+% EXPECT: not_entailed
+% EXPECT: entailed
 prin:TYPE;
 form:TYPE;
 
index b9b4b8e1765b55e5286783d7354609fefe5082d8..17064a2f209dfa788592e4f6a487f10b6ac43145 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 
 x : BITVECTOR(10);
 
index dcacd643a3ed8a845958d5cf76e0a6c23678b6e0..6bc649a0346c7a5ec5960473bd1787a4244e3c73 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 
 % Some tests from the CVC3 user manual.
 % http://www.cs.nyu.edu/acsys/cvc3/doc/user_doc.html
index dd05723d264a5dc489175e80f59b2eed80ad67bb..e134b56667cac782036eb6920a880f26a9e8f488 100644 (file)
@@ -1,5 +1,5 @@
-% EXPECT: valid
-% EXPECT: Cannot get model unless immediately preceded by SAT/INVALID or UNKNOWN response.
+% EXPECT: entailed
+% EXPECT: Cannot get model unless immediately preceded by SAT/NOT_ENTAILED or UNKNOWN response.
 OPTION "logic" "ALL";
 OPTION "produce-models" true;
 x : INT;
index 860ce38bda54ee7140403b0e8c320477867c76de..779a2eab43ba3b05866cc5334fc8dfb680d1ced4 100644 (file)
@@ -1,5 +1,5 @@
 %% This test borrowed from CVC3 regressions, bug15.cvc
-% EXPECT: valid
+% EXPECT: entailed
 x : REAL;
 y : REAL;
 f : REAL -> REAL;
index 7c89de4ac5835423024a43851004e0c7e733fdfc..e3e9aaf0a8fb974aa7d1c162ebe87f440caea9d2 100644 (file)
@@ -1,31 +1,31 @@
 % COMMAND-LINE: --incremental
 
-% EXPECT: valid
+% EXPECT: entailed
 QUERY 0bin0000111101010000  = 0hex0f50;
 
-% EXPECT: valid
+% EXPECT: entailed
 QUERY 0bin01@0bin0          = 0bin010;
 
-% EXPECT: valid
+% EXPECT: entailed
 QUERY 0bin0011[3:1]         = 0bin001;
 
-% EXPECT: valid
+% EXPECT: entailed
 QUERY 0bin0011 << 3         = 0bin0011000;
 
-% EXPECT: valid
+% EXPECT: entailed
 QUERY 0bin1000 >> 3         = 0bin0001;
 
-% EXPECT: valid
+% EXPECT: entailed
 QUERY SX(0bin100, 5)        = 0bin11100;
 
-% EXPECT: valid
+% EXPECT: entailed
 QUERY BVZEROEXTEND(0bin1,3) = 0bin0001;
 
-% EXPECT: valid
+% EXPECT: entailed
 QUERY BVREPEAT(0bin10,3)    = 0bin101010;
 
-% EXPECT: valid
+% EXPECT: entailed
 QUERY BVROTL(0bin101,1)     = 0bin011;
 
-% EXPECT: valid
+% EXPECT: entailed
 QUERY BVROTR(0bin101,1)     = 0bin110;
index b6329e9531181257a0b8a5dd42ecbb1c6ccbe54a..e143ea275f2716d9b520c3993f0bfa19037d49a1 100644 (file)
@@ -2,6 +2,6 @@ x : BITVECTOR(5);
 y : BITVECTOR(4);
 yy : BITVECTOR(3);
 
-% EXPECT: valid
+% EXPECT: entailed
 QUERY
  BVPLUS(9, x@0bin0000, (0bin000@(~y)@0bin11))[8:4] = BVPLUS(5, x, ~(y[3:2])) ;
index 4fc6a5f8c4f9fb8085162b4b9d20aa5c811aea68..3b3829ebc8a1d8189486a7b37a67a1438afa46da 100644 (file)
@@ -1,7 +1,7 @@
 bv : BITVECTOR(10);
 a : BOOLEAN;
 
-% EXPECT: valid
+% EXPECT: entailed
 QUERY
  0bin01100000[5:3]=(0bin1111001@bv[0:0])[4:2]
  AND
index 824690bcfa073d7796bc81524ac5970d38132fcc..da8b1e82ce46652da990bce4208e115c61f9c5f7 100644 (file)
@@ -5,5 +5,5 @@ ASSERT x&y&t&z&q = x;
 ASSERT x|y = t;
 ASSERT BVXOR(x,~x) = t;
 
-% EXPECT: valid
+% EXPECT: entailed
 QUERY  FALSE;
index 37da96b3c3b0b4ebff0ce5cb7815ab0ccd1a511f..85e0c2105b2e50777d416e457f47174b03bcd02e 100644 (file)
@@ -3,7 +3,7 @@ x, y : BITVECTOR(4);
 ASSERT x = 0hex5;
 ASSERT y = 0bin0101;
 
-% EXPECT: valid
+% EXPECT: entailed
 QUERY
  BVMULT(8,x,y)=BVMULT(8,y,x)
  AND
index 3801b6d53df355c2dc6839a840a4dd0abf53e245..3968365ad84e683a447e764015080a7a444d69c0 100644 (file)
@@ -6,8 +6,8 @@ z, t : BITVECTOR(12);
 ASSERT x = 0hexff;
 ASSERT z = 0hexff0;
 
-% EXPECT: valid
+% EXPECT: entailed
 QUERY  z = x << 4;
 
-% EXPECT: valid
+% EXPECT: entailed
 QUERY (z >> 4)[7:0] = x;
index 501f5f73778f275927ae5aeb138951c4d41e6f2a..33a320acd952ce456033afb39d44296fc82b59cb 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: invalid
+% EXPECT: not_entailed
 DATATYPE foo = f(i:INT) END;
 x : foo;
 y : INT;
index 8e281810607e1d7f6c1a5bb8c0f6000ae6173667..e28fc630503252b4f88daf27e03f8fdfd5aab4cf 100644 (file)
@@ -10,7 +10,7 @@
 % EXPECT: END;
 % EXPECT: x : nat;
 % EXPECT: QUERY NOT(is_succ(x)) AND NOT(is_zero(x));
-% EXPECT: invalid
+% EXPECT: not_entailed
 %
 
 DATATYPE nat = succ(pred : nat) | zero END;
index 20fec4fddc7bcbf93ffbfe7f198896872e680855..6a0e97fc3ef07f469a187618b0dddf27f6656435 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: invalid
+% EXPECT: not_entailed
 
 DATATYPE nat = succ(pred : nat) | zero END;
 
index 8fff50a8635cdff582cea01eb80af5049ce5b9d1..0b9e41024f6b2d8682cdda0933d1a3e32c3ef516 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 
 DATATYPE nat = succ(pred : nat) | zero END;
 
index 3934959f14077a057f87bfb5fd846557bc45ea9e..9e746c0e43d10472b316db18f2b9f7e9ef48ee09 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: invalid
+% EXPECT: not_entailed
 
 DATATYPE
   tree = node(left : tree, right : tree) | leaf
index 91e582dbd5f22d4b4cb6541874e2f0cddec25c0e..78d28be00a83485e74f5735003f880f6979be7c3 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 
 DATATYPE enum = enum1
 | enum2
index 939dff197e8b52cf8b301e3690a8807ca80257d1..64c84de45e9125b962c9568f28b841efc6b6c868 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 
 DATATYPE
   nat = succ(pred : nat) | zero,
index fff1a5dd766534dd5bbb43202b6ec6dc1b722948..ce99edbb7b251485e30d5b3091b2a27e9229bf83 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: invalid
+% EXPECT: not_entailed
 
 DATATYPE
   tree = node(left : tree, right : tree) | leaf
index 217777bdf83f3a168d8c90e23f247d306526c7d1..83962f49a2af98d8642b7fe5cbf3a16db2ff557a 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: invalid
+% EXPECT: not_entailed
 DATATYPE
    TypeGeneric = generic
 END;
index 4f63200285e0e72ef1cd8b6323566250a98ecb8e..b6950845e5edcb37cf00d9a13cd1fa8d7a3dc6ef 100644 (file)
@@ -7,15 +7,15 @@ b1, b2 : [##]; % empty records (a unit type)
 c1, c2 : [[]]; % 1-tuples of the empty tuple (a unit type)
 d1, d2 : [#x:[[##]],y:[#z:[]#]#]; % more complicated records (still a unit type)
 
-% EXPECT: valid
+% EXPECT: entailed
 QUERY a1 = a2;
 
-% EXPECT: valid
+% EXPECT: entailed
 QUERY b1 = b2;
 
-% EXPECT: valid
+% EXPECT: entailed
 QUERY c1 = c2;
 
-% EXPECT: valid
+% EXPECT: entailed
 QUERY d1 = d2;
 
index b86b647b5621fa079861ec7c05d6e57a36ad28cf..5bd857b6e40c7322993fdd1fff6892e7f6f983cd 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 
 DATATYPE nat = succ(pred : nat2) | zero,
          nat2 = succ2(pred2 : nat) | zero2 END;
index 79c9facdaa75c3c087931268f563462149d932c3..b3e20598540a6c4c195c2a277dabb6160cbb9de5 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 c : BOOLEAN;
 a17 : BOOLEAN = ((# _a := 2, _b := 2 #) = (
           IF c THEN (# _a := 3, _b := 2 #)
index 44d523a46971ddc4b551189f09aa72cb9dd5a8a9..56864c088c8540a4afd3338fcacfdb0f6bd07f15 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 c : BOOLEAN;
 a16 : [# _a : INT, _b : INT #] = (
         IF c THEN (# _a := 3, _b := 2 #)
index 08a9988ef1ef1ecb049d0130bd927faaeb80efb0..f7f29755f5ccb9adbe8e4efda450f769175ce576 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 a : BOOLEAN;
 a49 : BOOLEAN = (
           IF a THEN (# _a := 1 #)
index 18f8b344147d970c262d86c3e3db41328b2a71a7..e9b7662a0ff9e4b39770bd633ae70668c7800186 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 
 % simple test for rewriter cases
 
index 33c68decee8eac97a3f27ec52e7f9ff1ca625fe7..0e519a64f2ccd67a3c509811c812247ba43b516c 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: invalid
+% EXPECT: not_entailed
 
 Mem_0 : TYPE = ARRAY INT OF INT;
 
index 3667375255e18f94124d1e79f093ca323ed03a84..00ab8d4dbc3757a7f8965b4762aabd6da185534f 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 x: [REAL,INT,REAL] = ( 4/5, 9, 11/9 );
 first_elem: REAL = x.0;
 third_elem: REAL = x.2;
index ee414ed651b66843bda1bf32effaa1491b1b9c68..72c23d888163b82bf047262fc9e6a1b777a43f98 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 DATATYPE
   nat = succ(pred : nat) | zero,
   list = cons(car : tree, cdr : list) | null,
index 988646f214933d171dc5e29d35f336817ecdf8b4..95b1a935fa5e51f555722003fe0aea05858a9d29 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 DATATYPE
   nat = succ(pred : nat) | zero,
   list = cons(car : tree, cdr : list) | null,
index f32c9e551c3b852dacd6162bf834db974569acfb..2295d15182d7f297a9c136e2348d80d3ba656e22 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: invalid
+% EXPECT: not_entailed
 DATATYPE
   nat = succ(pred : nat) | zero,
   list = cons(car : tree, cdr : list) | null,
index c6260e233add25ed0101ea98ea963c38875490f3..e067852dfa037a506cc5c7d6f1aeab2dd495b7df 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 DATATYPE
   nat = succ(pred : nat) | zero,
   list = cons(car : tree, cdr : list) | null,
index 05d0247cc00139c3a0af5f9daf8c59c359801cb9..f980acc69676445cb8cfed8cc47664cc940fb17c 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 DATATYPE
   nat = succ(pred : nat) | zero,
   list = cons(car : tree, cdr : list) | null,
index 7b2da4b65dbd5adf7156346a42afbc0eb4f58918..257bf2ccc0248e6338fbd556b66772e8848e962b 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 DATATYPE
   nat = succ(pred : nat) | zero,
   list = cons(car : tree, cdr : list) | null,
index fc466f30006f52521b85d452fd8e177b226aa643..d3411e12ea4530a9fd7f74137420eb6ab0e8e91a 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 DATATYPE
   nat = succ(pred : nat) | zero,
   list = cons(car : tree, cdr : list) | null,
index b7019e7ae902bd2395a0e8cb80eec6deba239e7a..ea27672d51d0b149063d79259efbb36e6fb33d04 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: invalid
+% EXPECT: not_entailed
 DATATYPE
   nat = succ(pred : nat) | zero,
   list = cons(car : tree, cdr : list) | null,
index be101b8fb63f135021c3f7f1024a3419458db719..d3db742aee74914c5313289eedd91a59c3126d96 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: invalid
+% EXPECT: not_entailed
 DATATYPE
   nat = succ(pred : nat) | zero,
   list = cons(car : tree, cdr : list) | null,
index b0dbdc46e9bb46e28f8d2d9850384bda549c632d..67be78912a1fb31e261ff82441a0ceafd34d0ea2 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: invalid
+% EXPECT: not_entailed
 DATATYPE
   nat = succ(pred : nat) | zero
 END;
index 16f59f78c71b968ea53ec41ae6da8319bbc5c83e..c4e9ba834ca9e8219f5b2805fddf0faf25f2392a 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: invalid
+% EXPECT: not_entailed
 OPTION "finite-model-find";
 OPTION "fmf-fun";
 
index 996b09d39e94601f405183ae3c48de8b2cdaa2c1..d0f5c5e1f7014d0413134f0654c42919726faf84 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 U: TYPE;
 a: U;
 b: U;
index 2c2ac2f7945d4f9ceea4d20080e71cb0a4e9d000..305f2d3960d17f4875da24a0510db1cb4c03080f 100644 (file)
@@ -1,3 +1,3 @@
 a, b, c: BOOLEAN;
-% EXPECT: valid
+% EXPECT: entailed
 QUERY (a XOR b) <=> (NOT a AND b) OR (NOT b AND a);
index 67415e95d9436a80cec30485c94e7e131bedc6dc..c74c11983d25981967fafc77d866516daf305362 100644 (file)
@@ -1,3 +1,3 @@
 a, b, c: BOOLEAN;
-% EXPECT: invalid
+% EXPECT: not_entailed
 QUERY NOT c AND b;
index 42298a8f47a97f877fbbfeb7d967389686a0e2e9..1c86ce5945dcabd1c7b18b752afc19ab289d8501 100644 (file)
@@ -1,3 +1,3 @@
 a, b, c: BOOLEAN;
-% EXPECT: valid
+% EXPECT: entailed
 QUERY (IF c THEN a ELSE b ENDIF) <=> ((c AND a) OR (NOT c AND b));
index 89a9db3202368e5b4f89a752fc5107be2ea3cb31..254b0ed87515a25f486da534134fa9dc442139b4 100644 (file)
@@ -1,3 +1,3 @@
 a, b, c: BOOLEAN;
-% EXPECT: valid
+% EXPECT: entailed
 QUERY (a => b) <=> (NOT a OR b);
index 1ec94e5ae796b11028c0d61e424f01e36e31a690..2897dbc0c75d0cc2b94a74c9f295461b4b0ee711 100644 (file)
@@ -1,4 +1,4 @@
 a, b, c: BOOLEAN;
-% EXPECT: valid
+% EXPECT: entailed
 QUERY TRUE XOR FALSE;
  
index 5115a90c1f8ac58e553c12785c2885aad6b1ac1c..3ede8d211357ca12cf785a05d5b571e0509f163a 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 % Simple test for right precedence of AND and NOT.
 
 A, B: BOOLEAN;
index 879becbbf02d174940e7351e47d3ff67a2ee0d76..ec69087d193fef660e1e3522b0504c98b2fa52e0 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 % Simple test for right precedence of XOR and AND.
 
 A, B, C: BOOLEAN;
index b8729e92a58545bb84e77c21633a086a6b84c994..4f81c86ad43babf2148f3a56747559f1845e4de3 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 % Simple test for right precedence of comparisons and booleans
 
 x , y, z: INT;
index a7c07fe301e70561a4881eaaf0c16170179abe69..54ee7b8f8cb1c18d6c4ee680dd8cf91344acbd11 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 % Simple test for right precedence of comparisons and plus/minus
 
 x, y, z: INT;
index 9e581d5142dc0aedacc506bdaa875f41b9ffffd0..af81ea10d90fab787e26eacfae50dcb788dc8f34 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 % Simple test for right precedence of function application and =
 
 T : TYPE;
index 745cc74749dbdfc18d1b6c6a6fbb701ce90878b8..4643292b6c8523ef04780800e8c42a151733bfbc 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 % Simple test for right associativity of <=>
 
 A, B, C: BOOLEAN;
index 947433c885d503ced22537e4dac13fe9a3429099..24181487dbf7b305fb5117a38ab937d2d610a4c8 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 % Simple test for right precedence of <=> and =>.
 
 A, B, C: BOOLEAN;
index 1a7cef3b15759a6718268a6e02b47997526f4bb4..c6883c6ad757b1ce31472daa2b139e3b296c3658 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 % Simple test for right associativity of =>
 
 A, B, C: BOOLEAN;
index 3de26eb18821d0b0e0a7778a7e03bdd958b94e79..9ebed72d4d354f010cbcebd62ff331e389c052c3 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 % Simple test for right precedence of <=> and =>.
 
 A, B, C: BOOLEAN;
index d724d33ef35ecb7fc662dd8cc1ee910143867259..883e7d4a17eca54affedff7131b56c11da3f3474 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 % Simple test for right precedence of => and OR.
 
 A, B, C: BOOLEAN;
index fc671d7b50e087d06b521fd5db7dee4f9337e604..579531ded937e7545a567cef87ef13c297aad9a6 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 % Simple test for right precedence of AND and NOT.
 
 A, B, C: BOOLEAN;
index f658c127efeceaf7dae9d31994644d0bb7c4fd0f..f8c7366bee9aaf026a5ecf1b00ad2a32671ee898 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 % Simple test for right precedence of = and NOT.
 
 A, B: INT;
index 209df8559eb7f773694f267f75ae8ed51d9b4f3a..746f142e4f2706e5ad14012cd0cce0b6d5ed819c 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 % Simple test for right precedence of => and OR.
 
 A, B, C: BOOLEAN;
index 2a25bac63e6cbde3476631fdc7fc96ca725afd16..405cb68b75d2dbd102215a274ead9b6006adfe62 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 % Simple test for right precedence of OR and XOR.
 
 A, B, C: BOOLEAN;
index 5d980f90ddb8ac918d972c60e7816074720c4748..57b9b99cf3cf99db6197e28f94fd689d0c0bf19b 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 % Simple test for right precedence of plus/minus and mult/divide
 
 a, b, c, d, e: INT;
index 68896db10471da8a21c4353a6e3324c822379a9d..08c939c5e253e4351a2e26cdfac0e411be4e3a7c 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 % Simple test for right precedence of XOR and AND.
 
 A, B, C: BOOLEAN;
index f31324a5398cd25430d661bd2bb8d5dd39838b85..5f4646b1fa7b3804ebf5fdba28cc1ce5cd634554 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 % Simple test for left associativity of XOR
 
 A, B, C: BOOLEAN;
index 75728676466baba3cdee48f0fe6792c5c2967b6e..87abc0e730226458207651c067414155ed3b3955 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 % Simple test for right precedence of OR and XOR.
 
 A, B, C: BOOLEAN;
index c868435354afd2a896cd3b91f5753f06a36860e5..2e51a42ad1561eeaae4674bfc56d5c70c2b62053 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 
 a0, a1, a2, a3, a4, a5, a6, a7, a8, a9: BOOLEAN;
 
index e2c93a3592c89bf8cdbf12842804976026886b17..0f94103f6c8d1f6ee4f792086a500773016ce167 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 
 a0, a1, a2, a3, a4, a5, a6, a7, a8, a9: BOOLEAN;
 
index 3e45c529a7acc82af4e0de2be04976538826b37b..abcc7a6ac5f4b8cf050c9ff775567baf71d52cc5 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 
 a0, a1, a2, a3, a4, a5: BOOLEAN;
 
index 8b26c0d088fb5083943e54e67effe75913cf295b..9a6cd797ccf87dec570bccc09c1d223f6e9bdc29 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 
 a0, a1, a2, a3, a4, a5, a6, a7, a8, a9: BOOLEAN;
 
index 267a316e83d0fc3bc6ba8aa74fe9acd17d39a2f2..9666680021a87f56884afb4841ab86aca5164d19 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: invalid
+% EXPECT: not_entailed
 % EXPECT: ((r.a, "active"))
 % EXPECT: ((y.1, 9))
 OPTION "produce-models";
index 2b9eedcdbca76a5555a8ddddcafeb5cf0e3f272d..1a6049329b8611797fad291e3cd8d3c90abd26de 100644 (file)
@@ -3,9 +3,9 @@
 
 a, b: BOOLEAN;
 
-% EXPECT: valid
+% EXPECT: entailed
 QUERY (a AND b) OR NOT (a AND b);
 
-% EXPECT: invalid
+% EXPECT: not_entailed
 QUERY (a OR b);
 
index 9b10ef8435d09b425ba11671592dcbee08fdc981..657e744869711ace821c4d865e3795aa7164f510 100644 (file)
@@ -1,21 +1,21 @@
 % COMMAND-LINE: --incremental
 U : TYPE;
 x, y : U;
-% EXPECT: invalid
+% EXPECT: not_entailed
 QUERY x = y;
 ASSERT x = y;
-% EXPECT: valid
+% EXPECT: entailed
 QUERY x = y;
 PUSH;
 z : U;
-% EXPECT: valid
+% EXPECT: entailed
 QUERY x = y;
-% EXPECT: invalid
+% EXPECT: not_entailed
 QUERY x = z;
-% EXPECT: invalid
+% EXPECT: not_entailed
 QUERY z = x;
-% EXPECT: invalid
+% EXPECT: not_entailed
 QUERY z /= x;
 POP;
-% EXPECT: invalid
+% EXPECT: not_entailed
 QUERY z /= x;
index 63cf52fd6a6549a1f848725f3ea6b11ffc055212..d01d7b7d2948ca9bb93978c5c4220f65d8cd027d 100644 (file)
@@ -1,2 +1,2 @@
-% EXPECT: valid
+% EXPECT: entailed
 QUERY FORALL (x:INT) : EXISTS (y:INT) : (x*y=x) ;
index 6740faa8cf349630c28f6067faecc146a07e0f12..06d2b5049684637c9046258d4e9a3687f89cab8e 100644 (file)
@@ -4,7 +4,7 @@
 % EXPECT: unsat
 % EXPECT: unsat
 % EXPECT: unsat
-% EXPECT: invalid
+% EXPECT: not_entailed
 OPTION "incremental" true;
 OPTION "logic" "ALL_SUPPORTED";
 SetInt : TYPE = SET OF INT;
index 83d0225bda6630b29c298ab47b7207dd43217ff9..def48254eda415dcb4f7ca36a31954ba3df1a9f9 100644 (file)
@@ -3,5 +3,5 @@ ASSERT x1 OR NOT x0;
 ASSERT x0 OR NOT x3;
 ASSERT x3 OR x2;
 ASSERT x1 AND NOT x1;
-% EXPECT: valid
+% EXPECT: entailed
 QUERY x2;
index bd732b4dcc95ac45ff19ffcd92766dbf92072593..dcb7c6f0dbc83e6e59ef443db5310938fd00f202 100644 (file)
@@ -4,6 +4,6 @@ ASSERT NOT a OR NOT b;
 ASSERT c OR b OR a;
 ASSERT b OR NOT a;
 ASSERT a OR NOT b OR c;
-% EXPECT: invalid
+% EXPECT: not_entailed
 QUERY FALSE;
 
index 489d686b3a2e901b730d649be06e6670cd6ef28c..4bfa1766afc865c9213cce00cd1bb6337fde44f5 100644 (file)
@@ -1,4 +1,4 @@
-; EXPECT: (error "Cannot get an unsat core unless immediately preceded by UNSAT/VALID response.")
+; EXPECT: (error "Cannot get an unsat core unless immediately preceded by UNSAT/ENTAILED response.")
 ; EXPECT: sat
 ; EXPECT: sat
 ; EXPECT: unsat
index 45052deeb1fe9ef12186e5431fc3faa8edcd01cd..26dda442e7d8f02b46be4e67e359afd900b12274 100644 (file)
@@ -3,5 +3,5 @@ x, y : BOOLEAN;
 ASSERT (x OR y);
 ASSERT NOT (x OR y);
 
-% EXPECT: valid
+% EXPECT: entailed
 QUERY FALSE;
index bfe1a32856f26b5f95c235fa074ae6d858c8b762..7872f5a1a7878e3213c0ba1679d79d6b6add6a65 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 P,Q:BOOLEAN;
 ASSERT (P OR Q);
 QUERY (P OR Q);
index 42b99cc44fff2f4a2a895b07db72b769aed5c425..6b0f933240daabb0d1a36dd0e232db114687da3c 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 A: TYPE;
 B: TYPE;
 x, y: A;
index 1dd96fd1c8139bd4b8ed3a1c3cca39eb797f3926..2bd0b1e1edc8cd851b2347845472629e9a85e102 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: invalid
+% EXPECT: not_entailed
 A: TYPE;
 B: TYPE;
 x, y: A;
index cc1721ca6b42c645ab531275a4ae4dbadd52c8c0..15fe5907ce5c76cf8c50620e07f73a50264d9a07 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 A: TYPE;
 B: TYPE;
 x, y: A;
index 66223ca7b8249166d8a995f81a3233b2d4a908b8..0fc52bccaa9a69863079b093dd832e9d6310b928 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: invalid
+% EXPECT: not_entailed
 A: TYPE;
 B: TYPE;
 x, y: A;
index 9de7542847f67c91c4d9937d95bf51fe55141ea0..b25d8a4718b3d5fc9b647a749c1a323cbec08e76 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: invalid
+% EXPECT: not_entailed
 x_1 : BOOLEAN;
 x_2 : BOOLEAN;
 x_3 : BOOLEAN;
index fb38fab65a63bd414fd33fc9fd8ac57db95cbba2..1516503ff436a8fcb74e5ec24c7d65afa67929bf 100644 (file)
@@ -1,4 +1,4 @@
 a, b, c : BOOLEAN;
 
-% EXPECT: valid
+% EXPECT: entailed
 QUERY a OR (b OR c) <=> (a OR b) OR c;
index 93d555c96efca5805cf4f5e85919475e6abb65cf..ebeadee140d9c86bf0d5d4489bd541ca850271d9 100644 (file)
@@ -1,4 +1,4 @@
 a, b, c : BOOLEAN;
 
-% EXPECT: valid
+% EXPECT: entailed
 QUERY a AND (b AND c) <=> (a AND b) AND c;
index 08b049c17c2fb1640ff8dbeccc52b46549d59e70..ca0e6a8d1d0ed260bf228a9ae26d490aa59981c6 100644 (file)
@@ -1,4 +1,4 @@
 a, b, c : BOOLEAN;
 
-% EXPECT: valid
+% EXPECT: entailed
 QUERY a OR b <=> b OR a;
index b88de6144956d9d63af61749b0c0c34116afab45..75fe172381588bca6cfbcb00a92e0f12f9d214f1 100644 (file)
@@ -1,4 +1,4 @@
 a, b, c : BOOLEAN;
 
-% EXPECT: valid
+% EXPECT: entailed
 QUERY a AND b <=> b AND a;
index 0fe647f7b14ee7339e4e2f8f5b0bc0cfef783c1d..2f87e4ca077a20b5958a112454eeedcf796a169c 100644 (file)
@@ -1,4 +1,4 @@
 a, b, c : BOOLEAN;
 
-% EXPECT: valid
+% EXPECT: entailed
 QUERY a OR (a AND b) <=> a;
index 1d466a86e6b5aef8fd3d3f16943b3cb89e3663ea..a4075bda3f3db187f079795872cffc5f6e36083e 100644 (file)
@@ -1,4 +1,4 @@
 a, b, c : BOOLEAN;
 
-% EXPECT: valid
+% EXPECT: entailed
 QUERY a AND (a OR b) <=> a;
index 146d9283223fe7085148335ace195000ff3aa609..3b4527bdc8dbd7f2cc6c59a3ffd8050fbe7c31bc 100644 (file)
@@ -1,4 +1,4 @@
 a, b, c : BOOLEAN;
 
-% EXPECT: valid
+% EXPECT: entailed
 QUERY a OR (b AND c) <=> (a OR b) AND (a OR c);
index e9c7d3fa35f6af126eddd075806b867f9cd4b20b..e15a21412aed4571214be475095678f8b53a47d2 100644 (file)
@@ -1,4 +1,4 @@
 a, b, c : BOOLEAN;
 
-% EXPECT: valid
+% EXPECT: entailed
 QUERY a AND (b OR c) <=> (a AND b) OR (a AND c);
index 478be2db98a05bbea29e3f4ca4393e0f380f5fe5..5bc5faca54205c8c9a8e60174aace3e6ada90ff0 100644 (file)
@@ -1,4 +1,4 @@
 a, b, c : BOOLEAN;
 
-% EXPECT: valid
+% EXPECT: entailed
 QUERY a OR NOT a;
index 226a3da821bbb6d5e2cfe1de18bec28ed38258b5..613022e84c42caf60ac31c6eb595a9cacb379ad4 100644 (file)
@@ -1,4 +1,4 @@
 a, b, c : BOOLEAN;
 
-% EXPECT: valid
+% EXPECT: entailed
 QUERY a AND NOT a <=> FALSE;
index d615fef3b112d69042f458201603a83817bec9ad..8debef9cd95611a6c7e35082e4ee5dffd7f38f07 100644 (file)
@@ -1,4 +1,4 @@
 a, b, c : BOOLEAN;
 
-% EXPECT: valid
+% EXPECT: entailed
 QUERY a OR a <=> a;
index 209e512a6194fc4f2a6033279113bc125de297b0..2274fc78eb9d0aa78e46c39b94e2ddecc2a73e07 100644 (file)
@@ -1,4 +1,4 @@
 a, b, c : BOOLEAN;
 
-% EXPECT: valid
+% EXPECT: entailed
 QUERY a AND a <=> a;
index 2cc69f04882f3849ac8f5295ddd0f5a1f868928f..80b95802d13a00525c7e6638a4a977aba52b46e6 100644 (file)
@@ -1,4 +1,4 @@
 a, b, c : BOOLEAN;
 
-% EXPECT: valid
+% EXPECT: entailed
 QUERY a OR FALSE <=> a;
index 5a6c162489c2922d7cc801cdd88bed37a9daed5a..7b8a14edbc7f6a5a56e25f2aeff48ad511ca7898 100644 (file)
@@ -1,4 +1,4 @@
 a, b, c : BOOLEAN;
 
-% EXPECT: valid
+% EXPECT: entailed
 QUERY a AND TRUE <=> a;
index 6dc84f679c0d524432869622084f7a952e4267e9..dfb4f13fcbbb5ab58dc30afe3300031690038ba7 100644 (file)
@@ -1,4 +1,4 @@
 a, b, c : BOOLEAN;
 
-% EXPECT: valid
+% EXPECT: entailed
 QUERY a OR TRUE <=> TRUE;
index 6b2bf4113d286112240d85e809f410bc14402b7d..9c69baa52d38a4f9b61077f93c8fc75fb7f6e645 100644 (file)
@@ -1,4 +1,4 @@
 a, b, c : BOOLEAN;
 
-% EXPECT: valid
+% EXPECT: entailed
 QUERY a AND FALSE <=> FALSE;
index 7c6701acc72f079ba2216398ca0acf07c3f661fb..c58160bb967265fea005a8c23b556c9f1f002ecf 100644 (file)
@@ -1,4 +1,4 @@
 a, b, c : BOOLEAN;
 
-% EXPECT: valid
+% EXPECT: entailed
 QUERY NOT FALSE <=> TRUE;
index 7c1b1b8e4b40a69ea60c7ee03c9f969886fe6429..17773b899c587aa0621b015ab9758a795389d4d8 100644 (file)
@@ -1,4 +1,4 @@
 a, b, c : BOOLEAN;
 
-% EXPECT: valid
+% EXPECT: entailed
 QUERY NOT TRUE <=> FALSE;
index d5812b5ea9a0af14284e5db3f1cc762ad499eb8c..46b6fc02ebf5033edf569368db26b7b0192cbb08 100644 (file)
@@ -1,4 +1,4 @@
 a, b, c : BOOLEAN;
 
-% EXPECT: valid
+% EXPECT: entailed
 QUERY NOT (a OR b) <=> NOT a AND NOT b;
index 8d257062099191b65959ddff26a9b94d5107176a..42e114010ec8737c30e13c89fc5a8f1783f5974b 100644 (file)
@@ -1,4 +1,4 @@
 a, b, c : BOOLEAN;
 
-% EXPECT: valid
+% EXPECT: entailed
 QUERY NOT (a AND b) <=> NOT a OR NOT b;
index d65cbcf6578125c86891c5314c4f5079e6aad863..bcc69beea75999d7e43e0ab09b21015d858a5b40 100644 (file)
@@ -1,4 +1,4 @@
 a, b, c : BOOLEAN;
 
-% EXPECT: valid
+% EXPECT: entailed
 QUERY NOT NOT a <=> a;
index 03ed1a6ae482c1e409b1ae5e2f333af37a4ec05b..3fd528c111f1c164e8b23b1eaf3ca163ef8b57c7 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 x0, x1, x2, x3 : INT;
 ASSERT  (-23 * x0) + (-23 * x1) + (5 * x2) + (-17 * x3) = 7 ;
 ASSERT  (-14 * x0) + (-14 * x1) + (19 * x2) + (-24 * x3) = 29 ;
index 849daba796f655cac651b54a040253c7e6cacab4..6cc4b2c5e2abce252af4ce0a81da9dca84c8ef62 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 x0, x1, x2, x3 : INT;
 ASSERT  (17 * x0) + (-23 * x1) + (2 * x2) + (-19 * x3) = -18 ;
 ASSERT  (25 * x0) + (23 * x1) + (21 * x2) + (20 * x3) = 2 ;
index 9c060c46951a8b98cfd4b4302dd5150d11c53e53..f294babe6152dea9993c03a0ccd252a2e30e81d4 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 x0, x1, x2, x3 : INT;
 ASSERT  (17 * x0) + (-7 * x1) + (15 * x2) + (21 * x3) = 19 ;
 ASSERT (6 * x0) + (-24 * x1) + (25 * x2) + (-18 * x3) > -25 ;
index 314b76d18b26258531344c45747434c9486af00e..15b060d9233523befe4002ff042e88f58eb49190 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: invalid
+% EXPECT: not_entailed
 
 x0, x1, x2, x3 : INT;
 ASSERT (12 * x0) + (-25 * x1) + (21 * x2) + (7 * x3) < 27 ;
index 9b9776ad3725ecb5c33fe2b999e3df25e73c22c2..3701d60b4955903b1624bf0b45e081d598c7b09e 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 x0, x1, x2, x3 : INT;
 ASSERT  (13 * x0) + (0 * x1) + (6 * x2) + (-30 * x3) = -16 ;
 ASSERT  (-4 * x0) + (-8 * x1) + (14 * x2) + (-8 * x3) = -11 ;
index 999b4a5b4b7dd9ee31b78ebe6f46adfae3d1af47..53a80310a3f2ac97d242f3b8f13802dbe4266abe 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 x0, x1, x2, x3 : INT;
 ASSERT (-7 * x0) + (-28 * x1) + (8 * x2) + (29 * x3) = -18 ;
 ASSERT  (11 * x0) + (2 * x1) + (4 * x2) + (23 * x3) = 6 ;
index 4cb4d88efdcc2c6f878b5006e4e43da6ea16fbe4..c0732e2b283663fb79527ced572f8bf630e7086c 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: invalid
+% EXPECT: not_entailed
 x0, x1, x2, x3 : INT;
 ASSERT (-19 * x0) + (17 * x1) + (30 * x2) + (-31 * x3) <= -20 ;
 ASSERT  (-3 * x0) + (16 * x1) + (20 * x2) + (-25 * x3) < 28 ;
index 1ae22c9933ab71d075a01483e227833d4bafd4be..1810d6f28444c8b4c7fe57fbd9b740ea4f257bac 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: invalid
+% EXPECT: not_entailed
 x0, x1, x2, x3 : INT;
 ASSERT  (-12 * x0) + (-15 * x1) + (-31 * x2) + (17 * x3) = -16 ;
 ASSERT (11 * x0) + (-5 * x1) + (-8 * x2) + (-17 * x3) > -4 ;
index 9bd7a2ce4da0bab2555b5e3d5172dbbdad67dbf8..14b26da6c07980ad56a2bf6fe86e5bfc49885bc2 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 x0, x1, x2, x3 : INT;
 ASSERT  (-16 * x0) + (-21 * x1) + (32 * x2) + (32 * x3) = -19 ;
 ASSERT  (-10 * x0) + (-21 * x1) + (13 * x2) + (-7 * x3) = 2 ;
index 4ac85a984a6f85415d138f2060866426d63cd885..aa649ba4a5fa646459f67dfa1f40eb4a204d9528 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 x0, x1, x2, x3 : INT;
 ASSERT  (19 * x0) + (-2 * x1) + (-29 * x2) + (-24 * x3) = 3 ;
 ASSERT  (3 * x0) + (11 * x1) + (-14 * x2) + (6 * x3) = 4 ;
index bd2fa2a0dcd462621a4b090b24dbc538816869bf..7de68533f3f2c8d1c457ba4ea5c83f218634616b 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: invalid
+% EXPECT: not_entailed
 x0, x1, x2, x3 : INT;
 ASSERT (13 * x0) + (-1 * x1) + (11 * x2) + (10 * x3) = 9 ;
 ASSERT  (-7 * x0) + (3 * x1) + (-22 * x2) + (16 * x3) >= 9;
index 11b0dab277dba65a6e4a9fcd4f44e866fd877b9d..10922dd89f57c0549d9c388f184f775fcc4cd8c2 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: invalid
+% EXPECT: not_entailed
 x0, x1, x2, x3 : INT;
 ASSERT (18 * x0) + (32 * x1) + (-11 * x2) + (18 * x3) < -25 ;
 ASSERT  (-31 * x0) + (16 * x1) + (24 * x2) + (9 * x3) >= -24;
index 329251cae55998e82e4f8684d0f069e852c3be24..8a1f76adde441e3b48727a3731bba412c8e7e1d4 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: invalid
+% EXPECT: not_entailed
 x0, x1, x2, x3 : INT;
 ASSERT (-22 * x0) + (-14 * x1) + (4 * x2) + (-12 * x3) > 25 ;
 ASSERT  (14 * x0) + (11 * x1) + (32 * x2) + (-8 * x3) >= 2;
index 6774dd2d1c0879727bfdb53ab5a0abc77a86abd1..951650461a6427019de95f911a382d9ee1e8e41f 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 x0, x1, x2, x3 : INT;
 ASSERT  (-13 * x0) + (-4 * x1) + (-20 * x2) + (-26 * x3) = 2 ;
 ASSERT  (13 * x0) + (13 * x1) + (-14 * x2) + (26 * x3) = -8 ;
index e9a06125a98191baf0a5e671d577064d02e624e8..48287249f968a82983d93b50cfcf7399037c7c88 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 x0, x1, x2, x3 : INT;
 ASSERT  (23 * x0) + (-4 * x1) + (-26 * x2) + (-1 * x3) = 10 ;
 ASSERT  (15 * x0) + (31 * x1) + (31 * x2) + (31 * x3) = 13 ;
index 4cb97b77e071c3743aeab6a31a0309192e4efab7..cae6fed7281ed4f2547fc72fb99f3d22ce33a9c9 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 x0, x1, x2, x3 : INT;
 ASSERT (-11 * x0) + (-26 * x1) + (9 * x2) + (32 * x3) = -11 ;
 ASSERT  (-5 * x0) + (-11 * x1) + (-10 * x2) + (-31 * x3) = -23 ;
index cf9ae2d70a089940377ee812974b2643e3c70f5c..a26bbac0196911d861b47876901e8be99fe5c765 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 x0, x1, x2, x3 : INT;
 ASSERT  (25 * x0) + (6 * x1) + (-30 * x2) + (29 * x3) = -5 ;
 ASSERT (14 * x0) + (16 * x1) + (24 * x2) + (-7 * x3) <= 31 ;
index 07a827465d41d515feb165086100c91c2cdb8678..c1416b38f55b9b7edf525743512e812cd6071769 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 x0, x1, x2, x3 : INT;
 ASSERT (-32 * x0) + (31 * x1) + (-32 * x2) + (-21 * x3) = 5 ;
 ASSERT  (32 * x0) + (5 * x1) + (23 * x2) + (-16 * x3) = 8 ;
index 584348da4a83a55fb7606c767ee4f4a47b5c41c7..4612f72c9380691303d5b3b7eee16a834b146a76 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: invalid
+% EXPECT: not_entailed
 x0, x1, x2, x3 : INT;
 ASSERT (-24 * x0) + (25 * x1) + (-28 * x2) + (31 * x3) > 18;
 QUERY FALSE;
index f57136dd124dea29e155bbb6515c2af881b23698..73ae7c4ade960f65ca650f11533287ae2dbe4f69 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: invalid
+% EXPECT: not_entailed
 x0, x1, x2, x3 : INT;
 ASSERT (4 * x0) + (8 * x1) + (27 * x2) + (-12 * x3) = -5;
 QUERY FALSE;
index 9e69aa2d1581cb34eac6d8028256231c021548df..52f2478e0b9bfc1820cb83eacedd339242a22af3 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 x0, x1, x2, x3 : INT;
 ASSERT  (22 * x0) + (25 * x1) + (1 * x2) + (-11 * x3) = 19 ;
 ASSERT  (-10 * x0) + (-27 * x1) + (6 * x2) + (6 * x3) = 28 ;
index b45622fea4c76aa5f16bdca7d13202f567bcdff2..6c38642d23ce3256308b2af717bb6a204a0f7643 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 x0, x1, x2, x3 : INT;
 ASSERT (17 * x0) + (29 * x1) + (-11 * x2) + (24 * x3) = 13 ;
 ASSERT  (16 * x0) + (-20 * x1) + (-5 * x2) + (12 * x3) = 13 ;
index 61fee4203d2706b8b993bd6a458dbb2dc42bc957..7e8b7889391bb099d624a706ae958ceab2e4d45d 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 x0, x1, x2, x3 : INT;
 ASSERT  (-31 * x0) + (-5 * x1) + (-28 * x2) + (16 * x3) = 10 ;
 ASSERT  (3 * x0) + (-20 * x1) + (-11 * x2) + (-2 * x3) = 25 ;
index ee49bbb683ca00a6ef21def73f103f465e2f8d8a..ba49219d85281b7ba7d45576da9d8844207e0b6d 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 x0, x1, x2, x3 : INT;
 ASSERT  (-29 * x0) + (-17 * x1) + (11 * x2) + (1 * x3) = -15 ;
 ASSERT  (-13 * x0) + (1 * x1) + (-6 * x2) + (-15 * x3) = 32 ;
index 70b6a37854255f7aa9ca48be8876a3fc29c174f7..a6348b1070af33efe8082a8a4288b0aeb10210ec 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 x0, x1, x2, x3 : INT;
 ASSERT (-13 * x0) + (26 * x1) + (-11 * x2) + (17 * x3) = 17 ;
 ASSERT  (-15 * x0) + (2 * x1) + (-9 * x2) + (17 * x3) = -11 ;
index 86242f7aaac5f84d94f2bb5938c3d8c761926c6f..056ab622e33047f477a9d231b65151ef9afb4229 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 x0, x1, x2, x3 : INT;
 ASSERT  (-21 * x0) + (-24 * x1) + (-31 * x2) + (12 * x3) = -10 ;
 ASSERT (-4 * x0) + (22 * x1) + (9 * x2) + (17 * x3) > -20 ;
index 1ee4c9844d2eeceb0f53407a1c2b968723a33cb4..08c29108ed1cb18a2d694f14bbf9b94b28f51c97 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 x0, x1, x2, x3 : INT;
 ASSERT (4 * x0) + (-29 * x1) + (-9 * x2) + (9 * x3) = 8 ;
 ASSERT  (-26 * x0) + (-26 * x1) + (26 * x2) + (-18 * x3) = -20 ;
index 599ba4e9a13f4f2ae697b957fb4e2d1ebcc51716..8259a77256af508d2183971c84dc131391b3dba5 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 x0, x1, x2, x3 : INT;
 ASSERT  (-14 * x0) + (16 * x1) + (-16 * x2) + (0 * x3) = -8 ;
 ASSERT  (3 * x0) + (-20 * x1) + (-12 * x2) + (-3 * x3) = -7 ;
index ec615a785822d35bd6c0d57ded1d3ef5611ebe6a..2b5ae4f4f975ff22544b6b7863083317b8353ecd 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 x0, x1, x2, x3 : INT;
 ASSERT (-20 * x0) + (-5 * x1) + (30 * x2) + (-24 * x3) = 12 ;
 ASSERT  (24 * x0) + (27 * x1) + (18 * x2) + (-5 * x3) = -16 ;
index e7dee2484458aea6c4810b74527f3c2a5696116a..1bad259e22e9cc46c2001c5734ea539512ce0fb9 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 x0, x1, x2, x3 : INT;
 ASSERT  (-3 * x0) + (2 * x1) + (17 * x2) + (-4 * x3) = -17 ;
 ASSERT  (5 * x0) + (-4 * x1) + (22 * x2) + (14 * x3) = -15 ;
index 9594f9586e611cecbe8f9974088f7f37ded97424..0eb783815d5f79fa64b15536030f793f0db9759c 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 x0, x1, x2, x3 : INT;
 ASSERT (-9 * x0) + (-21 * x1) + (-25 * x2) + (-1 * x3) = -11 ;
 ASSERT  (31 * x0) + (-18 * x1) + (5 * x2) + (-11 * x3) = 10 ;
index 4d4422d3fb8f4df88943cf4bc72fc99090430576..c3ed60011a220fb49ec26e6d030f94b3e33626cb 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 x0, x1, x2, x3 : INT;
 ASSERT  (12 * x0) + (14 * x1) + (-22 * x2) + (-6 * x3) = 29 ;
 ASSERT  (-9 * x0) + (14 * x1) + (-23 * x2) + (-31 * x3) = 4 ;
index 476133b2402d6a7b1bf7bd9c70681ab527232908..52ac2b1e310dca46a87b22f6bf931eba0f138bca 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 x0, x1, x2, x3 : INT;
 ASSERT  (-24 * x0) + (25 * x1) + (28 * x2) + (-31 * x3) = -1 ;
 ASSERT (29 * x0) + (17 * x1) + (-2 * x2) + (-6 * x3) <= 4 ;
index 9e9235ae89b9649308eea0fc00271e1e33b43181..cecb7f085946ae1d38e035738c492ffff60703f0 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 x0, x1, x2, x3 : INT;
 ASSERT (22 * x0) + (21 * x1) + (-18 * x2) + (21 * x3) = 30 ;
 ASSERT  (-31 * x0) + (22 * x1) + (-20 * x2) + (18 * x3) = -32 ;
index 68502349f9a5af8a39c7377bad6832907300dc6b..f2dff77963a9c6968f9957888b0526d71487e13f 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 x0, x1, x2, x3 : INT;
 ASSERT (-1 * x0) + (-24 * x1) + (3 * x2) + (-8 * x3) > -5 ;
 ASSERT  (29 * x0) + (17 * x1) + (-26 * x2) + (20 * x3) > 11 ;
index a0c2dc0f936acfe62cf6c06c4a482059bdba0587..9df03a9bd08e8df75d274e3e41d7819c9a21a9de 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: invalid
+% EXPECT: not_entailed
 x0, x1, x2, x3 : INT;
 ASSERT (-31 * x0) + (8 * x1) + (16 * x2) + (5 * x3) >= 1 ;
 ASSERT  (-30 * x0) + (13 * x1) + (-17 * x2) + (13 * x3) < -24 ;
index 7efea85e507ce3860f623e4356725697f4f7e546..7a2d6d6af8dc3ac918ec29b29b8dc61e49126f31 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: invalid
+% EXPECT: not_entailed
 x0, x1, x2, x3 : INT;
 ASSERT  (-21 * x0) + (-23 * x1) + (29 * x2) + (-4 * x3) = 25 ;
 ASSERT (20 * x0) + (-19 * x1) + (3 * x2) + (-1 * x3) <= -8 ;
index f933b014b879c7a171b6139ec909d97566dd169b..649532a4bc575eae2fad98722e8851d728dd70b4 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 %%%% down from 24, up from 6, up from 39
 x0, x1, x2, x3 : INT;
 ASSERT  (-30 * x0) + (18 * x1) + (17 * x2) + (3 * x3) = 0;
index ca1a12ba6153305f8e73f796031cc653657e2dee..2c552c915ce1311b1af66ba542f6d44ed0572ba5 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 x0, x1, x2, x3 : INT;
 ASSERT  (-22 * x0) + (-5 * x1) + (-5 * x2) + (25 * x3) = 22 ;
 ASSERT (2 * x0) + (-25 * x1) + (4 * x2) + (-21 * x3) >= 0 ;
index d4d206c6edaa6872795ea55e2c8cd21bf1a3d2c1..acf4dc9a93c26481beccc37198453792305f268d 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: invalid
+% EXPECT: not_entailed
 x0, x1, x2, x3 : INT;
 ASSERT (2 * x0) + (-6 * x1) + (14 * x2) + (-24 * x3) > 4 ;
 ASSERT  (-13 * x0) + (-2 * x1) + (-9 * x2) + (-7 * x3) >= 29 ;
index 0763e5dc36b5f56c406012a5d6f91d059f613f74..bb1225b9d5435fa6d7d3ee07514b6cd9de035472 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: invalid
+% EXPECT: not_entailed
 x0, x1, x2, x3 : INT;
 ASSERT  (-14 * x0) + (27 * x1) + (10 * x2) + (1 * x3) = 10;
 ASSERT (-29 * x0) + (-26 * x1) + (-16 * x2) + (17 * x3) >= 16 ;
index e7c05332dea363672b7ababb7fb3829c64ebe1bf..ccc84f38911b5002fa935704a4c5c54ed36d91ce 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: invalid
+% EXPECT: not_entailed
 x0, x1, x2, x3 : INT;
 ASSERT (-13 * x0) + (-11 * x1) + (-14 * x2) + (21 * x3) = 6 ;
 ASSERT  (7 * x0) + (5 * x1) + (13 * x2) + (21 * x3) <= 27 ;
index 8eabc78a8a6350aef7f4156f25f83ec4d7f0b2d1..72e3b7f3148b493fa729a79a1ca36cb3adb4c09e 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: invalid
+% EXPECT: not_entailed
 x0, x1, x2, x3 : INT;
 ASSERT (-15 * x0) + (-20 * x1) + (-32 * x2) + (-16 * x3) = -19 ;
 ASSERT  (24 * x0) + (23 * x1) + (22 * x2) + (30 * x3) >= 19 ;
index f0ba939b7f799869eceda9ad5063e3229804771b..21dbfe09ad1d80582fecc87d73b6833230f89e0f 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: invalid
+% EXPECT: not_entailed
 x0, x1, x2, x3 : INT;
 ASSERT (-20 * x0) + (-19 * x1) + (6 * x2) + (32 * x3) > 16 ;
 ASSERT  (-1 * x0) + (-30 * x1) + (15 * x2) + (7 * x3) < -10 ;
index 9a2497432d6084e627a872682f5cf907e40cf860..68654a7df55c801f3d987f55c26b18a0b4262540 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 x0, x1, x2, x3 : INT;
 ASSERT (-13 * x0) + (7 * x1) + (-3 * x2) + (9 * x3) = -3 ;
 ASSERT  (17 * x0) + (-22 * x1) + (-15 * x2) + (-21 * x3) >= 9 ;
index 83fdc89c826d9c46e64bce0f5a2bfa4f0b180604..9c9433ede05ca321538ffba339109a2cf982cae6 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 x0, x1, x2, x3 : INT;
 ASSERT  (-25 * x0) + (-23 * x1) + (11 * x2) + (10 * x3) = 7 ;
 ASSERT (32 * x0) + (-15 * x1) + (-1 * x2) + (29 * x3) > -25 ;
index fa38fa3da0183f57985cbaa4a9243ef5b0d56566..544d53fb95842677431e9744eadae95ef324276e 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 x0, x1, x2, x3 : INT;
 ASSERT  (-21 * x0) + (21 * x1) + (23 * x2) + (-20 * x3) = -8 ;
 ASSERT  (-31 * x0) + (-15 * x1) + (-23 * x2) + (29 * x3) = 17;
index 9b00669668678911e098b35b43678fcc4f332ce9..5b4181a11868bdf15b6306ee57dc0df630e2b3c2 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 x0, x1, x2, x3 : INT;
 ASSERT  (-31 * x0) + (-29 * x1) + (6 * x2) + (8 * x3) = -10 ;
 ASSERT  (0 * x0) + (8 * x1) + (-20 * x2) + (12 * x3) = 16 ;
index 9729fb565b9a977e16b0a90dfa578b578ccfcf1c..fdfa45848845aefc7d5137bebfcce247060c0f11 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 x0, x1, x2, x3 : INT;
 ASSERT  (-21 * x0) + (-4 * x1) + (-28 * x2) + (-7 * x3) = -23 ;
 ASSERT  (-7 * x0) + (-21 * x1) + (29 * x2) + (11 * x3) = 29 ;
index e1c3ee1da953c59edbae38adfa933fa34acb7838..394b3dd4e1dc3ead33e03d7a2f0b1246f2d340fc 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 x0, x1, x2, x3 : INT;
 ASSERT  (-25 * x0) + (23 * x1) + (29 * x2) + (21 * x3) = -2 ;
 ASSERT  (1 * x0) + (10 * x1) + (-32 * x2) + (-17 * x3) = -2 ;
index 4e7b939b40555000c0176231f5e7f0b85fe05776..252601514f9463cc49afaf7636edae9a04f0acd9 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 x0, x1, x2, x3 : INT;
 ASSERT  (-8 * x0) + (10 * x1) + (-25 * x2) + (-10 * x3) = -18 ;
 ASSERT  (27 * x0) + (5 * x1) + (8 * x2) + (13 * x3) = -8;
index 4d964f1c6002a281817d4606dc97529a58047e2a..7e2a04d45f71376ea252b8b7f21d942799a65cd3 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 x0, x1, x2, x3 : INT;
 ASSERT  (-15 * x0) + (3 * x1) + (31 * x2) + (2 * x3) = -18 ;
 ASSERT  (-25 * x0) + (-10 * x1) + (15 * x2) + (29 * x3) = -18 ;
index 841d9c8e154666baf7b2ea54ce347e3758956d97..87773679e01b3306dbf8b128fb1100b2225e58f9 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 x0, x1, x2, x3 : INT;
 ASSERT (31 * x0) + (-19 * x1) + (0 * x2) + (32 * x3) = -14 ;
 ASSERT  (12 * x0) + (-25 * x1) + (-32 * x2) + (-18 * x3) = 18 ;
index 227cb49b137b7e2076b80422fb806af0835d9ef4..74dd16dca523ea23dd39ca35b0cdc0f6163c3d5f 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 x0, x1, x2, x3 : INT;
 ASSERT  (3 * x0) + (8 * x1) + (26 * x2) + (-17 * x3) = 31 ;
 ASSERT  (-14 * x0) + (25 * x1) + (4 * x2) + (-8 * x3) = 15 ;
index 4a3cc28d0f35d5f025383b4f9d3edc3d3ae662a3..b3bd247b2f89cd690b4ae0102ea4d52640766c4c 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 x0, x1, x2, x3 : INT;
 ASSERT (16 * x0) + (20 * x1) + (-8 * x2) + (-27 * x3) = -2 ;
 ASSERT  (15 * x0) + (9 * x1) + (-1 * x2) + (4 * x3) = 1 ;
index f9a3156a24428ca31490f8654916ce6e046c3f70..0a185eb685d16ef83d208ad358f05019d1249331 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 x0, x1, x2, x3 : INT;
 ASSERT (11 * x0) + (22 * x1) + (19 * x2) + (-8 * x3) = 12 ;
 ASSERT  (23 * x0) + (-6 * x1) + (-5 * x2) + (26 * x3) = 0 ;
index d881046881ec70c20ad8adb722bfdc60ca36d5b6..13c4aae2e80e3265f3e79195e8f789a3af12af73 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 x0, x1, x2, x3 : INT;
 ASSERT  (20 * x0) + (-10 * x1) + (-10 * x2) + (26 * x3) = -9 ;
 ASSERT  (10 * x0) + (0 * x1) + (16 * x2) + (7 * x3) = 7 ;
index 21ca822e10265540f895d725361161e2c7668176..f50b3cd9788fa078b6a24d6e8b3ae36a6e54eb56 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 x0, x1, x2, x3 : INT;
 ASSERT  (-8 * x0) + (-11 * x1) + (27 * x2) + (4 * x3) = 6 ;
 ASSERT  (32 * x0) + (27 * x1) + (31 * x2) + (-13 * x3) = 21 ;
index b1b9e1b51a5ad55d35d88d72e81784caa9739ab7..354eb981cea1ed4841252140505bedabc299f61f 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 x0, x1, x2, x3 : INT;
 ASSERT (3 * x0) + (-21 * x1) + (-3 * x2) + (6 * x3) = -18 ;
 ASSERT  (-15 * x0) + (19 * x1) + (-21 * x2) + (-29 * x3) = -8 ;
index 9532b4198d956c8fcc6a958909eef85460622cd5..f53a254bd64e1d6c034c62f7728b91ba4cb25f31 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 x0, x1, x2, x3 : INT;
 ASSERT  (28 * x0) + (-8 * x1) + (32 * x2) + (-3 * x3) = -18 ;
 ASSERT (-4 * x0) + (5 * x1) + (-2 * x2) + (-17 * x3) > 19 ;
index 5d7b52e69f2dd6c08360b4c1b54fab150077874a..61159e9aaefb553c0c1b83ac36b4eaada7a2c955 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 x0, x1, x2, x3 : INT;
 ASSERT (-25 * x0) + (-32 * x1) + (-29 * x2) + (-9 * x3) = -2 ;
 ASSERT  (22 * x0) + (10 * x1) + (-18 * x2) + (2 * x3) = -17 ;
index 107a21a12a7b0e666e49366f871ea33757c84b70..683d36801304d950788b81e8dc95825465a16699 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 x0, x1, x2, x3 : INT;
 ASSERT  (-20 * x0) + (-8 * x1) + (5 * x2) + (-7 * x3) = -7 ;
 ASSERT  (-30 * x0) + (24 * x1) + (-4 * x2) + (-30 * x3) = 22 ;
index 3fab229b085fc8985e421317fdb967912f695bc6..356a280133ed46e8672fbec9ae31e4614b00fadf 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 x0, x1, x2, x3 : INT;
 ASSERT  (-12 * x0) + (20 * x1) + (2 * x2) + (-24 * x3) = 16 ;
 ASSERT  (-32 * x0) + (27 * x1) + (1 * x2) + (-3 * x3) = -3 ;
index cd828da5f8b8e42237fdcad13c4cbce80605e0e2..791b3b8af690fa047c620e998ec66c7e0ba67200 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 x0, x1, x2, x3 : INT;
 ASSERT (0 * x0) + (-16 * x1) + (14 * x2) + (20 * x3) = 1 ;
 ASSERT  (-27 * x0) + (-5 * x1) + (-22 * x2) + (-24 * x3) = -7 ;
index ce5336476961e404f1947a1383fd04b96f16453c..d44b18b458f369ec9934c90c02587a25f915664c 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 x0, x1, x2, x3 : INT;
 ASSERT  (22 * x0) + (3 * x1) + (-17 * x2) + (-21 * x3) = -9 ;
 ASSERT  (-12 * x0) + (-9 * x1) + (-9 * x2) + (-16 * x3) = -12 ;
index 10222deaece5769509cc0b783dcd615f210a2796..fb13a661679a5ec626f176a71f93be4c7f2386fd 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 x0, x1, x2, x3 : INT;
 ASSERT (1 * x0) + (-1 * x1) + (-16 * x2) + (6 * x3) = -11 ;
 ASSERT  (-17 * x0) + (17 * x1) + (-15 * x2) + (24 * x3) = -21 ;
index 98e74be8f66a4cc588eb77bb6233cd60e52e1b89..784190cadab31e37fc4f1b1f82fd685dc57e53fe 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 x0, x1, x2, x3 : INT;
 ASSERT (8 * x0) + (-14 * x1) + (0 * x2) + (7 * x3) = 26 ;
 ASSERT  (-7 * x0) + (-14 * x1) + (15 * x2) + (31 * x3) = 8 ;
index 28cc48186aaeb0f42bae27870bc7e4def402d027..914cbe8e3a06c6240d46b0cc4286ce892a37e145 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 x0, x1, x2, x3 : INT;
 ASSERT  (14 * x0) + (-6 * x1) + (-23 * x2) + (-8 * x3) = -18 ;
 ASSERT  (-11 * x0) + (12 * x1) + (8 * x2) + (-1 * x3) = -32 ;
index 3b5131e8b873d056f8348791ef65f1238381ef93..d3851e2843a5249464c34c19d300a5f5962a21a6 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 x0, x1, x2, x3 : INT;
 ASSERT  (-8 * x0) + (29 * x1) + (15 * x2) + (32 * x3) = 32 ;
 ASSERT  (18 * x0) + (-8 * x1) + (18 * x2) + (22 * x3) = 20 ;
index 2c8de7cdf78b20116c3d792c604df999aa17ef33..25a3a7d35915a03777b5e26fd9147ee09a64f3da 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 x0, x1, x2, x3 : INT;
 ASSERT  (-20 * x0) + (0 * x1) + (4 * x2) + (29 * x3) = -15 ;
 ASSERT  (3 * x0) + (19 * x1) + (21 * x2) + (-32 * x3) = 11 ;
index d14da386ed7ff9b24a0e4f0b432e48ed9d94df27..7e4482093d0780e9465ceef694496ef226239b8a 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 x0, x1, x2, x3 : INT;
 ASSERT (26 * x0) + (-28 * x1) + (27 * x2) + (8 * x3) = 31 ;
 ASSERT  (-32 * x0) + (11 * x1) + (-5 * x2) + (14 * x3) = 2;
index 3197c6524986a2dbdc709c9ca37bf900095f0c27..eacccc375ceda2a02e8d8d2239f97a7f16d963e8 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 x0, x1, x2, x3 : INT;
 ASSERT  (17 * x0) + (-14 * x1) + (13 * x2) + (13 * x3) = -18 ;
 ASSERT  (13 * x0) + (16 * x1) + (-12 * x2) + (19 * x3) = -20 ;
index 8be0f9a737e2714ff70b70fae723dace1c434fe9..bf6b90c677cc4be0ad8ab2cdf419f819cda86e16 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 x0, x1, x2, x3 : INT;
 ASSERT  (5 * x0) + (-17 * x1) + (15 * x2) + (-15 * x3) = -14 ;
 ASSERT  (-28 * x0) + (-17 * x1) + (-29 * x2) + (-19 * x3) = 14;
index 546148376d7c02a8012a2b2249f8e03c7772fc97..47cc66ae26ebc6d559db584f5321a8ffbf018cd0 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: invalid
+% EXPECT: not_entailed
 x0, x1, x2, x3 : INT;
 ASSERT  (-8 * x0) + (31 * x1) + (-23 * x2) + (-8 * x3) = 8;
 ASSERT (24 * x0) + (-2 * x1) + (2 * x2) + (-2 * x3) >= -17 ;
index 62bd45de78c64d62ac6e19b15c3345e3feadd79a..a6245f03675ee81ed54a36304dc0907ac5e94fee 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: invalid
+% EXPECT: not_entailed
 x0, x1, x2, x3 : INT;
 ASSERT  (-29 * x0) + (-3 * x1) + (27 * x2) + (13 * x3) = -10 ;
 ASSERT (7 * x0) + (-17 * x1) + (11 * x2) + (-30 * x3) <= 6 ;
index 6b10843537481888bf8887e34546bbc86b8df893..3a7c635cc572e6a3153958774ea1c5c833c4d972 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: invalid
+% EXPECT: not_entailed
 x0, x1, x2, x3 : INT;
 ASSERT (19 * x0) + (-31 * x1) + (31 * x2) + (28 * x3) = -13 ;
 ASSERT  (1 * x0) + (13 * x1) + (12 * x2) + (-15 * x3) > -8 ;
index 5f0e17afe65bbab45f2099c3acd18fe5b806b582..d4a0a966c498a414792d8fb266a47380045c6fc3 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: invalid
+% EXPECT: not_entailed
 x0, x1, x2, x3 : INT;
 ASSERT (-2 * x0) + (-13 * x1) + (-14 * x2) + (-26 * x3) <= 4 ;
 ASSERT  (-17 * x0) + (-17 * x1) + (21 * x2) + (-4 * x3) < 18 ;
index 74dd714e88860b1b61e799b809a74bb263390c6b..b1a343e736ee7964dc4e8fea4d66418c7adfba39 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: invalid
+% EXPECT: not_entailed
 %% down from 3
 x0, x1, x2, x3 : INT;
 ASSERT (22 * x0) + (-25 * x1) + (-20 * x2) + (8 * x3) = -6 ;
index 64c212b3c3f05086a118f93cf7bd1af8421b655c..6ee96589b21fbbdc60e0bca4b4e3da96e8474098 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 x0, x1, x2, x3 : INT;
 ASSERT  (-16 * x0) + (28 * x1) + (2 * x2) + (7 * x3) = -25 ;
 ASSERT  (-20 * x0) + (-24 * x1) + (4 * x2) + (32 * x3) = -22 ;
index 312c08917e6b99b629c92c27b211a696a018c818..b969df1a3032284d4e566357eafc5b53530ae55d 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 x0, x1, x2, x3 : INT;
 ASSERT  (-4 * x0) + (25 * x1) + (-2 * x2) + (-16 * x3) = 27 ;
 ASSERT  (-11 * x0) + (26 * x1) + (18 * x2) + (-18 * x3) = -15 ;
index 5212640be6453d243b2a380a3dd4d4541acf4a08..de0d23844fd71344f1166df6ccb47317e5a19566 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 x0, x1, x2, x3 : INT;
 ASSERT  (-19 * x0) + (-9 * x1) + (-27 * x2) + (9 * x3) = -1 ;
 ASSERT (-26 * x0) + (11 * x1) + (23 * x2) + (-5 * x3) >= 20 ;
index 7ff36d29e56b6c28267fea93f5b591ff3ebdacda..e50daa9dede6457f387fb6bd2881f8bdc6ab575f 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 x0, x1, x2, x3 : INT;
 ASSERT (14 * x0) + (-14 * x1) + (-29 * x2) + (31 * x3) = -15 ;
 ASSERT  (-14 * x0) + (2 * x1) + (26 * x2) + (29 * x3) = 25 ;
index 52b9c13f08003ffc2f5b7514fb95dab0e228228d..74d4ba4dbcfa30c7730fd9665c69f3459021b140 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: invalid
+% EXPECT: not_entailed
 x0, x1, x2, x3 : INT;
 ASSERT  (-13 * x0) + (-14 * x1) + (-10 * x2) + (32 * x3) = 11 ;
 ASSERT (28 * x0) + (21 * x1) + (-20 * x2) + (-32 * x3) > -31 ;
index 29a19db39ff9ae1a43eddab532346ad65f182c90..c03b544a398c5903b1fc878373ac2e0463ca2a20 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 x0, x1, x2, x3 : INT;
 ASSERT (26 * x0) + (32 * x1) + (-26 * x2) + (-26 * x3) = -26 ;
 ASSERT  (30 * x0) + (17 * x1) + (28 * x2) + (-9 * x3) = -21 ;
index 51c8a6bc4aac4a419aa037c3b8b7e4031edc393d..d080cde0c6912e2832a45906348e1a2dc7be2416 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 x0, x1, x2, x3 : INT;
 ASSERT  (-20 * x0) + (19 * x1) + (16 * x2) + (-27 * x3) = -22 ;
 ASSERT  (12 * x0) + (-18 * x1) + (-25 * x2) + (-1 * x3) = -22 ;
index 7d2123d41efd5fbd6e16428c8fbf011e0c05d8d8..e910def47a221f496dc00cbd34eeefdf4d16c190 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 x0, x1, x2, x3 : INT;
 ASSERT  (22 * x0) + (-2 * x1) + (-1 * x2) + (-24 * x3) = 8 ;
 ASSERT  (-6 * x0) + (9 * x1) + (-20 * x2) + (-23 * x3) = 14 ;
index a5f1aefce670ee5bb3c5bcdd7f360e4bdd4984d5..2204bba4e35389ba052b65068812275d91ee1a86 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 x0, x1, x2, x3 : INT;
 ASSERT (-7 * x0) + (-11 * x1) + (26 * x2) + (10 * x3) = 31 ;
 ASSERT  (-17 * x0) + (-20 * x1) + (24 * x2) + (-9 * x3) = -32 ;
index bc47d6f4950cc33cd90e09764b0a83d5509026bb..e803dbe9b8f6ddf1954e6c6280955e2e8b9395a7 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 x0, x1, x2, x3 : INT;
 ASSERT (2 * x0) + (28 * x1) + (3 * x2) + (8 * x3) > -32 ;
 ASSERT  (-15 * x0) + (21 * x1) + (-11 * x2) + (28 * x3) <= -19 ;
index 2f6cf31550ab02d1197e871753abcf605dbe3e7a..354ae180d53c187010e0c88c89532e527e58f1b8 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: invalid
+% EXPECT: not_entailed
 x0, x1, x2, x3 : INT;
 ASSERT (23 * x0) + (24 * x1) + (19 * x2) + (-3 * x3) = -16 ;
 ASSERT  (2 * x0) + (-13 * x1) + (5 * x2) + (-1 * x3) = 28;
index b05061192ce465ae3edc7ca46a59f46659b85e14..67eb614eb483d5059e979378a67f4f99519021b1 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: invalid
+% EXPECT: not_entailed
 x0, x1, x2, x3 : INT;
 ASSERT (19 * x0) + (-11 * x1) + (-19 * x2) + (5 * x3) = 26 ;
 ASSERT  (1 * x0) + (-28 * x1) + (-2 * x2) + (15 * x3) < 9 ;
index 0d74dcb39add23b99208f5ae2b51e97c3c0e63eb..57a45de03125fddda0f7921c523098f9ba97b108 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: invalid
+% EXPECT: not_entailed
 x0, x1, x2, x3 : INT;
 ASSERT (-31 * x0) + (-20 * x1) + (-30 * x2) + (-28 * x3) = -24 ;
 ASSERT  (11 * x0) + (-32 * x1) + (-2 * x2) + (8 * x3) <= 16 ;
index 7e07bee1471598322700ef728516a16d67088658..66be1f8f740945feb1eca5254efb576418e4d091 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: invalid
+% EXPECT: not_entailed
 x0, x1, x2, x3 : INT;
 ASSERT (27 * x0) + (-21 * x1) + (-6 * x2) + (-6 * x3) > -15 ;
 ASSERT  (-5 * x0) + (-10 * x1) + (2 * x2) + (-16 * x3) <= -7 ;
index eb0e7ab5276551e7f6644fec80c3279c54267442..2c861c0f0e68d5b4f4834dfc3082289f5da5d6b4 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 p : BOOLEAN;
 q : BOOLEAN;
 r : BOOLEAN;
index eebcbc2f8aed1ee3ec2649f4f6db604125e633b3..5306a15139e0e252bc28ef4994cf2c029b58c43e 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: invalid
+% EXPECT: not_entailed
 OPTION "finite-model-find";
 OPTION "fmf-bound-int";
 OPTION "produce-models";
index dfa9b72d50f9428ec65cf4f71648833b67f849a1..5ec31d8016c4bc22e2c4c7449a207ac3a22b3ac6 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 x_1 : BOOLEAN;
 x_2 : BOOLEAN;
 x_3 : BOOLEAN;
index f7407a2a54f547c90e5042b88495089128c16c9f..6f2a8764b9e0cfbe5f2676dde95d4673cc4477db 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 OPTION "finite-model-find";
 OPTION "fmf-bound-int";
 
index 37687bee1dd825d2388d8131bf390c714ac8ebb0..39ced04283797b8b3c1a46443ef20ff1248ff3ea 100644 (file)
@@ -1,34 +1,34 @@
 % COMMAND-LINE: --incremental
-% EXPECT: invalid
-% EXPECT: invalid
-% EXPECT: invalid
-% EXPECT: invalid
-% EXPECT: invalid
-% EXPECT: invalid
-% EXPECT: invalid
-% EXPECT: valid
-% EXPECT: invalid
-% EXPECT: invalid
-% EXPECT: valid
-% EXPECT: invalid
-% EXPECT: invalid
-% EXPECT: invalid
-% EXPECT: invalid
-% EXPECT: invalid
-% EXPECT: invalid
-% EXPECT: invalid
-% EXPECT: invalid
-% EXPECT: invalid
-% EXPECT: invalid
-% EXPECT: invalid
-% EXPECT: invalid
-% EXPECT: invalid
-% EXPECT: invalid
-% EXPECT: invalid
-% EXPECT: invalid
-% EXPECT: valid
-% EXPECT: valid
-% EXPECT: valid
+% EXPECT: not_entailed
+% EXPECT: not_entailed
+% EXPECT: not_entailed
+% EXPECT: not_entailed
+% EXPECT: not_entailed
+% EXPECT: not_entailed
+% EXPECT: not_entailed
+% EXPECT: entailed
+% EXPECT: not_entailed
+% EXPECT: not_entailed
+% EXPECT: entailed
+% EXPECT: not_entailed
+% EXPECT: not_entailed
+% EXPECT: not_entailed
+% EXPECT: not_entailed
+% EXPECT: not_entailed
+% EXPECT: not_entailed
+% EXPECT: not_entailed
+% EXPECT: not_entailed
+% EXPECT: not_entailed
+% EXPECT: not_entailed
+% EXPECT: not_entailed
+% EXPECT: not_entailed
+% EXPECT: not_entailed
+% EXPECT: not_entailed
+% EXPECT: not_entailed
+% EXPECT: not_entailed
+% EXPECT: entailed
+% EXPECT: entailed
+% EXPECT: entailed
 A: TYPE;
 P_1: BOOLEAN;
 P_2: BOOLEAN;
index 08cfd9c9c51604db1be2e8932e93421c8c68cebb..cf20f2b6171d0ca742c8dfd144cf188f12c5979c 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: invalid
+% EXPECT: not_entailed
 x0, x1, x2, x3 : INT;
 ASSERT  (-28 * x0) + (12 * x1) + (-19 * x2) + (10 * x3) = 16 ;
 ASSERT  (19 * x0) + (-25 * x1) + (-8 * x2) + (-32 * x3) = 12;
index 1f762477a537b0fb040463165621b6719e74e905..e73588bad609ce6cced56e91b79e872f1bb74840 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 x_1 : BOOLEAN;
 x_2 : BOOLEAN;
 x_3 : BOOLEAN;
index 705c95ea62a6f072b1b385eb229a19ad9f3a559b..a46c4da97491c05427d57504a8c4f20b3758be00 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 x_1 : BOOLEAN;
 x_2 : BOOLEAN;
 x_3 : BOOLEAN;
index b4a1e4b322a5a64551dbda0bbe901c1d034c8b5e..1d576ab7416f3934637f2f524d2c7e7f2bfb52ea 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: invalid
+% EXPECT: not_entailed
 
 DATATYPE
   nat = succ(pred : nat) | zero,
index e60839f7bfc6c375db9b846e476f61ff66b577e6..b86b3b039ec03b78a026e67a6745f579146376d4 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 x_1 : BOOLEAN;
 x_2 : BOOLEAN;
 x_3 : BOOLEAN;
index ebc8279d3cffb948aef13336388c678a52ff90ea..fb4c41b35443cb885106c34213e36b1803a7b3d4 100644 (file)
@@ -1,4 +1,4 @@
-% EXPECT: valid
+% EXPECT: entailed
 x_1 : BOOLEAN;
 x_2 : BOOLEAN;
 x_3 : BOOLEAN;
index 141db4eeab6b5259a4371e0a503c80a5d91d9e36..2ce50949ba037f873ff4315f898aac1292987022 100644 (file)
@@ -29,8 +29,8 @@ int main() {
   ExprManager em;
   Options opts;
   SmtEngine smt(&em);
-  Result r = smt.query(em.mkConst(true));
+  Result r = smt.checkEntailed(em.mkConst(true));
 
-  return (Result::VALID == r) ? 0 : 1;
+  return (Result::ENTAILED == r) ? 0 : 1;
 }
 
index fb9714d4b152a005816e05fe133e223d2a1fc28b..2924359e88bdbde94f757381196875d24b37bb66 100644 (file)
@@ -35,9 +35,10 @@ int main() {
   Expr y = em.mkVar("y", em.integerType());
   smt.assertFormula(em.mkExpr(kind::GT, em.mkExpr(kind::PLUS, x, y), em.mkConst(Rational(5))));
   Expr q = em.mkExpr(kind::GT, x, em.mkConst(Rational(0)));
-  Result r = smt.query(q);
+  Result r = smt.checkEntailed(q);
 
-  if(r != Result::INVALID) {
+  if (r != Result::NOT_ENTAILED)
+  {
     exit(1);
   }
 
@@ -47,7 +48,7 @@ int main() {
   }
 
   smt.assertFormula(em.mkExpr(kind::LT, y, em.mkConst(Rational(5))));
-  r = smt.query(q);
+  r = smt.checkEntailed(q);
   Statistics stats2 = smt.getStatistics();
   bool different = false;
   for(Statistics::iterator i = stats2.begin(); i != stats2.end(); ++i) {
@@ -68,5 +69,5 @@ int main() {
   }
 #endif /* CVC4_STATISTICS_ON */
 
-  return r == Result::VALID ? 0 : 1;
+  return r == Result::ENTAILED ? 0 : 1;
 }
index a7266e0b0b0c64a034b4274aa458df48b92fa80f..8698fde0e007bb247b66b9037bcc378bfef64817 100644 (file)
@@ -28,9 +28,9 @@ int main() {
   Options opts;
   SmtEngine smt(&em);
   SmtEngine smt2(&em);
-  Result r = smt.query(em.mkConst(true));
-  Result r2 = smt2.query(em.mkConst(true));
+  Result r = smt.checkEntailed(em.mkConst(true));
+  Result r2 = smt2.checkEntailed(em.mkConst(true));
 
-  return r == Result::VALID && r2 == Result::VALID ? 0 : 1;
+  return r == Result::ENTAILED && r2 == Result::ENTAILED ? 0 : 1;
 }
 
index ab5d65e7260514d8cf3cc6eba715dd9007123b61..cbfc9cf23ecceca991b474cca102875a661f7a1d 100644 (file)
@@ -29,9 +29,8 @@ class ResultBlack : public CxxTest::TestSuite
   void testIsSat();
   void testIsUnsat();
   void testIsSatUnknown();
-  void testIsValid();
-  void testIsInvalid();
-  void testIsValidUnknown();
+  void testIsEntailed();
+  void testIsEntailmentUnknown();
 
  private:
   std::unique_ptr<Solver> d_solver;
@@ -44,9 +43,9 @@ void ResultBlack::testIsNull()
   TS_ASSERT(!res_null.isSat());
   TS_ASSERT(!res_null.isUnsat());
   TS_ASSERT(!res_null.isSatUnknown());
-  TS_ASSERT(!res_null.isValid());
-  TS_ASSERT(!res_null.isInvalid());
-  TS_ASSERT(!res_null.isValidUnknown());
+  TS_ASSERT(!res_null.isEntailed());
+  TS_ASSERT(!res_null.isNotEntailed());
+  TS_ASSERT(!res_null.isEntailmentUnknown());
   Sort u_sort = d_solver->mkUninterpretedSort("u");
   Term x = d_solver->mkVar(u_sort, "x");
   d_solver->assertFormula(x.eqTerm(x));
@@ -100,27 +99,24 @@ void ResultBlack::testIsSatUnknown()
   TS_ASSERT(res.isSatUnknown());
 }
 
-void ResultBlack::testIsValid()
+void ResultBlack::testIsEntailed()
 {
+  d_solver->setOption("incremental", "true");
   Sort u_sort = d_solver->mkUninterpretedSort("u");
-  Term x = d_solver->mkVar(u_sort, "x");
-  d_solver->assertFormula(x.eqTerm(x).notTerm());
-  Result res = d_solver->checkValid();
-  TS_ASSERT(res.isValid());
-  TS_ASSERT(!res.isValidUnknown());
-}
-
-void ResultBlack::testIsInvalid()
-{
-  Sort u_sort = d_solver->mkUninterpretedSort("u");
-  Term x = d_solver->mkVar(u_sort, "x");
-  d_solver->assertFormula(x.eqTerm(x));
-  Result res = d_solver->checkValid();
-  TS_ASSERT(res.isInvalid());
-  TS_ASSERT(!res.isValidUnknown());
+  Term x = d_solver->mkConst(u_sort, "x");
+  Term y = d_solver->mkConst(u_sort, "y");
+  Term a = x.eqTerm(y).notTerm();
+  Term b = x.eqTerm(y);
+  d_solver->assertFormula(a);
+  Result entailed = d_solver->checkEntailed(a);
+  TS_ASSERT(entailed.isEntailed());
+  TS_ASSERT(!entailed.isEntailmentUnknown());
+  Result not_entailed = d_solver->checkEntailed(b);
+  TS_ASSERT(not_entailed.isNotEntailed());
+  TS_ASSERT(!not_entailed.isEntailmentUnknown());
 }
 
-void ResultBlack::testIsValidUnknown()
+void ResultBlack::testIsEntailmentUnknown()
 {
   d_solver->setLogic("QF_NIA");
   d_solver->setOption("incremental", "false");
@@ -128,9 +124,9 @@ void ResultBlack::testIsValidUnknown()
   Sort int_sort = d_solver->getIntegerSort();
   Term x = d_solver->mkVar(int_sort, "x");
   d_solver->assertFormula(x.eqTerm(x).notTerm());
-  Result res = d_solver->checkValid();
-  TS_ASSERT(!res.isValid());
-  TS_ASSERT(res.isValidUnknown());
+  Result res = d_solver->checkEntailed(x.eqTerm(x));
+  TS_ASSERT(!res.isEntailed());
+  TS_ASSERT(res.isEntailmentUnknown());
   TS_ASSERT_EQUALS(res.getUnknownExplanation(), "UNKNOWN_REASON");
 }
 
index 0eefde700b4dcc2ba5e9aad0f91637cf11b0e3af..9fd1b77892cb8153fa06f493c61c0020baa03271 100644 (file)
@@ -95,10 +95,9 @@ class SolverBlack : public CxxTest::TestSuite
   void testPop3();
 
   void testSimplify();
-  void testCheckValid1();
-  void testCheckValid2();
-  void testCheckValidAssuming1();
-  void testCheckValidAssuming2();
+  void testCheckEntailed();
+  void testCheckEntailed1();
+  void testCheckEntailed2();
 
   void testSetInfo();
   void testSetLogic();
@@ -1104,51 +1103,28 @@ void SolverBlack::testSimplify()
   TS_ASSERT_THROWS_NOTHING(d_solver->simplify(f2));
 }
 
-void SolverBlack::testCheckValid1()
+void SolverBlack::testCheckEntailed()
 {
   d_solver->setOption("incremental", "false");
-  TS_ASSERT_THROWS_NOTHING(d_solver->checkValid());
-  TS_ASSERT_THROWS(d_solver->checkValid(), CVC4ApiException&);
+  TS_ASSERT_THROWS_NOTHING(d_solver->checkEntailed(d_solver->mkTrue()));
+  TS_ASSERT_THROWS(d_solver->checkEntailed(d_solver->mkTrue()),
+                   CVC4ApiException&);
 }
 
-void SolverBlack::testCheckValid2()
+void SolverBlack::testCheckEntailed1()
 {
+  Sort boolSort = d_solver->getBooleanSort();
+  Term x = d_solver->mkConst(boolSort, "x");
+  Term y = d_solver->mkConst(boolSort, "y");
+  Term z = d_solver->mkTerm(AND, x, y);
   d_solver->setOption("incremental", "true");
-
-  Sort realSort = d_solver->getRealSort();
-  Sort intSort = d_solver->getIntegerSort();
-
-  // Constants
-  Term x = d_solver->mkConst(intSort, "x");
-  Term y = d_solver->mkConst(realSort, "y");
-  // Values
-  Term three = d_solver->mkReal(3);
-  Term neg2 = d_solver->mkReal(-2);
-  Term two_thirds = d_solver->mkReal(2, 3);
-  // Terms
-  Term three_y = d_solver->mkTerm(MULT, three, y);
-  Term diff = d_solver->mkTerm(MINUS, y, x);
-  // Formulas
-  Term x_geq_3y = d_solver->mkTerm(GEQ, x, three_y);
-  Term x_leq_y = d_solver->mkTerm(LEQ, x, y);
-  Term neg2_lt_x = d_solver->mkTerm(LT, neg2, x);
-  // Assertions
-  Term assertions = d_solver->mkTerm(AND, x_geq_3y, x_leq_y, neg2_lt_x);
-
-  TS_ASSERT_THROWS_NOTHING(d_solver->checkValid());
-  d_solver->assertFormula(assertions);
-  TS_ASSERT_THROWS_NOTHING(d_solver->checkValid());
-}
-
-void SolverBlack::testCheckValidAssuming1()
-{
-  d_solver->setOption("incremental", "false");
-  TS_ASSERT_THROWS_NOTHING(d_solver->checkValidAssuming(d_solver->mkTrue()));
-  TS_ASSERT_THROWS(d_solver->checkValidAssuming(d_solver->mkTrue()),
-                   CVC4ApiException&);
+  TS_ASSERT_THROWS_NOTHING(d_solver->checkEntailed(d_solver->mkTrue()));
+  TS_ASSERT_THROWS(d_solver->checkEntailed(Term()), CVC4ApiException&);
+  TS_ASSERT_THROWS_NOTHING(d_solver->checkEntailed(d_solver->mkTrue()));
+  TS_ASSERT_THROWS_NOTHING(d_solver->checkEntailed(z));
 }
 
-void SolverBlack::testCheckValidAssuming2()
+void SolverBlack::testCheckEntailed2()
 {
   d_solver->setOption("incremental", "true");
 
@@ -1185,15 +1161,15 @@ void SolverBlack::testCheckValidAssuming2()
                            p_f_y                             // p(f(y))
                        });
 
-  TS_ASSERT_THROWS_NOTHING(d_solver->checkValidAssuming(d_solver->mkTrue()));
+  TS_ASSERT_THROWS_NOTHING(d_solver->checkEntailed(d_solver->mkTrue()));
   d_solver->assertFormula(assertions);
   TS_ASSERT_THROWS_NOTHING(
-      d_solver->checkValidAssuming(d_solver->mkTerm(DISTINCT, x, y)));
-  TS_ASSERT_THROWS_NOTHING(d_solver->checkValidAssuming(
+      d_solver->checkEntailed(d_solver->mkTerm(DISTINCT, x, y)));
+  TS_ASSERT_THROWS_NOTHING(d_solver->checkEntailed(
       {d_solver->mkFalse(), d_solver->mkTerm(DISTINCT, x, y)}));
-  TS_ASSERT_THROWS(d_solver->checkValidAssuming(n), CVC4ApiException&);
+  TS_ASSERT_THROWS(d_solver->checkEntailed(n), CVC4ApiException&);
   TS_ASSERT_THROWS(
-      d_solver->checkValidAssuming({n, d_solver->mkTerm(DISTINCT, x, y)}),
+      d_solver->checkEntailed({n, d_solver->mkTerm(DISTINCT, x, y)}),
       CVC4ApiException&);
 }