Safe Haskell | None |
---|---|
Language | Haskell98 |
This is a wrapper around IO that permits SMT queries
Synopsis
- type SolveM = StateT SolverState IO
- runSolverM :: Config -> SolverInfo b c -> SolveM a -> IO a
- getBinds :: SolveM BindEnv
- filterRequired :: Cand a -> Expr -> SolveM [a]
- filterValid :: SrcSpan -> Expr -> Cand a -> SolveM [a]
- filterValidGradual :: [Expr] -> Cand a -> SolveM [a]
- checkSat :: Expr -> SolveM Bool
- smtEnablembqi :: SolveM ()
- data Stats
- tickIter :: Bool -> SolveM Int
- stats :: SolveM Stats
- numIter :: Stats -> Int
Type
type SolveM = StateT SolverState IO Source #
Solver Monadic API --------------------------------------------------------
Execution
runSolverM :: Config -> SolverInfo b c -> SolveM a -> IO a Source #
Get Binds
SMT Query
filterRequired :: Cand a -> Expr -> SolveM [a] Source #
SMT Interface -------------------------------------------------------------
`filterRequired [(x1, p1),...,(xn, pn)] q` returns a minimal list [xi] s.t. / [pi] => q
filterValid :: SrcSpan -> Expr -> Cand a -> SolveM [a] Source #
`filterValid p [(x1, q1),...,(xn, qn)]` returns the list `[ xi | p => qi]`
filterValidGradual :: [Expr] -> Cand a -> SolveM [a] Source #
`filterValidGradual ps [(x1, q1),...,(xn, qn)]` returns the list `[ xi | p => qi]` | for some p in the list ps
smtEnablembqi :: SolveM () Source #
Debug
Instances
Show Stats Source # | |
Generic Stats Source # | |
NFData Stats Source # | |
Defined in Language.Fixpoint.Solver.Monad | |
PTable Stats Source # | |
type Rep Stats Source # | |
Defined in Language.Fixpoint.Solver.Monad type Rep Stats = D1 (MetaData "Stats" "Language.Fixpoint.Solver.Monad" "liquid-fixpoint-0.8.0.2-JBYKSUH26o01SpAxHsWEYd" False) (C1 (MetaCons "Stats" PrefixI True) ((S1 (MetaSel (Just "numCstr") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 Int) :*: S1 (MetaSel (Just "numIter") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 Int)) :*: (S1 (MetaSel (Just "numBrkt") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 Int) :*: (S1 (MetaSel (Just "numChck") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 Int) :*: S1 (MetaSel (Just "numVald") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 Int))))) |