WARNING: NOT SURE ABOUT THIS. For now, assume that all vars send to solver are finite.

This commit is contained in:
Iavor S. Diatchki 2014-12-17 17:43:06 -08:00
parent a23d294b1c
commit d9dcbea012

View File

@ -299,8 +299,10 @@ declareVar Solver { .. } a =
do done <- fmap (a `viElem`) (readIORef declared) do done <- fmap (a `viElem`) (readIORef declared)
unless done $ unless done $
do e <- SMT.declare solver (smtName a) SMT.tInt do e <- SMT.declare solver (smtName a) SMT.tInt
_ <- SMT.declare solver (smtFinName a) SMT.tBool let fin_a = smtFinName a
SMT.assert solver(SMT.geq e (SMT.int 0)) _ <- SMT.declare solver fin_a SMT.tBool
SMT.assert solver (SMT.geq e (SMT.int 0))
SMT.assert solver (SMT.const fin_a) -- HMM ???
modifyIORef' declared (viInsert a) modifyIORef' declared (viInsert a)
-- | Add an assertion to the current context. -- | Add an assertion to the current context.