packages feed

sbv-14.4: SBVTestSuite/GoldFiles/adt_mr01.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: Maybe
[GOOD] (declare-datatype Maybe (par (a) (
           (Nothing)
           (Just (getJust_1 a))
       )))
[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] ; User defined ADT: Either
[GOOD] (declare-datatype Either (par (a b) (
           (Left (getLeft_1 a))
           (Right (getRight_1 b))
       )))
[GOOD] ; --- literal constants ---
[GOOD] ; --- top level inputs ---
[GOOD] (declare-fun s0 () (Stmt String (Maybe (Either Int Bool)))) ; 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-Assign Bool) s0))
[GOOD] (define-fun s2 () (Expr String (Maybe (Either Int Bool))) (getAssign_2 s0))
[GOOD] (define-fun s3 () Bool ((as is-Add Bool) s2))
[GOOD] (define-fun s4 () (Expr String (Maybe (Either Int Bool))) (getAdd_1 s2))
[GOOD] (define-fun s5 () Bool ((as is-Con Bool) s4))
[GOOD] (define-fun s6 () (Expr String (Maybe (Either Int Bool))) (getAdd_2 s2))
[GOOD] (define-fun s7 () Bool ((as is-Con Bool) s6))
[GOOD] (define-fun s8 () (Maybe (Either Int Bool)) (getCon_1 s4))
[GOOD] (define-fun s9 () Bool ((as is-Nothing Bool) s8))
[GOOD] (define-fun s10 () (Maybe (Either Int Bool)) (getCon_1 s6))
[GOOD] (define-fun s11 () Bool ((as is-Just 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 (Assign "!0!" (Add (Con Nothing) (Con (Just (Left 2)))))))

Got:
!0! := (Nothing + Just (Left 2))
DONE
*** Solver   : Z3
*** Exit code: ExitSuccess