[YICES-HELP] Re: Yices behavior

Bruno Dutertre bruno at csl.sri.com
Mon Aug 11 11:08:12 PDT 2008


david.cok at kodak.com wrote:
> Bruno,
> 
> Suppose I assert some statements to Yices, call (check) and get back a 
> satisfying model.
> 
> Then I assert some additional statements which are known not to change the 
> satisfiability.  For example they are of the form   X == expr where X is a 
> new variable.
> 
> And then I call (check) again.
> 
> I'd like to be sure that I will get back the same satisfying assignment, 
> augmented with the new variables.  Will I?  Or does (check) restart the 
> whole search for an assignment over again?
> 

Yices will search for a new assignment and there's no guarantee
that the new assignment will agree the previous one on the old variables.
Because of the way models are constructed, the new assertion (X == expr) may
interfere with the previous model and cause Yices to change the assignment.

Here's an example:

(define f::(-> int int))
(define x::int)
(define y::int)
(assert (/= (f x) (f y)))
(check)
sat
(= x 1)
(= y 3)
(= (f 1) 2)
(= (f 3) 4)

(define z::int)
(assert (= z (f (+ 1 x))))
(check)
sat
(= x 1)
(= y 4)
(= z 6)
(= (f 1) 3)
(= (f 4) 5)
(= (f 2) 6)


Bruno



More information about the YICES-HELP mailing list