This PR relates to #4987 .
Our plan is to:
delete the model keyword
avoid printing extra declarations by default
wrap UF values with as expressions.
This PR does step 1, and fixes regressions accordingly.
now restrict bvxnor to only allow two operands in order to avoid confusion
about the semantics, since the behavior of n-ary operands to bvxnor is now
undefined in SMT-LIB.
+* SMT-LIB output for `get-model` command now conforms with the standard,
+ and does *not* begin with the keyword `model`. The output
+ is the same as before, only with this word removed from the beginning.
Changes since 1.7
out << "; " << ln << std::endl;
}
//print the model
- out << "(model" << endl;
+ out << "(" << endl;
// don't need to print approximations since they are built into choice
// functions in the values of variables.
this->Printer::toStream(out, m);
; EXPECT: sat
-; EXPECT: (model
+; EXPECT: (
; EXPECT: (declare-datatypes ((Pair 2)) ((par (X Y)((mkPair (first X) (second Y))))))
; EXPECT: (define-fun x () (Pair Int Real) ((as mkPair (Pair Int Real)) 2 (/ 3 2)))
; EXPECT: )
; EXPECT: sat
-; EXPECT: (model
+; EXPECT: (
; EXPECT: (define-fun s () String "\"")
; EXPECT: )
; EXPECT: sat
-; EXPECT: (model
+; EXPECT: (
; EXPECT: (define-fun s () String """")
; EXPECT: )
; COMMAND-LINE: --dump-models
; EXPECT: sat
-; EXPECT: (model
+; EXPECT: (
; EXPECT: (define-fun x () Int 1)
; EXPECT: (define-fun y () Int 1)
; EXPECT: )
(check-sat)
; EXPECT: sat
(get-model)
-; EXPECT: (model
+; EXPECT: (
; EXPECT: (define-fun toto () Bool true)
; EXPECT: (define-fun |to to| () Bool true)
; EXPECT: )