sbv-13.0: SBVTestSuite/GoldFiles/adt_pexpr20.gold
** Calling: z3 -nw -in -smt2
[GOOD] ; Automatically generated by SBV. Do not edit.
[GOOD] (set-option :print-success true)
[GOOD] (set-option :global-declarations true)
[GOOD] (set-option :smtlib2_compliant true)
[GOOD] (set-option :diagnostic-output-channel "stdout")
[GOOD] (set-option :produce-models true)
[GOOD] (set-option :pp.max_depth 4294967295)
[GOOD] (set-option :pp.min_alias_size 4294967295)
[GOOD] (set-option :model.inline_def true )
[GOOD] (set-logic ALL) ; has rational values, using catch-all.
[GOOD] ; --- tuples ---
[GOOD] ; --- sums ---
[GOOD] (declare-datatype SBVRational ((SBV.Rational (sbv.rat.numerator Int) (sbv.rat.denominator Int))))
[GOOD] (define-fun sbv.rat.eq ((x SBVRational) (y SBVRational)) Bool
(= (* (sbv.rat.numerator x) (sbv.rat.denominator y))
(* (sbv.rat.denominator x) (sbv.rat.numerator y)))
)
[GOOD] (define-fun sbv.rat.notEq ((x SBVRational) (y SBVRational)) Bool
(not (sbv.rat.eq x y))
)
[GOOD] ; --- ADTs ---
[GOOD] ; User defined ADT: Expr
[GOOD] (declare-datatype Expr (par (nm val) (
(Val (getVal_1 val))
(Var (getVar_1 nm))
(Add (getAdd_1 (Expr nm val)) (getAdd_2 (Expr nm val)))
(Mul (getMul_1 (Expr nm val)) (getMul_2 (Expr nm val)))
(Let (getLet_1 nm) (getLet_2 (Expr nm val)) (getLet_3 (Expr nm val)))
)))
[GOOD] ; --- literal constants ---
[GOOD] ; --- top level inputs ---
[GOOD] (declare-fun s0 () (Expr (_ BitVec 8) SBVRational)) ; tracks user variable "x"
[GOOD] ; --- constant tables ---
[GOOD] ; --- non-constant tables ---
[GOOD] ; --- uninterpreted constants ---
[GOOD] ; --- user defined functions ---
[GOOD] ; --- assignments ---
[GOOD] (define-fun s1 () Bool ((as is-Mul Bool) s0))
[GOOD] ; --- delayedEqualities ---
[GOOD] ; --- formula ---
[GOOD] (assert s1)
[SEND] (check-sat)
[RECV] sat
[SEND] (get-value (s0))
[RECV] ((s0 (Mul (Var #x00) (Var #x00))))
Result: (0 * 0)
*** Solver : Z3
*** Exit code: ExitSuccess