Copyright | (c) Masahiro Sakai 2016 |
---|---|
License | BSD-style |
Maintainer | masahiro.sakai@gmail.com |
Stability | experimental |
Safe Haskell | None |
Language | Haskell2010 |
Synopsis
- data BV
- bv2nat :: Integral a => BV -> a
- nat2bv :: IsBV a => Int -> Integer -> a
- fromAscBits :: IsBV a => [Bool] -> a
- fromDescBits :: IsBV a => [Bool] -> a
- toAscBits :: BV -> [Bool]
- toDescBits :: BV -> [Bool]
- class Monoid a => IsBV a where
- width :: a -> Int
- extract :: Int -> Int -> a -> a
- fromBV :: BV -> a
- bvnot :: a -> a
- bvand :: a -> a -> a
- bvor :: a -> a -> a
- bvxor :: a -> a -> a
- bvnand :: a -> a -> a
- bvnor :: a -> a -> a
- bvxnor :: a -> a -> a
- bvneg :: a -> a
- bvadd :: a -> a -> a
- bvsub :: a -> a -> a
- bvmul :: a -> a -> a
- bvudiv :: a -> a -> a
- bvurem :: a -> a -> a
- bvsdiv :: a -> a -> a
- bvsrem :: a -> a -> a
- bvsmod :: a -> a -> a
- bvshl :: a -> a -> a
- bvlshr :: a -> a -> a
- bvashr :: a -> a -> a
- bvcomp :: a -> a -> a
- data Var = Var {}
- data Expr
- data Op1
- data Op2
- repeat :: Monoid m => Int -> m -> m
- zeroExtend :: IsBV a => Int -> a -> a
- signExtend :: IsBV a => Int -> a -> a
- data Atom = Rel (OrdRel Expr) Bool
- class (IsBV a, IsEqRel a (ComparisonResult a), Complement (ComparisonResult a)) => BVComparison a where
- type ComparisonResult a
- bvule, bvult, bvuge, bvugt, bvsle, bvslt, bvsge, bvsgt :: a -> a -> ComparisonResult a
- module ToySolver.Data.OrdRel
- type Model = (Vector BV, Map BV BV, Map BV BV)
- evalExpr :: Model -> Expr -> BV
- evalAtom :: Model -> Atom -> Bool
BitVector values
Instances
fromAscBits :: IsBV a => [Bool] -> a Source #
fromDescBits :: IsBV a => [Bool] -> a Source #
toDescBits :: BV -> [Bool] Source #
class Monoid a => IsBV a where Source #
width, extract, fromBV, bvnot, bvand, bvor, bvxor, bvneg, bvadd, bvmul, bvudiv, bvurem, bvsdiv, bvsrem, bvsmod, bvshl, bvlshr, bvashr, bvcomp
extract :: Int -> Int -> a -> a Source #
bvnand :: a -> a -> a Source #
bvxnor :: a -> a -> a Source #
bvudiv :: a -> a -> a Source #
bvurem :: a -> a -> a Source #
bvsdiv :: a -> a -> a Source #
bvsrem :: a -> a -> a Source #
bvsmod :: a -> a -> a Source #
bvlshr :: a -> a -> a Source #
Instances
BitVector language
Instances
zeroExtend :: IsBV a => Int -> a -> a Source #
signExtend :: IsBV a => Int -> a -> a Source #
class (IsBV a, IsEqRel a (ComparisonResult a), Complement (ComparisonResult a)) => BVComparison a where Source #
type ComparisonResult a Source #
bvule :: a -> a -> ComparisonResult a Source #
bvult :: a -> a -> ComparisonResult a Source #
bvuge :: a -> a -> ComparisonResult a Source #
bvugt :: a -> a -> ComparisonResult a Source #
bvsle :: a -> a -> ComparisonResult a Source #
bvslt :: a -> a -> ComparisonResult a Source #
bvsge :: a -> a -> ComparisonResult a Source #
bvsgt :: a -> a -> ComparisonResult a Source #
Instances
BVComparison Expr Source # | |
Defined in ToySolver.BitVector.Base type ComparisonResult Expr :: Type Source # bvule :: Expr -> Expr -> ComparisonResult Expr Source # bvult :: Expr -> Expr -> ComparisonResult Expr Source # bvuge :: Expr -> Expr -> ComparisonResult Expr Source # bvugt :: Expr -> Expr -> ComparisonResult Expr Source # bvsle :: Expr -> Expr -> ComparisonResult Expr Source # bvslt :: Expr -> Expr -> ComparisonResult Expr Source # | |
BVComparison BV Source # | |
Defined in ToySolver.BitVector.Base type ComparisonResult BV :: Type Source # bvule :: BV -> BV -> ComparisonResult BV Source # bvult :: BV -> BV -> ComparisonResult BV Source # bvuge :: BV -> BV -> ComparisonResult BV Source # bvugt :: BV -> BV -> ComparisonResult BV Source # bvsle :: BV -> BV -> ComparisonResult BV Source # bvslt :: BV -> BV -> ComparisonResult BV Source # |
module ToySolver.Data.OrdRel