** 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 lambda expressions, using catch-all. [GOOD] ; --- uninterpreted sorts --- [GOOD] ; --- tuples --- [GOOD] ; --- sums --- [GOOD] ; --- literal constants --- [GOOD] (define-fun s2 () (Seq (_ BitVec 8)) (seq.++ (seq.unit #x01) (seq.unit #x02) (seq.unit #x03) (seq.unit #x04) (seq.unit #x05))) [GOOD] ; --- top level inputs --- [GOOD] (declare-fun s0 () (Seq (_ BitVec 8))) [GOOD] (declare-fun s1 () (Seq (_ BitVec 8))) [GOOD] ; --- constant tables --- [GOOD] ; --- non-constant tables --- [GOOD] ; --- uninterpreted constants --- [GOOD] ; --- Firstified function definitions [GOOD] ; Firstified function: map :: (SInt8 -> SInt8) -> [SInt8] -> [SInt8] [GOOD] (define-fun-rec sbv.map_f0bd1d ((lst (Seq (_ BitVec 8)))) (Seq (_ BitVec 8)) (ite (= lst (as seq.empty (Seq (_ BitVec 8)))) (as seq.empty (Seq (_ BitVec 8))) (seq.++ (seq.unit (select (lambda ((args0 (_ BitVec 8))) (let ((args1 #x01)) (let ((args2 (bvadd args0 args1))) args2))) (seq.nth lst 0))) (sbv.map_f0bd1d (seq.extract lst 1 (- (seq.len lst) 1)))))) [GOOD] ; --- user defined functions --- [GOOD] ; --- assignments --- [GOOD] (define-fun s3 () Bool (= s0 s2)) [GOOD] (define-fun s4 () (Seq (_ BitVec 8)) (sbv.map_f0bd1d s0)) [GOOD] (define-fun s5 () Bool (= s1 s4)) [GOOD] ; --- delayedEqualities --- [GOOD] ; --- formula --- [GOOD] (assert s3) [GOOD] (assert s5) [SEND] (check-sat) [RECV] sat [SEND] (get-value (s1)) [RECV] ((s1 (seq.++ (seq.unit #x02) (seq.unit #x03) (seq.unit #x04) (seq.unit #x05) (seq.unit #x06)))) [SEND] (get-value (s0)) [RECV] ((s0 (seq.++ (seq.unit #x01) (seq.unit #x02) (seq.unit #x03) (seq.unit #x04) (seq.unit #x05)))) [SEND] (get-value (s1)) [RECV] ((s1 (seq.++ (seq.unit #x02) (seq.unit #x03) (seq.unit #x04) (seq.unit #x05) (seq.unit #x06)))) *** Solver : Z3 *** Exit code: ExitSuccess RESULT: s0 = [1,2,3,4,5] :: [Int8] s1 = [2,3,4,5,6] :: [Int8]