[klee-dev] `MustBeTrue` and `evaluate` methods in solver.
Yuzhou Fang
yuzhou.fang at usc.edu
Fri Aug 23 22:12:56 BST 2024
Dear Klee community,
I was recently reading the source code of `klee` and found that there are
two methods `mustBeTrue` and `evaluate` of class `TimingSolver`, which are
both used to determine the satisfiability of constraints.
I see the return values are slightly different. Method `mustBeTrue` will
merely return true and false while `evaluate` would give an extra
`unknown`. Could you briefly explain the difference between them? I see
`evaluate` is used when state forking and `mustBeTrue` is for finding a
concrete solution. Can I say that the appropriate option to determine the
sat of constraints is to use `mustBeTrue`? Is `evaluate` only used to
determine the feasibility of then and else branches when forking? Thank you!
Best regards,
Yuzhou Fang
-------------- next part --------------
HTML attachment scrubbed and removed
More information about the klee-dev
mailing list