packages feed

sbv 10.4 → 10.5

raw patch · 12 files changed

+58/−41 lines, 12 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

+ Data.SBV: ($dm.==) :: (EqSymbolic a, Generic a, GEqSymbolic (Rep a)) => a -> a -> SBool
+ Data.SBV: ($dmfromMetricSpace) :: (Metric a, a ~ MetricSpace a) => SBV (MetricSpace a) -> SBV a
+ Data.SBV: ($dmkindOf) :: (HasKind a, Read a, Data a) => a -> Kind
+ Data.SBV: ($dmparseCVs) :: (SatModel a, Read a) => [CV] -> Maybe (a, [CV])
+ Data.SBV: ($dmsymbolicEnv) :: forall (t :: (Type -> Type) -> Type -> Type) (m' :: Type -> Type). (MonadSymbolic m, MonadTrans t, MonadSymbolic m', m ~ t m') => m State
+ Data.SBV: ($dmsymbolicMerge) :: (Mergeable a, Generic a, GMergeable (Rep a)) => Bool -> SBool -> a -> a -> a
+ Data.SBV: ($dmtoMetricSpace) :: (Metric a, a ~ MetricSpace a) => SBV a -> SBV (MetricSpace a)
+ Data.SBV: ($dmtoSDouble) :: (IEEEFloatConvertible a, Integral a) => SRoundingMode -> SBV a -> SDouble
+ Data.SBV: ($dmtoSFloat) :: (IEEEFloatConvertible a, Integral a) => SRoundingMode -> SBV a -> SFloat
+ Data.SBV: ($dmtoSFloatingPoint) :: forall (eb :: Nat) (sb :: Nat). (IEEEFloatConvertible a, Integral a, ValidFloat eb sb) => SRoundingMode -> SBV a -> SFloatingPoint eb sb
+ Data.SBV.Control: ($dmqueryState) :: forall (t :: (Type -> Type) -> Type -> Type) (m' :: Type -> Type). (MonadQuery m, MonadTrans t, MonadQuery m', m ~ t m') => m State
+ Data.SBV.Dynamic: ($dmkindOf) :: (HasKind a, Read a, Data a) => a -> Kind
+ Data.SBV.Internals: ($dm.==) :: (EqSymbolic a, Generic a, GEqSymbolic (Rep a)) => a -> a -> SBool
+ Data.SBV.Internals: ($dmfromCV) :: (SymVal a, Read a) => CV -> a
+ Data.SBV.Internals: ($dmkindOf) :: (HasKind a, Read a, Data a) => a -> Kind
+ Data.SBV.Internals: ($dmliteral) :: (SymVal a, Show a) => a -> SBV a
+ Data.SBV.Internals: ($dmmkSymVal) :: (SymVal a, MonadSymbolic m, Read a, Data a) => VarContext -> Maybe String -> m (SBV a)
+ Data.SBV.Internals: svFloatingPointAsSWord :: SVal -> SVal
+ Data.SBV.Trans: ($dm.==) :: (EqSymbolic a, Generic a, GEqSymbolic (Rep a)) => a -> a -> SBool
+ Data.SBV.Trans: ($dmfromCV) :: (SymVal a, Read a) => CV -> a
+ Data.SBV.Trans: ($dmkindOf) :: (HasKind a, Read a, Data a) => a -> Kind
+ Data.SBV.Trans: ($dmliteral) :: (SymVal a, Show a) => a -> SBV a
+ Data.SBV.Trans: ($dmmkSymVal) :: (SymVal a, MonadSymbolic m, Read a, Data a) => VarContext -> Maybe String -> m (SBV a)
+ Data.SBV.Trans: ($dmparseCVs) :: (SatModel a, Read a) => [CV] -> Maybe (a, [CV])
+ Data.SBV.Trans: ($dmsymbolicEnv) :: forall (t :: (Type -> Type) -> Type -> Type) (m' :: Type -> Type). (MonadSymbolic m, MonadTrans t, MonadSymbolic m', m ~ t m') => m State
+ Data.SBV.Trans: ($dmsymbolicMerge) :: (Mergeable a, Generic a, GMergeable (Rep a)) => Bool -> SBool -> a -> a -> a
+ Data.SBV.Trans: ($dmtoSDouble) :: (IEEEFloatConvertible a, Integral a) => SRoundingMode -> SBV a -> SDouble
+ Data.SBV.Trans: ($dmtoSFloat) :: (IEEEFloatConvertible a, Integral a) => SRoundingMode -> SBV a -> SFloat
+ Data.SBV.Trans: ($dmtoSFloatingPoint) :: forall (eb :: Nat) (sb :: Nat). (IEEEFloatConvertible a, Integral a, ValidFloat eb sb) => SRoundingMode -> SBV a -> SFloatingPoint eb sb
+ Data.SBV.Trans.Control: ($dmqueryState) :: forall (t :: (Type -> Type) -> Type -> Type) (m' :: Type -> Type). (MonadQuery m, MonadTrans t, MonadQuery m', m ~ t m') => m State
- Data.SBV: (#) :: (KnownNat n, BVIsNonZero n, SymVal (bv n), KnownNat m, BVIsNonZero m, SymVal (bv m)) => SBV (bv n) -> SBV (bv m) -> SBV (bv (n + m))
+ Data.SBV: (#) :: forall (n :: Nat) bv (m :: Nat). (KnownNat n, BVIsNonZero n, SymVal (bv n), KnownNat m, BVIsNonZero m, SymVal (bv m)) => SBV (bv n) -> SBV (bv m) -> SBV (bv (n + m))
- Data.SBV: (.==) :: (EqSymbolic a, Generic a, GEqSymbolic (Rep a)) => a -> a -> SBool
+ Data.SBV: (.==) :: EqSymbolic a => a -> a -> SBool
- Data.SBV: blastSFloatingPoint :: forall eb sb. (ValidFloat eb sb, KnownNat (eb + sb), BVIsNonZero (eb + sb)) => SFloatingPoint eb sb -> (SBool, [SBool], [SBool])
+ Data.SBV: blastSFloatingPoint :: forall (eb :: Nat) (sb :: Nat). (ValidFloat eb sb, KnownNat (eb + sb), BVIsNonZero (eb + sb)) => SFloatingPoint eb sb -> (SBool, [SBool], [SBool])
- Data.SBV: bvDrop :: forall i n m bv proxy. (KnownNat n, BVIsNonZero n, KnownNat i, (i + 1) <= n, ((i + m) - n) <= 0, BVIsNonZero (n - i)) => proxy i -> SBV (bv n) -> SBV (bv m)
+ Data.SBV: bvDrop :: forall (i :: Nat) (n :: Nat) (m :: Natural) bv proxy. (KnownNat n, BVIsNonZero n, KnownNat i, (i + 1) <= n, ((i + m) - n) <= 0, BVIsNonZero (n - i)) => proxy i -> SBV (bv n) -> SBV (bv m)
- Data.SBV: bvExtract :: forall i j n bv proxy. (KnownNat n, BVIsNonZero n, SymVal (bv n), KnownNat i, KnownNat j, (i + 1) <= n, j <= i, BVIsNonZero ((i - j) + 1)) => proxy i -> proxy j -> SBV (bv n) -> SBV (bv ((i - j) + 1))
+ Data.SBV: bvExtract :: forall (i :: Nat) (j :: Nat) (n :: Nat) bv proxy. (KnownNat n, BVIsNonZero n, SymVal (bv n), KnownNat i, KnownNat j, (i + 1) <= n, j <= i, BVIsNonZero ((i - j) + 1)) => proxy i -> proxy j -> SBV (bv n) -> SBV (bv ((i - j) + 1))
- Data.SBV: bvTake :: forall i n bv proxy. (KnownNat n, BVIsNonZero n, KnownNat i, BVIsNonZero i, i <= n) => proxy i -> SBV (bv n) -> SBV (bv i)
+ Data.SBV: bvTake :: forall (i :: Nat) (n :: Nat) bv proxy. (KnownNat n, BVIsNonZero n, KnownNat i, BVIsNonZero i, i <= n) => proxy i -> SBV (bv n) -> SBV (bv i)
- Data.SBV: class MonadIO m => MonadSymbolic m
+ Data.SBV: class MonadIO m => MonadSymbolic (m :: Type -> Type)
- Data.SBV: class ExtractIO m => SExecutable m a
+ Data.SBV: class ExtractIO m => SExecutable (m :: Type -> Type) a
- Data.SBV: class SymArray array
+ Data.SBV: class SymArray (array :: Type -> Type -> Type)
- Data.SBV: crack :: SBV a -> String
+ Data.SBV: crack :: Bool -> SBV a -> String
- Data.SBV: data SymbolicT m a
+ Data.SBV: data SymbolicT (m :: Type -> Type) a
- Data.SBV: fromMetricSpace :: (Metric a, a ~ MetricSpace a) => SBV (MetricSpace a) -> SBV a
+ Data.SBV: fromMetricSpace :: Metric a => SBV (MetricSpace a) -> SBV a
- Data.SBV: fromSFloatingPoint :: (IEEEFloatConvertible a, ValidFloat eb sb) => SRoundingMode -> SFloatingPoint eb sb -> SBV a
+ Data.SBV: fromSFloatingPoint :: forall (eb :: Nat) (sb :: Nat). (IEEEFloatConvertible a, ValidFloat eb sb) => SRoundingMode -> SFloatingPoint eb sb -> SBV a
- Data.SBV: kindOf :: (HasKind a, Read a, Data a) => a -> Kind
+ Data.SBV: kindOf :: HasKind a => a -> Kind
- Data.SBV: lambdaAsArray :: forall a b. (SymVal a, HasKind b) => (SBV a -> SBV b) -> SArray a b
+ Data.SBV: lambdaAsArray :: (SymVal a, HasKind b) => (SBV a -> SBV b) -> SArray a b
- Data.SBV: mkTransitiveClosure :: forall a. SymVal a => String -> Relation a -> Relation a
+ Data.SBV: mkTransitiveClosure :: SymVal a => String -> Relation a -> Relation a
- Data.SBV: parseCVs :: (SatModel a, Read a) => [CV] -> Maybe (a, [CV])
+ Data.SBV: parseCVs :: SatModel a => [CV] -> Maybe (a, [CV])
- Data.SBV: sFloatingPoint :: ValidFloat eb sb => String -> Symbolic (SFloatingPoint eb sb)
+ Data.SBV: sFloatingPoint :: forall (eb :: Nat) (sb :: Nat). ValidFloat eb sb => String -> Symbolic (SFloatingPoint eb sb)
- Data.SBV: sFloatingPointAsSWord :: forall eb sb. (ValidFloat eb sb, KnownNat (eb + sb), BVIsNonZero (eb + sb)) => SFloatingPoint eb sb -> SWord (eb + sb)
+ Data.SBV: sFloatingPointAsSWord :: forall (eb :: Nat) (sb :: Nat). (ValidFloat eb sb, KnownNat (eb + sb), BVIsNonZero (eb + sb)) => SFloatingPoint eb sb -> SWord (eb + sb)
- Data.SBV: sFloatingPoint_ :: ValidFloat eb sb => Symbolic (SFloatingPoint eb sb)
+ Data.SBV: sFloatingPoint_ :: forall (eb :: Nat) (sb :: Nat). ValidFloat eb sb => Symbolic (SFloatingPoint eb sb)
- Data.SBV: sFloatingPoints :: ValidFloat eb sb => [String] -> Symbolic [SFloatingPoint eb sb]
+ Data.SBV: sFloatingPoints :: forall (eb :: Nat) (sb :: Nat). ValidFloat eb sb => [String] -> Symbolic [SFloatingPoint eb sb]
- Data.SBV: sFromIntegral :: forall a b. (Integral a, HasKind a, Num a, SymVal a, HasKind b, Num b, SymVal b) => SBV a -> SBV b
+ Data.SBV: sFromIntegral :: (Integral a, HasKind a, Num a, SymVal a, HasKind b, Num b, SymVal b) => SBV a -> SBV b
- Data.SBV: sInt :: (KnownNat n, BVIsNonZero n) => String -> Symbolic (SInt n)
+ Data.SBV: sInt :: forall (n :: Nat). (KnownNat n, BVIsNonZero n) => String -> Symbolic (SInt n)
- Data.SBV: sInt_ :: (KnownNat n, BVIsNonZero n) => Symbolic (SInt n)
+ Data.SBV: sInt_ :: forall (n :: Nat). (KnownNat n, BVIsNonZero n) => Symbolic (SInt n)
- Data.SBV: sInts :: (KnownNat n, BVIsNonZero n) => [String] -> Symbolic [SInt n]
+ Data.SBV: sInts :: forall (n :: Nat). (KnownNat n, BVIsNonZero n) => [String] -> Symbolic [SInt n]
- Data.SBV: sSetBitTo :: (SFiniteBits a, Integral a) => SBV a -> SBV a -> SBool -> SBV a
+ Data.SBV: sSetBitTo :: SFiniteBits a => SBV a -> SBV a -> SBool -> SBV a
- Data.SBV: sWord :: (KnownNat n, BVIsNonZero n) => String -> Symbolic (SWord n)
+ Data.SBV: sWord :: forall (n :: Nat). (KnownNat n, BVIsNonZero n) => String -> Symbolic (SWord n)
- Data.SBV: sWordAsSFloatingPoint :: forall eb sb. (KnownNat (eb + sb), BVIsNonZero (eb + sb), ValidFloat eb sb) => SWord (eb + sb) -> SFloatingPoint eb sb
+ Data.SBV: sWordAsSFloatingPoint :: forall (eb :: Natural) (sb :: Natural). (KnownNat (eb + sb), BVIsNonZero (eb + sb), ValidFloat eb sb) => SWord (eb + sb) -> SFloatingPoint eb sb
- Data.SBV: sWord_ :: (KnownNat n, BVIsNonZero n) => Symbolic (SWord n)
+ Data.SBV: sWord_ :: forall (n :: Nat). (KnownNat n, BVIsNonZero n) => Symbolic (SWord n)
- Data.SBV: sWords :: (KnownNat n, BVIsNonZero n) => [String] -> Symbolic [SWord n]
+ Data.SBV: sWords :: forall (n :: Nat). (KnownNat n, BVIsNonZero n) => [String] -> Symbolic [SWord n]
- Data.SBV: signExtend :: forall n m bv. (KnownNat n, BVIsNonZero n, SymVal (bv n), KnownNat m, BVIsNonZero m, SymVal (bv m), (n + 1) <= m, SFiniteBits (bv n), SIntegral (bv (m - n)), BVIsNonZero (m - n)) => SBV (bv n) -> SBV (bv m)
+ Data.SBV: signExtend :: forall (n :: Nat) (m :: Nat) bv. (KnownNat n, BVIsNonZero n, SymVal (bv n), KnownNat m, BVIsNonZero m, SymVal (bv m), (n + 1) <= m, SFiniteBits (bv n), SIntegral (bv (m - n)), BVIsNonZero (m - n)) => SBV (bv n) -> SBV (bv m)
- Data.SBV: skolemize :: (Skolemize a, Constraint Symbolic (SkolemsTo a), Skolemize a) => a -> SkolemsTo a
+ Data.SBV: skolemize :: Skolemize a => a -> SkolemsTo a
- Data.SBV: smtFunction :: (SMTDefinable a, Lambda Symbolic a) => String -> a -> a
+ Data.SBV: smtFunction :: SMTDefinable a => String -> a -> a
- Data.SBV: symbolicEnv :: (MonadSymbolic m, MonadTrans t, MonadSymbolic m', m ~ t m') => m State
+ Data.SBV: symbolicEnv :: MonadSymbolic m => m State
- Data.SBV: symbolicMerge :: (Mergeable a, Generic a, GMergeable (Rep a)) => Bool -> SBool -> a -> a -> a
+ Data.SBV: symbolicMerge :: Mergeable a => Bool -> SBool -> a -> a -> a
- Data.SBV: taggedSkolemize :: (Skolemize a, Constraint Symbolic (SkolemsTo a), Skolemize a) => String -> a -> SkolemsTo a
+ Data.SBV: taggedSkolemize :: Skolemize a => String -> a -> SkolemsTo a
- Data.SBV: toMetricSpace :: (Metric a, a ~ MetricSpace a) => SBV a -> SBV (MetricSpace a)
+ Data.SBV: toMetricSpace :: Metric a => SBV a -> SBV (MetricSpace a)
- Data.SBV: toSDouble :: (IEEEFloatConvertible a, Integral a) => SRoundingMode -> SBV a -> SDouble
+ Data.SBV: toSDouble :: IEEEFloatConvertible a => SRoundingMode -> SBV a -> SDouble
- Data.SBV: toSFloat :: (IEEEFloatConvertible a, Integral a) => SRoundingMode -> SBV a -> SFloat
+ Data.SBV: toSFloat :: IEEEFloatConvertible a => SRoundingMode -> SBV a -> SFloat
- Data.SBV: toSFloatingPoint :: (IEEEFloatConvertible a, Integral a, ValidFloat eb sb) => SRoundingMode -> SBV a -> SFloatingPoint eb sb
+ Data.SBV: toSFloatingPoint :: forall (eb :: Nat) (sb :: Nat). (IEEEFloatConvertible a, ValidFloat eb sb) => SRoundingMode -> SBV a -> SFloatingPoint eb sb
- Data.SBV: type NegatesTo a :: Type;
+ Data.SBV: type NegatesTo a;
- Data.SBV: type SEither a b = SBV (Either a b)
+ Data.SBV: type SEither a b = SBV Either a b
- Data.SBV: type SFloatingPoint (eb :: Nat) (sb :: Nat) = SBV (FloatingPoint eb sb)
+ Data.SBV: type SFloatingPoint (eb :: Nat) (sb :: Nat) = SBV FloatingPoint eb sb
- Data.SBV: type SInt (n :: Nat) = SBV (IntN n)
+ Data.SBV: type SInt (n :: Nat) = SBV IntN n
- Data.SBV: type SMaybe a = SBV (Maybe a)
+ Data.SBV: type SMaybe a = SBV Maybe a
- Data.SBV: type SSet a = SBV (RCSet a)
+ Data.SBV: type SSet a = SBV RCSet a
- Data.SBV: type SWord (n :: Nat) = SBV (WordN n)
+ Data.SBV: type SWord (n :: Nat) = SBV WordN n
- Data.SBV: type family ValidFloat (eb :: Nat) (sb :: Nat) :: Constraint
+ Data.SBV: type family ValidFloat (eb :: Nat) (sb :: Nat)
- Data.SBV: zeroExtend :: forall n m bv. (KnownNat n, BVIsNonZero n, SymVal (bv n), KnownNat m, BVIsNonZero m, SymVal (bv m), (n + 1) <= m, SIntegral (bv (m - n)), BVIsNonZero (m - n)) => SBV (bv n) -> SBV (bv m)
+ Data.SBV: zeroExtend :: forall (n :: Nat) (m :: Nat) bv. (KnownNat n, BVIsNonZero n, SymVal (bv n), KnownNat m, BVIsNonZero m, SymVal (bv m), (n + 1) <= m, SIntegral (bv (m - n)), BVIsNonZero (m - n)) => SBV (bv n) -> SBV (bv m)
- Data.SBV.Control: class MonadIO m => ExtractIO m
+ Data.SBV.Control: class MonadIO m => ExtractIO (m :: Type -> Type)
- Data.SBV.Control: class Fresh m a
+ Data.SBV.Control: class Fresh (m :: Type -> Type) a
- Data.SBV.Control: class Monad m => MonadQuery m
+ Data.SBV.Control: class Monad m => MonadQuery (m :: Type -> Type)
- Data.SBV.Control: class Queriable m a where {
+ Data.SBV.Control: class Queriable (m :: Type -> Type) a where {
- Data.SBV.Control: queryState :: (MonadQuery m, MonadTrans t, MonadQuery m', m ~ t m') => m State
+ Data.SBV.Control: queryState :: MonadQuery m => m State
- Data.SBV.Control: registerUISMTFunction :: (MonadIO m, SolverContext m, MonadSymbolic m) => SMTFunction fun a r => fun -> m ()
+ Data.SBV.Control: registerUISMTFunction :: (MonadIO m, SolverContext m, MonadSymbolic m, SMTFunction fun a r) => fun -> m ()
- Data.SBV.Control: type QueryResult a :: Type;
+ Data.SBV.Control: type QueryResult a;
- Data.SBV.Dynamic: kindOf :: (HasKind a, Read a, Data a) => a -> Kind
+ Data.SBV.Dynamic: kindOf :: HasKind a => a -> Kind
- Data.SBV.Either: bimap :: forall a b c d. (SymVal a, SymVal b, SymVal c, SymVal d) => (SBV a -> SBV b) -> (SBV c -> SBV d) -> SEither a c -> SEither b d
+ Data.SBV.Either: bimap :: (SymVal a, SymVal b, SymVal c, SymVal d) => (SBV a -> SBV b) -> (SBV c -> SBV d) -> SEither a c -> SEither b d
- Data.SBV.Either: either :: forall a b c. (SymVal a, SymVal b, SymVal c) => (SBV a -> SBV c) -> (SBV b -> SBV c) -> SEither a b -> SBV c
+ Data.SBV.Either: either :: (SymVal a, SymVal b, SymVal c) => (SBV a -> SBV c) -> (SBV b -> SBV c) -> SEither a b -> SBV c
- Data.SBV.Either: fromLeft :: forall a b. (SymVal a, SymVal b) => SEither a b -> SBV a
+ Data.SBV.Either: fromLeft :: (SymVal a, SymVal b) => SEither a b -> SBV a
- Data.SBV.Either: fromRight :: forall a b. (SymVal a, SymVal b) => SEither a b -> SBV b
+ Data.SBV.Either: fromRight :: (SymVal a, SymVal b) => SEither a b -> SBV b
- Data.SBV.Either: sLeft :: forall a b. (SymVal a, SymVal b) => SBV a -> SEither a b
+ Data.SBV.Either: sLeft :: (SymVal a, SymVal b) => SBV a -> SEither a b
- Data.SBV.Either: sRight :: forall a b. (SymVal a, SymVal b) => SBV b -> SEither a b
+ Data.SBV.Either: sRight :: (SymVal a, SymVal b) => SBV b -> SEither a b
- Data.SBV.Internals: (.==) :: (EqSymbolic a, Generic a, GEqSymbolic (Rep a)) => a -> a -> SBool
+ Data.SBV.Internals: (.==) :: EqSymbolic a => a -> a -> SBool
- Data.SBV.Internals: QueryT :: ReaderT State m a -> QueryT m a
+ Data.SBV.Internals: QueryT :: ReaderT State m a -> QueryT (m :: Type -> Type) a
- Data.SBV.Internals: [runQueryT] :: QueryT m a -> ReaderT State m a
+ Data.SBV.Internals: [runQueryT] :: QueryT (m :: Type -> Type) a -> ReaderT State m a
- Data.SBV.Internals: class MonadSymbolic m => Constraint m a
+ Data.SBV.Internals: class MonadSymbolic m => Constraint (m :: Type -> Type) a
- Data.SBV.Internals: class MonadSymbolic m => Lambda m a
+ Data.SBV.Internals: class MonadSymbolic m => Lambda (m :: Type -> Type) a
- Data.SBV.Internals: class ExtractIO m => ProvableM m a
+ Data.SBV.Internals: class ExtractIO m => ProvableM (m :: Type -> Type) a
- Data.SBV.Internals: class ExtractIO m => SatisfiableM m a
+ Data.SBV.Internals: class ExtractIO m => SatisfiableM (m :: Type -> Type) a
- Data.SBV.Internals: class SolverContext m
+ Data.SBV.Internals: class SolverContext (m :: Type -> Type)
- Data.SBV.Internals: class SymArray array
+ Data.SBV.Internals: class SymArray (array :: Type -> Type -> Type)
- Data.SBV.Internals: fromCV :: (SymVal a, Read a) => CV -> a
+ Data.SBV.Internals: fromCV :: SymVal a => CV -> a
- Data.SBV.Internals: kindOf :: (HasKind a, Read a, Data a) => a -> Kind
+ Data.SBV.Internals: kindOf :: HasKind a => a -> Kind
- Data.SBV.Internals: literal :: (SymVal a, Show a) => a -> SBV a
+ Data.SBV.Internals: literal :: SymVal a => a -> SBV a
- Data.SBV.Internals: mkSymVal :: (SymVal a, MonadSymbolic m, Read a, Data a) => VarContext -> Maybe String -> m (SBV a)
+ Data.SBV.Internals: mkSymVal :: (SymVal a, MonadSymbolic m) => VarContext -> Maybe String -> m (SBV a)
- Data.SBV.Internals: newtype QueryT m a
+ Data.SBV.Internals: newtype QueryT (m :: Type -> Type) a
- Data.SBV.Internals: sComparableSWordAsSFloatingPoint :: forall eb sb. (KnownNat (eb + sb), BVIsNonZero (eb + sb), ValidFloat eb sb) => SWord (eb + sb) -> SFloatingPoint eb sb
+ Data.SBV.Internals: sComparableSWordAsSFloatingPoint :: forall (eb :: Natural) (sb :: Natural). (KnownNat (eb + sb), BVIsNonZero (eb + sb), ValidFloat eb sb) => SWord (eb + sb) -> SFloatingPoint eb sb
- Data.SBV.Internals: sFloatingPointAsComparableSWord :: forall eb sb. (ValidFloat eb sb, KnownNat (eb + sb), BVIsNonZero (eb + sb)) => SFloatingPoint eb sb -> SWord (eb + sb)
+ Data.SBV.Internals: sFloatingPointAsComparableSWord :: forall (eb :: Nat) (sb :: Nat). (ValidFloat eb sb, KnownNat (eb + sb), BVIsNonZero (eb + sb)) => SFloatingPoint eb sb -> SWord (eb + sb)
- Data.SBV.Internals: type SEither a b = SBV (Either a b)
+ Data.SBV.Internals: type SEither a b = SBV Either a b
- Data.SBV.Internals: type SFloatingPoint (eb :: Nat) (sb :: Nat) = SBV (FloatingPoint eb sb)
+ Data.SBV.Internals: type SFloatingPoint (eb :: Nat) (sb :: Nat) = SBV FloatingPoint eb sb
- Data.SBV.Internals: type SMaybe a = SBV (Maybe a)
+ Data.SBV.Internals: type SMaybe a = SBV Maybe a
- Data.SBV.Internals: type SSet a = SBV (RCSet a)
+ Data.SBV.Internals: type SSet a = SBV RCSet a
- Data.SBV.List: map :: forall a b. (SymVal a, SymVal b) => (SBV a -> SBV b) -> SList a -> SList b
+ Data.SBV.List: map :: (SymVal a, SymVal b) => (SBV a -> SBV b) -> SList a -> SList b
- Data.SBV.List: mapi :: forall a b. (SymVal a, SymVal b) => (SInteger -> SBV a -> SBV b) -> SInteger -> SList a -> SList b
+ Data.SBV.List: mapi :: (SymVal a, SymVal b) => (SInteger -> SBV a -> SBV b) -> SInteger -> SList a -> SList b
- Data.SBV.Maybe: fromJust :: forall a. SymVal a => SMaybe a -> SBV a
+ Data.SBV.Maybe: fromJust :: SymVal a => SMaybe a -> SBV a
- Data.SBV.Maybe: map :: forall a b. (SymVal a, SymVal b) => (SBV a -> SBV b) -> SMaybe a -> SMaybe b
+ Data.SBV.Maybe: map :: (SymVal a, SymVal b) => (SBV a -> SBV b) -> SMaybe a -> SMaybe b
- Data.SBV.Maybe: map2 :: forall a b c. (SymVal a, SymVal b, SymVal c) => (SBV a -> SBV b -> SBV c) -> SMaybe a -> SMaybe b -> SMaybe c
+ Data.SBV.Maybe: map2 :: (SymVal a, SymVal b, SymVal c) => (SBV a -> SBV b -> SBV c) -> SMaybe a -> SMaybe b -> SMaybe c
- Data.SBV.Maybe: maybe :: forall a b. (SymVal a, SymVal b) => SBV b -> (SBV a -> SBV b) -> SMaybe a -> SBV b
+ Data.SBV.Maybe: maybe :: (SymVal a, SymVal b) => SBV b -> (SBV a -> SBV b) -> SMaybe a -> SBV b
- Data.SBV.Maybe: sJust :: forall a. SymVal a => SBV a -> SMaybe a
+ Data.SBV.Maybe: sJust :: SymVal a => SBV a -> SMaybe a
- Data.SBV.Maybe: sNothing :: forall a. SymVal a => SMaybe a
+ Data.SBV.Maybe: sNothing :: SymVal a => SMaybe a
- Data.SBV.Set: complement :: forall a. (Ord a, SymVal a) => SSet a -> SSet a
+ Data.SBV.Set: complement :: (Ord a, SymVal a) => SSet a -> SSet a
- Data.SBV.Set: delete :: forall a. (Ord a, SymVal a) => SBV a -> SSet a -> SSet a
+ Data.SBV.Set: delete :: (Ord a, SymVal a) => SBV a -> SSet a -> SSet a
- Data.SBV.Set: empty :: forall a. HasKind a => SSet a
+ Data.SBV.Set: empty :: HasKind a => SSet a
- Data.SBV.Set: fromList :: forall a. (Ord a, SymVal a) => [a] -> SSet a
+ Data.SBV.Set: fromList :: (Ord a, SymVal a) => [a] -> SSet a
- Data.SBV.Set: full :: forall a. HasKind a => SSet a
+ Data.SBV.Set: full :: HasKind a => SSet a
- Data.SBV.Set: insert :: forall a. (Ord a, SymVal a) => SBV a -> SSet a -> SSet a
+ Data.SBV.Set: insert :: (Ord a, SymVal a) => SBV a -> SSet a -> SSet a
- Data.SBV.Set: singleton :: forall a. (Ord a, SymVal a) => SBV a -> SSet a
+ Data.SBV.Set: singleton :: (Ord a, SymVal a) => SBV a -> SSet a
- Data.SBV.Set: universal :: forall a. HasKind a => SSet a
+ Data.SBV.Set: universal :: HasKind a => SSet a
- Data.SBV.Tools.BoundedList: bfoldlM :: forall a b m. (SymVal a, SymVal b, Monad m, Mergeable (m (SBV b))) => Int -> (SBV b -> SBV a -> m (SBV b)) -> SBV b -> SList a -> m (SBV b)
+ Data.SBV.Tools.BoundedList: bfoldlM :: (SymVal a, SymVal b, Monad m, Mergeable (m (SBV b))) => Int -> (SBV b -> SBV a -> m (SBV b)) -> SBV b -> SList a -> m (SBV b)
- Data.SBV.Tools.BoundedList: bfoldrM :: forall a b m. (SymVal a, SymVal b, Monad m, Mergeable (m (SBV b))) => Int -> (SBV a -> SBV b -> m (SBV b)) -> SBV b -> SList a -> m (SBV b)
+ Data.SBV.Tools.BoundedList: bfoldrM :: (SymVal a, SymVal b, Monad m, Mergeable (m (SBV b))) => Int -> (SBV a -> SBV b -> m (SBV b)) -> SBV b -> SList a -> m (SBV b)
- Data.SBV.Tools.Overflow: (*!) :: (CheckedArithmetic a, ?loc :: CallStack) => SBV a -> SBV a -> SBV a
+ Data.SBV.Tools.Overflow: (*!) :: CheckedArithmetic a => SBV a -> SBV a -> SBV a
- Data.SBV.Tools.Overflow: (+!) :: (CheckedArithmetic a, ?loc :: CallStack) => SBV a -> SBV a -> SBV a
+ Data.SBV.Tools.Overflow: (+!) :: CheckedArithmetic a => SBV a -> SBV a -> SBV a
- Data.SBV.Tools.Overflow: (-!) :: (CheckedArithmetic a, ?loc :: CallStack) => SBV a -> SBV a -> SBV a
+ Data.SBV.Tools.Overflow: (-!) :: CheckedArithmetic a => SBV a -> SBV a -> SBV a
- Data.SBV.Tools.Overflow: (/!) :: (CheckedArithmetic a, ?loc :: CallStack) => SBV a -> SBV a -> SBV a
+ Data.SBV.Tools.Overflow: (/!) :: CheckedArithmetic a => SBV a -> SBV a -> SBV a
- Data.SBV.Tools.Overflow: class (ArithOverflow (SBV a), Num a, SymVal a) => CheckedArithmetic a
+ Data.SBV.Tools.Overflow: class (ArithOverflow SBV a, Num a, SymVal a) => CheckedArithmetic a
- Data.SBV.Tools.Overflow: negateChecked :: (CheckedArithmetic a, ?loc :: CallStack) => SBV a -> SBV a
+ Data.SBV.Tools.Overflow: negateChecked :: CheckedArithmetic a => SBV a -> SBV a
- Data.SBV.Tools.Overflow: sFromIntegralChecked :: forall a b. (?loc :: CallStack, Integral a, HasKind a, HasKind b, Num a, SymVal a, HasKind b, Num b, SymVal b) => SBV a -> SBV b
+ Data.SBV.Tools.Overflow: sFromIntegralChecked :: (?loc :: CallStack, Integral a, HasKind a, HasKind b, Num a, SymVal a, HasKind b, Num b, SymVal b) => SBV a -> SBV b
- Data.SBV.Tools.Overflow: sFromIntegralO :: forall a b. (Integral a, HasKind a, Num a, SymVal a, HasKind b, Num b, SymVal b) => SBV a -> (SBV b, (SBool, SBool))
+ Data.SBV.Tools.Overflow: sFromIntegralO :: (Integral a, HasKind a, Num a, SymVal a, HasKind b, Num b, SymVal b) => SBV a -> (SBV b, (SBool, SBool))
- Data.SBV.Tools.Range: ranges :: forall a. (Ord a, Num a, SymVal a, SatModel a, Metric a, SymVal (MetricSpace a), SatModel (MetricSpace a)) => (SBV a -> SBool) -> IO [Range a]
+ Data.SBV.Tools.Range: ranges :: (Ord a, Num a, SymVal a, SatModel a, Metric a, SymVal (MetricSpace a), SatModel (MetricSpace a)) => (SBV a -> SBool) -> IO [Range a]
- Data.SBV.Tools.Range: rangesWith :: forall a. (Ord a, Num a, SymVal a, SatModel a, Metric a, SymVal (MetricSpace a), SatModel (MetricSpace a)) => SMTConfig -> (SBV a -> SBool) -> IO [Range a]
+ Data.SBV.Tools.Range: rangesWith :: (Ord a, Num a, SymVal a, SatModel a, Metric a, SymVal (MetricSpace a), SatModel (MetricSpace a)) => SMTConfig -> (SBV a -> SBool) -> IO [Range a]
- Data.SBV.Tools.STree: mkSTree :: forall i e. HasKind i => [SBV e] -> STree i e
+ Data.SBV.Tools.STree: mkSTree :: HasKind i => [SBV e] -> STree i e
- Data.SBV.Tools.STree: type STree i e = STreeInternal (SBV i) (SBV e)
+ Data.SBV.Tools.STree: type STree i e = STreeInternal SBV i SBV e
- Data.SBV.Tools.WeakestPreconditions: traceExecution :: forall st. Show st => Program st -> st -> IO (Status st)
+ Data.SBV.Tools.WeakestPreconditions: traceExecution :: Show st => Program st -> st -> IO (Status st)
- Data.SBV.Trans: (#) :: (KnownNat n, BVIsNonZero n, SymVal (bv n), KnownNat m, BVIsNonZero m, SymVal (bv m)) => SBV (bv n) -> SBV (bv m) -> SBV (bv (n + m))
+ Data.SBV.Trans: (#) :: forall (n :: Nat) bv (m :: Nat). (KnownNat n, BVIsNonZero n, SymVal (bv n), KnownNat m, BVIsNonZero m, SymVal (bv m)) => SBV (bv n) -> SBV (bv m) -> SBV (bv (n + m))
- Data.SBV.Trans: (.==) :: (EqSymbolic a, Generic a, GEqSymbolic (Rep a)) => a -> a -> SBool
+ Data.SBV.Trans: (.==) :: EqSymbolic a => a -> a -> SBool
- Data.SBV.Trans: blastSFloatingPoint :: forall eb sb. (ValidFloat eb sb, KnownNat (eb + sb), BVIsNonZero (eb + sb)) => SFloatingPoint eb sb -> (SBool, [SBool], [SBool])
+ Data.SBV.Trans: blastSFloatingPoint :: forall (eb :: Nat) (sb :: Nat). (ValidFloat eb sb, KnownNat (eb + sb), BVIsNonZero (eb + sb)) => SFloatingPoint eb sb -> (SBool, [SBool], [SBool])
- Data.SBV.Trans: bvDrop :: forall i n m bv proxy. (KnownNat n, BVIsNonZero n, KnownNat i, (i + 1) <= n, ((i + m) - n) <= 0, BVIsNonZero (n - i)) => proxy i -> SBV (bv n) -> SBV (bv m)
+ Data.SBV.Trans: bvDrop :: forall (i :: Nat) (n :: Nat) (m :: Natural) bv proxy. (KnownNat n, BVIsNonZero n, KnownNat i, (i + 1) <= n, ((i + m) - n) <= 0, BVIsNonZero (n - i)) => proxy i -> SBV (bv n) -> SBV (bv m)
- Data.SBV.Trans: bvExtract :: forall i j n bv proxy. (KnownNat n, BVIsNonZero n, SymVal (bv n), KnownNat i, KnownNat j, (i + 1) <= n, j <= i, BVIsNonZero ((i - j) + 1)) => proxy i -> proxy j -> SBV (bv n) -> SBV (bv ((i - j) + 1))
+ Data.SBV.Trans: bvExtract :: forall (i :: Nat) (j :: Nat) (n :: Nat) bv proxy. (KnownNat n, BVIsNonZero n, SymVal (bv n), KnownNat i, KnownNat j, (i + 1) <= n, j <= i, BVIsNonZero ((i - j) + 1)) => proxy i -> proxy j -> SBV (bv n) -> SBV (bv ((i - j) + 1))
- Data.SBV.Trans: bvTake :: forall i n bv proxy. (KnownNat n, BVIsNonZero n, KnownNat i, BVIsNonZero i, i <= n) => proxy i -> SBV (bv n) -> SBV (bv i)
+ Data.SBV.Trans: bvTake :: forall (i :: Nat) (n :: Nat) bv proxy. (KnownNat n, BVIsNonZero n, KnownNat i, BVIsNonZero i, i <= n) => proxy i -> SBV (bv n) -> SBV (bv i)
- Data.SBV.Trans: class MonadIO m => MonadSymbolic m
+ Data.SBV.Trans: class MonadIO m => MonadSymbolic (m :: Type -> Type)
- Data.SBV.Trans: class ExtractIO m => ProvableM m a
+ Data.SBV.Trans: class ExtractIO m => ProvableM (m :: Type -> Type) a
- Data.SBV.Trans: class ExtractIO m => SExecutable m a
+ Data.SBV.Trans: class ExtractIO m => SExecutable (m :: Type -> Type) a
- Data.SBV.Trans: class ExtractIO m => SatisfiableM m a
+ Data.SBV.Trans: class ExtractIO m => SatisfiableM (m :: Type -> Type) a
- Data.SBV.Trans: class SymArray array
+ Data.SBV.Trans: class SymArray (array :: Type -> Type -> Type)
- Data.SBV.Trans: data SymbolicT m a
+ Data.SBV.Trans: data SymbolicT (m :: Type -> Type) a
- Data.SBV.Trans: fromCV :: (SymVal a, Read a) => CV -> a
+ Data.SBV.Trans: fromCV :: SymVal a => CV -> a
- Data.SBV.Trans: fromSFloatingPoint :: (IEEEFloatConvertible a, ValidFloat eb sb) => SRoundingMode -> SFloatingPoint eb sb -> SBV a
+ Data.SBV.Trans: fromSFloatingPoint :: forall (eb :: Nat) (sb :: Nat). (IEEEFloatConvertible a, ValidFloat eb sb) => SRoundingMode -> SFloatingPoint eb sb -> SBV a
- Data.SBV.Trans: kindOf :: (HasKind a, Read a, Data a) => a -> Kind
+ Data.SBV.Trans: kindOf :: HasKind a => a -> Kind
- Data.SBV.Trans: literal :: (SymVal a, Show a) => a -> SBV a
+ Data.SBV.Trans: literal :: SymVal a => a -> SBV a
- Data.SBV.Trans: mkSymVal :: (SymVal a, MonadSymbolic m, Read a, Data a) => VarContext -> Maybe String -> m (SBV a)
+ Data.SBV.Trans: mkSymVal :: (SymVal a, MonadSymbolic m) => VarContext -> Maybe String -> m (SBV a)
- Data.SBV.Trans: parseCVs :: (SatModel a, Read a) => [CV] -> Maybe (a, [CV])
+ Data.SBV.Trans: parseCVs :: SatModel a => [CV] -> Maybe (a, [CV])
- Data.SBV.Trans: sFloatingPointAsSWord :: forall eb sb. (ValidFloat eb sb, KnownNat (eb + sb), BVIsNonZero (eb + sb)) => SFloatingPoint eb sb -> SWord (eb + sb)
+ Data.SBV.Trans: sFloatingPointAsSWord :: forall (eb :: Nat) (sb :: Nat). (ValidFloat eb sb, KnownNat (eb + sb), BVIsNonZero (eb + sb)) => SFloatingPoint eb sb -> SWord (eb + sb)
- Data.SBV.Trans: sFromIntegral :: forall a b. (Integral a, HasKind a, Num a, SymVal a, HasKind b, Num b, SymVal b) => SBV a -> SBV b
+ Data.SBV.Trans: sFromIntegral :: (Integral a, HasKind a, Num a, SymVal a, HasKind b, Num b, SymVal b) => SBV a -> SBV b
- Data.SBV.Trans: sInt :: (KnownNat n, BVIsNonZero n) => MonadSymbolic m => String -> m (SInt n)
+ Data.SBV.Trans: sInt :: forall (n :: Nat) m. (KnownNat n, BVIsNonZero n, MonadSymbolic m) => String -> m (SInt n)
- Data.SBV.Trans: sInts :: (KnownNat n, BVIsNonZero n) => MonadSymbolic m => [String] -> m [SInt n]
+ Data.SBV.Trans: sInts :: forall (n :: Nat) m. (KnownNat n, BVIsNonZero n, MonadSymbolic m) => [String] -> m [SInt n]
- Data.SBV.Trans: sSetBitTo :: (SFiniteBits a, Integral a) => SBV a -> SBV a -> SBool -> SBV a
+ Data.SBV.Trans: sSetBitTo :: SFiniteBits a => SBV a -> SBV a -> SBool -> SBV a
- Data.SBV.Trans: sWord :: (KnownNat n, BVIsNonZero n) => MonadSymbolic m => String -> m (SWord n)
+ Data.SBV.Trans: sWord :: forall (n :: Nat) m. (KnownNat n, BVIsNonZero n, MonadSymbolic m) => String -> m (SWord n)
- Data.SBV.Trans: sWordAsSFloatingPoint :: forall eb sb. (KnownNat (eb + sb), BVIsNonZero (eb + sb), ValidFloat eb sb) => SWord (eb + sb) -> SFloatingPoint eb sb
+ Data.SBV.Trans: sWordAsSFloatingPoint :: forall (eb :: Natural) (sb :: Natural). (KnownNat (eb + sb), BVIsNonZero (eb + sb), ValidFloat eb sb) => SWord (eb + sb) -> SFloatingPoint eb sb
- Data.SBV.Trans: sWords :: (KnownNat n, BVIsNonZero n) => MonadSymbolic m => [String] -> m [SWord n]
+ Data.SBV.Trans: sWords :: forall (n :: Nat) m. (KnownNat n, BVIsNonZero n, MonadSymbolic m) => [String] -> m [SWord n]
- Data.SBV.Trans: signExtend :: forall n m bv. (KnownNat n, BVIsNonZero n, SymVal (bv n), KnownNat m, BVIsNonZero m, SymVal (bv m), (n + 1) <= m, SFiniteBits (bv n), SIntegral (bv (m - n)), BVIsNonZero (m - n)) => SBV (bv n) -> SBV (bv m)
+ Data.SBV.Trans: signExtend :: forall (n :: Nat) (m :: Nat) bv. (KnownNat n, BVIsNonZero n, SymVal (bv n), KnownNat m, BVIsNonZero m, SymVal (bv m), (n + 1) <= m, SFiniteBits (bv n), SIntegral (bv (m - n)), BVIsNonZero (m - n)) => SBV (bv n) -> SBV (bv m)
- Data.SBV.Trans: smtFunction :: (SMTDefinable a, Lambda Symbolic a) => String -> a -> a
+ Data.SBV.Trans: smtFunction :: SMTDefinable a => String -> a -> a
- Data.SBV.Trans: symbolicEnv :: (MonadSymbolic m, MonadTrans t, MonadSymbolic m', m ~ t m') => m State
+ Data.SBV.Trans: symbolicEnv :: MonadSymbolic m => m State
- Data.SBV.Trans: symbolicMerge :: (Mergeable a, Generic a, GMergeable (Rep a)) => Bool -> SBool -> a -> a -> a
+ Data.SBV.Trans: symbolicMerge :: Mergeable a => Bool -> SBool -> a -> a -> a
- Data.SBV.Trans: toSDouble :: (IEEEFloatConvertible a, Integral a) => SRoundingMode -> SBV a -> SDouble
+ Data.SBV.Trans: toSDouble :: IEEEFloatConvertible a => SRoundingMode -> SBV a -> SDouble
- Data.SBV.Trans: toSFloat :: (IEEEFloatConvertible a, Integral a) => SRoundingMode -> SBV a -> SFloat
+ Data.SBV.Trans: toSFloat :: IEEEFloatConvertible a => SRoundingMode -> SBV a -> SFloat
- Data.SBV.Trans: toSFloatingPoint :: (IEEEFloatConvertible a, Integral a, ValidFloat eb sb) => SRoundingMode -> SBV a -> SFloatingPoint eb sb
+ Data.SBV.Trans: toSFloatingPoint :: forall (eb :: Nat) (sb :: Nat). (IEEEFloatConvertible a, ValidFloat eb sb) => SRoundingMode -> SBV a -> SFloatingPoint eb sb
- Data.SBV.Trans: type SFloatingPoint (eb :: Nat) (sb :: Nat) = SBV (FloatingPoint eb sb)
+ Data.SBV.Trans: type SFloatingPoint (eb :: Nat) (sb :: Nat) = SBV FloatingPoint eb sb
- Data.SBV.Trans: type SInt (n :: Nat) = SBV (IntN n)
+ Data.SBV.Trans: type SInt (n :: Nat) = SBV IntN n
- Data.SBV.Trans: type SWord (n :: Nat) = SBV (WordN n)
+ Data.SBV.Trans: type SWord (n :: Nat) = SBV WordN n
- Data.SBV.Trans: type family ToSized (t :: Type) :: Type
+ Data.SBV.Trans: type family ToSized t
- Data.SBV.Trans: zeroExtend :: forall n m bv. (KnownNat n, BVIsNonZero n, SymVal (bv n), KnownNat m, BVIsNonZero m, SymVal (bv m), (n + 1) <= m, SIntegral (bv (m - n)), BVIsNonZero (m - n)) => SBV (bv n) -> SBV (bv m)
+ Data.SBV.Trans: zeroExtend :: forall (n :: Nat) (m :: Nat) bv. (KnownNat n, BVIsNonZero n, SymVal (bv n), KnownNat m, BVIsNonZero m, SymVal (bv m), (n + 1) <= m, SIntegral (bv (m - n)), BVIsNonZero (m - n)) => SBV (bv n) -> SBV (bv m)
- Data.SBV.Trans.Control: class MonadIO m => ExtractIO m
+ Data.SBV.Trans.Control: class MonadIO m => ExtractIO (m :: Type -> Type)
- Data.SBV.Trans.Control: class Monad m => MonadQuery m
+ Data.SBV.Trans.Control: class Monad m => MonadQuery (m :: Type -> Type)
- Data.SBV.Trans.Control: data QueryT m a
+ Data.SBV.Trans.Control: data QueryT (m :: Type -> Type) a
- Data.SBV.Trans.Control: query :: ExtractIO m => QueryT m a -> SymbolicT m a
+ Data.SBV.Trans.Control: query :: forall (m :: Type -> Type) a. ExtractIO m => QueryT m a -> SymbolicT m a
- Data.SBV.Trans.Control: queryState :: (MonadQuery m, MonadTrans t, MonadQuery m', m ~ t m') => m State
+ Data.SBV.Trans.Control: queryState :: MonadQuery m => m State
- Documentation.SBV.Examples.BitPrecise.PEXT_PDEP: pdep :: forall n. (KnownNat n, BVIsNonZero n) => SWord n -> SWord n -> SWord n
+ Documentation.SBV.Examples.BitPrecise.PEXT_PDEP: pdep :: forall (n :: Nat). (KnownNat n, BVIsNonZero n) => SWord n -> SWord n -> SWord n
- Documentation.SBV.Examples.BitPrecise.PEXT_PDEP: pext :: forall n. (KnownNat n, BVIsNonZero n) => SWord n -> SWord n -> SWord n
+ Documentation.SBV.Examples.BitPrecise.PEXT_PDEP: pext :: forall (n :: Nat). (KnownNat n, BVIsNonZero n) => SWord n -> SWord n -> SWord n
- Documentation.SBV.Examples.Crypto.SHA: prepareMessage :: forall w. (Num w, ByteConverter w) => SHA w -> String -> [Block w]
+ Documentation.SBV.Examples.Crypto.SHA: prepareMessage :: (Num w, ByteConverter w) => SHA w -> String -> [Block w]
- Documentation.SBV.Examples.Existentials.Diophantine: basis :: forall proxy n. KnownNat n => proxy n -> Maybe Int -> [[SInteger]] -> IO [[Integer]]
+ Documentation.SBV.Examples.Existentials.Diophantine: basis :: forall proxy (n :: Nat). KnownNat n => proxy n -> Maybe Int -> [[SInteger]] -> IO [[Integer]]
- Documentation.SBV.Examples.Existentials.Diophantine: ldn :: forall proxy n. KnownNat n => proxy n -> Maybe Int -> [([Integer], Integer)] -> IO Solution
+ Documentation.SBV.Examples.Existentials.Diophantine: ldn :: forall proxy (n :: Nat). KnownNat n => proxy n -> Maybe Int -> [([Integer], Integer)] -> IO Solution
- Documentation.SBV.Examples.Puzzles.Murder: Person :: String -> f Integer -> f Location -> f Sex -> f Role -> Person f
+ Documentation.SBV.Examples.Puzzles.Murder: Person :: String -> f Integer -> f Location -> f Sex -> f Role -> Person (f :: Type -> Type)
- Documentation.SBV.Examples.Puzzles.Murder: [age] :: Person f -> f Integer
+ Documentation.SBV.Examples.Puzzles.Murder: [age] :: Person (f :: Type -> Type) -> f Integer
- Documentation.SBV.Examples.Puzzles.Murder: [location] :: Person f -> f Location
+ Documentation.SBV.Examples.Puzzles.Murder: [location] :: Person (f :: Type -> Type) -> f Location
- Documentation.SBV.Examples.Puzzles.Murder: [nm] :: Person f -> String
+ Documentation.SBV.Examples.Puzzles.Murder: [nm] :: Person (f :: Type -> Type) -> String
- Documentation.SBV.Examples.Puzzles.Murder: [role] :: Person f -> f Role
+ Documentation.SBV.Examples.Puzzles.Murder: [role] :: Person (f :: Type -> Type) -> f Role
- Documentation.SBV.Examples.Puzzles.Murder: [sex] :: Person f -> f Sex
+ Documentation.SBV.Examples.Puzzles.Murder: [sex] :: Person (f :: Type -> Type) -> f Sex
- Documentation.SBV.Examples.Puzzles.Murder: data Person f
+ Documentation.SBV.Examples.Puzzles.Murder: data Person (f :: Type -> Type)
- Documentation.SBV.Examples.Strings.SQLInjection: type M = StateT (SArray String String) (WriterT [SString] Symbolic)
+ Documentation.SBV.Examples.Strings.SQLInjection: type M = StateT SArray String String WriterT [SString] Symbolic
- Documentation.SBV.Examples.Transformers.SymbolicEval: [Var] :: String -> Term r
+ Documentation.SBV.Examples.Transformers.SymbolicEval: [Var] :: forall a. String -> Term a
- Documentation.SBV.Examples.Transformers.SymbolicEval: data Term :: Type -> Type
+ Documentation.SBV.Examples.Transformers.SymbolicEval: data Term a

Files

CHANGES.md view
@@ -1,7 +1,14 @@ * Hackage: <http://hackage.haskell.org/package/sbv> * GitHub:  <http://leventerkok.github.io/sbv/> -* Latest Hackage released version: 10.4, 2024-02-15+* Latest Hackage released version: 10.5, 2024-02-20++### Version 10.5, 2024-02-20++  * Export svFloatingPointAsSWord through Data.SBV.Internals++  * crackNum: if verbose, alert the user if surface value of a NaN doesn't match its calculated value+    due to the redundancy in NaN representations.  ### Version 10.4, 2024-02-15 
Data/SBV.hs view
@@ -502,9 +502,9 @@  -- | Show a value in detailed (cracked) form, if possible. -- This makes most sense with numbers, and especially floating-point types.-crack :: SBV a -> String-crack (SBV (SVal _ (Left cv))) | Just s <- CN.crackNum cv Nothing = s-crack (SBV sv)                                                    = show sv+crack :: Bool -> SBV a -> String+crack verb (SBV (SVal _ (Left cv))) | Just s <- CN.crackNum cv verb Nothing = s+crack _    (SBV sv)                                                         = show sv  -- Haddock section documentation {- $progIntro
Data/SBV/Core/Floating.hs view
@@ -28,6 +28,7 @@        , blastSFloat, blastSDouble,  blastSFloatingPoint        , sFloatAsComparableSWord32,  sDoubleAsComparableSWord64,  sFloatingPointAsComparableSWord        , sComparableSWord32AsSFloat, sComparableSWord64AsSDouble, sComparableSWordAsSFloatingPoint+       , svFloatingPointAsSWord        ) where  import Data.Bits (testBit)
Data/SBV/Internals.hs view
@@ -61,6 +61,9 @@   , sFloatAsComparableSWord32,  sDoubleAsComparableSWord64,  sFloatingPointAsComparableSWord   , sComparableSWord32AsSFloat, sComparableSWord64AsSDouble, sComparableSWordAsSFloatingPoint +  -- * Generalized floats+  , svFloatingPointAsSWord+   -- * lambdas and axioms   , lambda, lambdaStr, namedLambda, namedLambdaStr, constraint, constraintStr, Lambda(..), Constraint(..)   ) where@@ -74,7 +77,7 @@ import Data.SBV.Core.Model      (genLiteral, genFromCV, genMkSymVar, liftQRem, liftDMod) import Data.SBV.Core.Symbolic   (IStage(..), QueryContext(..), MonadQuery, addSValOptGoal, registerKind, VarContext(..), svToSV, mkNewState, UICodeKind(..)) -import Data.SBV.Core.Floating   ( sFloatAsComparableSWord32,  sDoubleAsComparableSWord64,  sFloatingPointAsComparableSWord)+import Data.SBV.Core.Floating   (sFloatAsComparableSWord32,  sDoubleAsComparableSWord64,  sFloatingPointAsComparableSWord, svFloatingPointAsSWord)  import qualified Data.SBV.Core.Floating as CF (sComparableSWord32AsSFloat, sComparableSWord64AsSDouble, sComparableSWordAsSFloatingPoint) 
Data/SBV/SMT/SMT.hs view
@@ -634,7 +634,7 @@  -- | Show a constant value, in the user-specified base shCV :: SMTConfig -> String -> CV -> String-shCV SMTConfig{printBase, crackNum, crackNumSurfaceVals} nm cv = cracked (sh printBase cv)+shCV SMTConfig{printBase, crackNum, verbose, crackNumSurfaceVals} nm cv = cracked (sh printBase cv)   where sh 2  = binS         sh 10 = show         sh 16 = hexS@@ -642,7 +642,7 @@          cracked def           | not crackNum = def-          | True         = case CN.crackNum cv (nm `lookup` crackNumSurfaceVals) of+          | True         = case CN.crackNum cv verbose (nm `lookup` crackNumSurfaceVals) of                              Nothing -> def                              Just cs -> def ++ "\n" ++ cs 
Data/SBV/Utils/CrackNum.hs view
@@ -35,31 +35,31 @@ -- | A class for cracking things deeper, if we know how. class CrackNum a where   -- | Convert an item to possibly bit-level description, if possible.-  crackNum :: a -> Maybe Integer -> Maybe String+  crackNum :: a -> Bool -> Maybe Integer -> Maybe String  -- | CVs are easy to crack instance CrackNum CV where-  crackNum cv mbIV = case kindOf cv of-                       -- Maybe one day we'll have a use for these, currently cracking them-                       -- any further seems overkill-                       KBool      {}  -> Nothing-                       KUnbounded {}  -> Nothing-                       KReal      {}  -> Nothing-                       KUserSort  {}  -> Nothing-                       KChar      {}  -> Nothing-                       KString    {}  -> Nothing-                       KList      {}  -> Nothing-                       KSet       {}  -> Nothing-                       KTuple     {}  -> Nothing-                       KMaybe     {}  -> Nothing-                       KEither    {}  -> Nothing-                       KRational  {}  -> Nothing+  crackNum cv verbose mbIV = case kindOf cv of+                               -- Maybe one day we'll have a use for these, currently cracking them+                               -- any further seems overkill+                               KBool      {}  -> Nothing+                               KUnbounded {}  -> Nothing+                               KReal      {}  -> Nothing+                               KUserSort  {}  -> Nothing+                               KChar      {}  -> Nothing+                               KString    {}  -> Nothing+                               KList      {}  -> Nothing+                               KSet       {}  -> Nothing+                               KTuple     {}  -> Nothing+                               KMaybe     {}  -> Nothing+                               KEither    {}  -> Nothing+                               KRational  {}  -> Nothing -                       -- Actual crackables-                       KFloat{}       -> Just $ let CFloat   f = cvVal cv in float mbIV f-                       KDouble{}      -> Just $ let CDouble  d = cvVal cv in float mbIV d-                       KFP{}          -> Just $ let CFP      f = cvVal cv in float mbIV f-                       KBounded sg sz -> Just $ let CInteger i = cvVal cv in int   sg sz i+                               -- Actual crackables+                               KFloat{}       -> Just $ let CFloat   f = cvVal cv in float verbose mbIV f+                               KDouble{}      -> Just $ let CDouble  d = cvVal cv in float verbose mbIV d+                               KFP{}          -> Just $ let CFP      f = cvVal cv in float verbose mbIV f+                               KBounded sg sz -> Just $ let CInteger i = cvVal cv in int   sg sz i  -- How far off the screen we want displayed? Somewhat experimentally found. tab :: String@@ -229,8 +229,8 @@  -- | Show a float in detail. mbSurface is the integer equivalent if this is a NaN; so we -- can represent it faithfully to the original given. Used by crackNum executable.-float :: HasFloatData a => Maybe Integer -> a -> String-float mbSurface f = intercalate "\n" $ ruler ++ legend : info+float :: HasFloatData a => Bool -> Maybe Integer -> a -> String+float verbose mbSurface f = intercalate "\n" $ ruler ++ legend : info    where fd@FloatData{prec, eb, sb, bits = bitsAsStored, fpKind, fpVals} = getFloatData f           nanKind = case fpKind of@@ -240,9 +240,9 @@                      Subnormal -> False                      Normal    -> False -         (nanClassifier, bits)-           | nanKind, Just i <- mbSurface = (extraClassifier i,  i)-           | True                         = ("", bitsAsStored)+         (nanClassifier, bits, nanChanged)+           | nanKind, Just i <- mbSurface = (extraClassifier i,  i,            i /= bitsAsStored)+           | True                         = ("",                 bitsAsStored, False)           -- Is this surface representation a signaling NaN or a quiet nan?          -- The test is that the tip bit of the significand is high: If so, quiet. If top bit is low, then signaling.@@ -262,6 +262,9 @@          allBits :: [Bool]          allBits = [bits `testBit` i | i <- reverse [0 .. eb + sb - 1]] +         storedBits :: [Bool]+         storedBits = [bitsAsStored `testBit` i | i <- reverse [0 .. eb + sb - 1]]+          flatHex = concatMap mkHex (split (split4 (eb + sb)) allBits)          sign    = bits `testBit` (eb+sb-1) @@ -269,12 +272,15 @@           esInfo = "Stored: " ++ show storedExponent ++ ", Bias: " ++ show bias +         chunks bs = unwords [concatMap (\b -> if b then "1" else "0") is | is <- split splits bs]+          isSubNormal = case fpKind of                          Subnormal -> True                          _         -> False -         info =   [ "   Binary layout: " ++ unwords [concatMap (\b -> if b then "1" else "0") is | is <- split splits allBits]-                  , "      Hex layout: " ++ unwords (split (split4 (length flatHex)) flatHex)+         info =   [ "   Binary layout: " ++ chunks allBits]+               ++ [ " Calculated bits: " ++ chunks storedBits ++ " (Surface NaN value differs from calculated)" | verbose && nanChanged]+               ++ [ "      Hex layout: " ++ unwords (split (split4 (length flatHex)) flatHex)                   , "       Precision: " ++ prec                   , "            Sign: " ++ if sign then "Negative" else "Positive"                   ]
SBVTestSuite/GoldFiles/allSat8.gold view
@@ -61,4 +61,4 @@ *** NB. If this is a use case you'd like SBV to support, please get in touch!  CallStack (from HasCallStack):-  error, called at ./Data/SBV/Control/Utils.hs:1660:57 in sbv-10.4-inplace:Data.SBV.Control.Utils+  error, called at ./Data/SBV/Control/Utils.hs:1660:57 in sbv-10.5-inplace:Data.SBV.Control.Utils
SBVTestSuite/GoldFiles/nested1.gold view
@@ -11,4 +11,4 @@ *** See https://github.com/LeventErkok/sbv/issues/71 for several examples.  CallStack (from HasCallStack):-  error, called at ./Data/SBV/Core/Symbolic.hs:1937:48 in sbv-10.4-inplace:Data.SBV.Core.Symbolic+  error, called at ./Data/SBV/Core/Symbolic.hs:1937:48 in sbv-10.5-inplace:Data.SBV.Core.Symbolic
SBVTestSuite/GoldFiles/nested2.gold view
@@ -11,4 +11,4 @@ *** See https://github.com/LeventErkok/sbv/issues/71 for several examples.  CallStack (from HasCallStack):-  error, called at ./Data/SBV/Core/Symbolic.hs:1937:48 in sbv-10.4-inplace:Data.SBV.Core.Symbolic+  error, called at ./Data/SBV/Core/Symbolic.hs:1937:48 in sbv-10.5-inplace:Data.SBV.Core.Symbolic
SBVTestSuite/GoldFiles/nested3.gold view
@@ -37,4 +37,4 @@ *** See https://github.com/LeventErkok/sbv/issues/71 for several examples.  CallStack (from HasCallStack):-  error, called at ./Data/SBV/Core/Symbolic.hs:1937:48 in sbv-10.4-inplace:Data.SBV.Core.Symbolic+  error, called at ./Data/SBV/Core/Symbolic.hs:1937:48 in sbv-10.5-inplace:Data.SBV.Core.Symbolic
SBVTestSuite/GoldFiles/nested4.gold view
@@ -11,4 +11,4 @@ *** See https://github.com/LeventErkok/sbv/issues/71 for several examples.  CallStack (from HasCallStack):-  error, called at ./Data/SBV/Core/Symbolic.hs:1937:48 in sbv-10.4-inplace:Data.SBV.Core.Symbolic+  error, called at ./Data/SBV/Core/Symbolic.hs:1937:48 in sbv-10.5-inplace:Data.SBV.Core.Symbolic
sbv.cabal view
@@ -1,7 +1,7 @@ Cabal-Version: 2.2  Name        : sbv-Version     : 10.4+Version     : 10.5 Category    : Formal Methods, Theorem Provers, Bit vectors, Symbolic Computation, Math, SMT Synopsis    : SMT Based Verification: Symbolic Haskell theorem prover using SMT solving. Description : Express properties about Haskell programs and automatically prove them using SMT