sbv-14.4: SBVTestSuite/GoldFiles/adt_mr00.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 unbounded values, using catch-all.
[GOOD] ; --- tuples ---
[GOOD] ; --- sums ---
[GOOD] ; --- ADTs ---
[GOOD] ; User defined ADT: Expr
[GOOD] (declare-datatype Expr (par (var val) (
(Con (getCon_1 val))
(Var (getVar_1 var))
(Add (getAdd_1 (Expr var val)) (getAdd_2 (Expr var val)))
(Mul (getMul_1 (Expr var val)) (getMul_2 (Expr var val)))
)))
[GOOD] ; User defined ADT: Stmt
[GOOD] (declare-datatype Stmt (par (var val) (
(Assign (getAssign_1 var) (getAssign_2 (Expr var val)))
(Seq (getSeq_1 (Stmt var val)) (getSeq_2 (Stmt var val)))
)))
[GOOD] ; --- literal constants ---
[GOOD] ; --- top level inputs ---
[GOOD] (declare-fun s0 () (Stmt String Int)) ; tracks user variable "p"
[GOOD] ; --- constant tables ---
[GOOD] ; --- non-constant tables ---
[GOOD] ; --- uninterpreted constants ---
[GOOD] ; --- user defined functions ---
[GOOD] ; --- assignments ---
[GOOD] (define-fun s1 () Bool ((as is-Seq Bool) s0))
[GOOD] (define-fun s2 () (Stmt String Int) (getSeq_2 s0))
[GOOD] (define-fun s3 () Bool ((as is-Seq Bool) s2))
[GOOD] (define-fun s4 () (Stmt String Int) (getSeq_2 s2))
[GOOD] (define-fun s5 () Bool ((as is-Seq Bool) s4))
[GOOD] (define-fun s6 () (Stmt String Int) (getSeq_2 s4))
[GOOD] (define-fun s7 () Bool ((as is-Assign Bool) s6))
[GOOD] (define-fun s8 () (Expr String Int) (getAssign_2 s6))
[GOOD] (define-fun s9 () Bool ((as is-Add Bool) s8))
[GOOD] (define-fun s10 () (Expr String Int) (getAdd_1 s8))
[GOOD] (define-fun s11 () Bool ((as is-Var Bool) s10))
[GOOD] ; --- delayedEqualities ---
[GOOD] ; --- formula ---
[GOOD] (assert s1)
[GOOD] (assert s3)
[GOOD] (assert s5)
[GOOD] (assert s7)
[GOOD] (assert s9)
[GOOD] (assert s11)
[SEND] (check-sat)
[RECV] sat
[SEND] (get-value (s0))
[RECV] ((s0 (Seq (Assign "!3!" (Var "!6!"))
(Seq (Assign "!5!" (Var "!8!"))
(Seq (Assign "!4!" (Var "!7!"))
(Assign "!0!" (Add (Var "!1!") (Var "!2!"))))))))
Got:
!3! := !6!;
!5! := !8!;
!4! := !7!;
!0! := (!1! + !2!)
DONE
*** Solver : Z3
*** Exit code: ExitSuccess