Hoogle Search
Within LTS Haskell 24.45 (ghc-9.10.3)
Note that Stackage only displays results for the latest LTS and Nightly snapshot. Learn more.
-
sbv Data.SBV Find a satisfying assignment to a property using a single solver, but providing several query problems of interest, with each query running in a separate thread and return the first one that returns. This can be useful to use symbolic mode to drive to a location in the search space of the solver and then refine the problem in query mode. If the computation is very hard to solve for the solver than running in concurrent mode may provide a large performance benefit.
satWithAny :: Satisfiable a => [SMTConfig] -> a -> IO (Solver, NominalDiffTime, SatResult)sbv Data.SBV Find a satisfying assignment to a property with multiple solvers, running them in separate threads. Only the result of the first one to finish will be returned, remaining threads will be killed. Note that we send an exception to the losing processes, but we do *not* actually wait for them to finish. In rare cases this can lead to zombie processes. In previous experiments, we found that some processes take their time to terminate. So, this solution favors quick turnaround.
-
sbv Data.SBV.Dynamic Prove a property with query mode using multiple threads. Each query computation will spawn a thread and a unique instance of your solver to run asynchronously. The Symbolic SVal is duplicated for each thread. This function will return the first query computation that completes, killing the others.
proveWithAny :: [SMTConfig] -> Symbolic SVal -> IO (Solver, NominalDiffTime, ThmResult)sbv Data.SBV.Dynamic Prove a property with multiple solvers, running them in separate threads. Only the result of the first one to finish will be returned, remaining threads will be killed.
-
sbv Data.SBV.Dynamic Find a satisfying assignment to a property with multiple threads in query mode. The Symbolic SVal represents what is known to all child query threads. Each query thread will spawn a unique instance of the solver. Only the first one to finish will be returned and the other threads will be killed.
satWithAny :: [SMTConfig] -> Symbolic SVal -> IO (Solver, NominalDiffTime, SatResult)sbv Data.SBV.Dynamic Find a satisfying assignment to a property with multiple solvers, running them in separate threads. Only the result of the first one to finish will be returned, remaining threads will be killed.
SBVAny :: Kind -> SMTLambda -> SeqOpsbv Data.SBV.Internals any a fun. Where fun :: a -> Bool, and any :: (a -> Bool) -> [a] -> Bool
sAny :: (a -> SBool) -> [a] -> SBoolsbv Data.SBV.Internals Generalization of any
sAny :: (a -> SBool) -> [a] -> SBoolsbv Data.SBV.Trans Generalization of any
-
sbv Documentation.SBV.Examples.KnuckleDragger.Lists not (all id xs) == any not xs
A list of booleans is not all true, if any of them is false. We have:>>> allAny Inductive lemma: allAny Step: Base Q.E.D. Step: 1 Q.E.D. Step: 2 Q.E.D. Step: 3 Q.E.D. Step: 4 Q.E.D. Result: Q.E.D. [Proven] allAny