packages feed

sbv-14.0: SBVTestSuite/GoldFiles/recursive3_badMeasure.gold

[MEASURE] Verifying termination measures for: badSum @(SBV Integer -> SBV Integer)
[MEASURE] Checking: badSum @(SBV Integer -> SBV Integer)
[MEASURE] badSum @(SBV Integer -> SBV Integer): verifying with 0 helper(s)
[MEASURE] badSum @(SBV Integer -> SBV Integer): 0 helper axiom(s) collected, checking measure
[MEASURE] replayDAG {badSum @(SBV Integer -> SBV Integer)}: replaying 5 node(s)
** 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-logic ALL) ; has unbounded values, using catch-all.
[GOOD] ; --- tuples ---
[GOOD] ; --- sums ---
[GOOD] ; --- literal constants ---
[GOOD] (define-fun s1 () Int 0)
[GOOD] (define-fun s2 () Int 1)
[GOOD] ; --- top level inputs ---
[GOOD] (declare-fun s0 () Int) ; tracks user variable "arg"
[GOOD] (declare-fun s5 () Int) ; tracks user variable "__internal_sbv_s5"
[GOOD] ; --- constant tables ---
[GOOD] ; --- non-constant tables ---
[GOOD] ; --- uninterpreted constants ---
[GOOD] ; --- user defined functions ---
[GOOD] ; --- assignments ---
[GOOD] (define-fun s3 () Bool (<= s0 s1))
[GOOD] (define-fun s4 () Int (- s0 s2))
[GOOD] (define-fun s6 () Int (+ s0 s5))
[GOOD] (define-fun s7 () Int (ite s3 s1 s6))
[GOOD] ; --- delayedEqualities ---
[GOOD] ; --- formula ---
[GOOD] (assert false)
[SEND] (check-sat)
[RECV] unsat
*** Solver   : Z3
*** Exit code: ExitSuccess
[MEASURE] replayDAG {badSum @(SBV Integer -> SBV Integer)}: replaying 5 node(s)
** 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-logic ALL) ; has unbounded values, using catch-all.
[GOOD] ; --- tuples ---
[GOOD] ; --- sums ---
[GOOD] ; --- literal constants ---
[GOOD] (define-fun s1 () Int 0)
[GOOD] (define-fun s2 () Int 1)
[GOOD] ; --- top level inputs ---
[GOOD] (declare-fun s0 () Int) ; tracks user variable "arg"
[GOOD] (declare-fun s5 () Int) ; tracks user variable "__internal_sbv_s5"
[GOOD] ; --- constant tables ---
[GOOD] ; --- non-constant tables ---
[GOOD] ; --- uninterpreted constants ---
[GOOD] ; --- user defined functions ---
[GOOD] ; --- assignments ---
[GOOD] (define-fun s3 () Bool (<= s0 s1))
[GOOD] (define-fun s4 () Int (- s0 s2))
[GOOD] (define-fun s6 () Int (+ s0 s5))
[GOOD] (define-fun s7 () Int (ite s3 s1 s6))
[GOOD] (define-fun s8 () Bool (not s3))
[GOOD] (define-fun s9 () Bool (=> s8 false))
[GOOD] ; --- delayedEqualities ---
[GOOD] ; --- formula ---
[GOOD] (assert (not s9))
[SEND] (check-sat)
[RECV] sat
[SEND] (get-value (s2))
[RECV] ((s2 1))
[SEND] (get-value (s2))
[RECV] ((s2 1))
[SEND] (get-value (s0))
[RECV] ((s0 1))
[SEND] (get-value (s5))
[RECV] ((s5 0))
*** Solver   : Z3
*** Exit code: ExitSuccess

EXCEPTION:

*** Data.SBV: Termination measure does not strictly decrease at a recursive call site.
***
***   Function: badSum :: SBV Integer -> SBV Integer
***
***   Falsifiable. Counter-example:
***     arg    = 1 :: Integer
***     before = 1 :: Integer
***     then   = 1 :: Integer
***
*** The measure must strictly decrease at every recursive call.