Copyright | (c) Sirui Lu 2021-2024 |
---|---|
License | BSD-3-Clause (see the LICENSE file) |
Maintainer | siruilu@cs.washington.edu |
Stability | Experimental |
Portability | GHC only |
Safe Haskell | None |
Language | Haskell2010 |
Grisette.SymPrim
Description
Synopsis
- data IntN (n :: Nat)
- type IntN8 = IntN 8
- type IntN16 = IntN 16
- type IntN32 = IntN 32
- type IntN64 = IntN 64
- data WordN (n :: Nat)
- type WordN8 = WordN 8
- type WordN16 = WordN 16
- type WordN32 = WordN 32
- type WordN64 = WordN 64
- data SomeBV (bv :: Nat -> Type) where
- type SomeBVKey (bv :: Nat -> Type) = AsKey (SomeBV bv)
- data SomeBVException
- pattern SomeIntN :: forall (n :: Nat). () => (KnownNat n, 1 <= n) => IntN n -> SomeIntN
- type SomeIntN = SomeBV IntN
- pattern SomeWordN :: forall (n :: Nat). () => (KnownNat n, 1 <= n) => WordN n -> SomeWordN
- type SomeWordN = SomeBV WordN
- conBV :: forall (cbv :: Natural -> Type) (bv :: Natural -> Type). (forall (n :: Nat). (KnownNat n, 1 <= n) => Solvable (cbv n) (bv n), Solvable (cbv 1) (bv 1)) => SomeBV cbv -> SomeBV bv
- conBVView :: forall (cbv :: Natural -> Type) (bv :: Natural -> Type). (forall (n :: Nat). (KnownNat n, 1 <= n) => Solvable (cbv n) (bv n), Solvable (cbv 1) (bv 1)) => SomeBV bv -> Maybe (SomeBV cbv)
- pattern ConBV :: (forall (n :: Nat). (KnownNat n, 1 <= n) => Solvable (cbv n) (bv n), Solvable (cbv 1) (bv 1)) => SomeBV cbv -> SomeBV bv
- symBV :: forall (cbv :: Natural -> Type) (bv :: Natural -> Type). (forall (n :: Nat). (KnownNat n, 1 <= n) => Solvable (cbv n) (bv n), Solvable (cbv 1) (bv 1)) => Int -> Symbol -> SomeBV bv
- ssymBV :: forall (cbv :: Natural -> Type) (bv :: Natural -> Type). (forall (n :: Nat). (KnownNat n, 1 <= n) => Solvable (cbv n) (bv n), Solvable (cbv 1) (bv 1)) => Int -> Identifier -> SomeBV bv
- isymBV :: forall (cbv :: Natural -> Type) (bv :: Natural -> Type). (forall (n :: Nat). (KnownNat n, 1 <= n) => Solvable (cbv n) (bv n), Solvable (cbv 1) (bv 1)) => Int -> Identifier -> Int -> SomeBV bv
- arbitraryBV :: forall (bv :: Nat -> Type). (forall (n :: Nat). (KnownNat n, 1 <= n) => Arbitrary (bv n)) => Int -> Gen (SomeBV bv)
- unsafeSomeBV :: Int -> (forall (proxy :: Nat -> Type) (n :: Nat). (KnownNat n, 1 <= n) => proxy n -> bv n) -> SomeBV bv
- unarySomeBV :: (forall (n :: Nat). (KnownNat n, 1 <= n) => bv n -> r) -> (SomeBVLit -> r) -> SomeBV bv -> r
- unarySomeBVR1 :: (forall (n :: Nat). (KnownNat n, 1 <= n) => bv n -> bv n) -> (SomeBVLit -> SomeBVLit) -> SomeBV bv -> SomeBV bv
- binSomeBV :: (forall (n :: Nat). (KnownNat n, 1 <= n) => Num (bv n), MaySomeBV bv) => (forall (n :: Nat). (KnownNat n, 1 <= n) => bv n -> bv n -> r) -> (SomeBVLit -> SomeBVLit -> r) -> SomeBV bv -> SomeBV bv -> r
- binSomeBVR1 :: (forall (n :: Nat). (KnownNat n, 1 <= n) => Num (bv n), MaySomeBV bv) => (forall (n :: Nat). (KnownNat n, 1 <= n) => bv n -> bv n -> bv n) -> (SomeBVLit -> SomeBVLit -> SomeBVLit) -> SomeBV bv -> SomeBV bv -> SomeBV bv
- binSomeBVR2 :: (forall (n :: Nat). (KnownNat n, 1 <= n) => Num (bv n), MaySomeBV bv) => (forall (n :: Nat). (KnownNat n, 1 <= n) => bv n -> bv n -> (bv n, bv n)) -> (SomeBVLit -> SomeBVLit -> (SomeBVLit, SomeBVLit)) -> SomeBV bv -> SomeBV bv -> (SomeBV bv, SomeBV bv)
- binSomeBVSafe :: (MonadError (Either SomeBVException e) m, TryMerge m, Mergeable e, Mergeable r, forall (n :: Nat). (KnownNat n, 1 <= n) => Num (bv n), MaySomeBV bv) => (forall (n :: Nat). (KnownNat n, 1 <= n) => bv n -> bv n -> ExceptT e m r) -> (SomeBVLit -> SomeBVLit -> ExceptT (Either SomeBVException e) m r) -> SomeBV bv -> SomeBV bv -> m r
- binSomeBVSafeR1 :: (MonadError (Either SomeBVException e) m, TryMerge m, Mergeable e, forall (n :: Nat). (KnownNat n, 1 <= n) => Mergeable (bv n), forall (n :: Nat). (KnownNat n, 1 <= n) => Num (bv n), MaySomeBV bv) => (forall (n :: Nat). (KnownNat n, 1 <= n) => bv n -> bv n -> ExceptT e m (bv n)) -> (SomeBVLit -> SomeBVLit -> ExceptT (Either SomeBVException e) m SomeBVLit) -> SomeBV bv -> SomeBV bv -> m (SomeBV bv)
- binSomeBVSafeR2 :: (MonadError (Either SomeBVException e) m, TryMerge m, Mergeable e, forall (n :: Nat). (KnownNat n, 1 <= n) => Mergeable (bv n), forall (n :: Nat). (KnownNat n, 1 <= n) => Num (bv n), MaySomeBV bv) => (forall (n :: Nat). (KnownNat n, 1 <= n) => bv n -> bv n -> ExceptT e m (bv n, bv n)) -> (SomeBVLit -> SomeBVLit -> ExceptT (Either SomeBVException e) m (SomeBVLit, SomeBVLit)) -> SomeBV bv -> SomeBV bv -> m (SomeBV bv, SomeBV bv)
- type ValidFP (eb :: Nat) (sb :: Nat) = ValidFloat eb sb
- data FP (eb :: Nat) (sb :: Nat)
- type FP16 = FP 5 11
- type FP32 = FP 8 24
- type FP64 = FP 11 53
- withValidFPProofs :: forall (eb :: Nat) (sb :: Nat) r. ValidFP eb sb => ((KnownNat (eb + sb), BVIsNonZero (eb + sb), 1 <= (eb + sb), 1 <= eb, 1 <= sb) => r) -> r
- data FPRoundingMode
- allFPRoundingMode :: [FPRoundingMode]
- data AlgReal where
- AlgExactRational :: Rational -> AlgReal
- AlgInexactRational :: Rational -> AlgReal
- AlgPolyRoot :: Integer -> AlgRealPoly -> Maybe String -> AlgReal
- AlgInterval :: RealPoint -> RealPoint -> AlgReal
- newtype AlgRealPoly = AlgRealPoly [(Integer, Integer)]
- data RealPoint
- data UnsupportedAlgRealOperation = UnsupportedAlgRealOperation {}
- data a =-> b = TabularFun {
- funcTable :: [(a, b)]
- defaultFuncValue :: b
- data a --> b
- (-->) :: (SupportedNonFuncPrim ca, SupportedPrim cb, LinkedRep cb sb) => TypedConstantSymbol ca -> sb -> ca --> cb
- newtype SymBool = SymBool (Term Bool)
- type SymBoolKey = AsKey SymBool
- newtype SymInteger = SymInteger (Term Integer)
- type SymIntegerKey = AsKey SymInteger
- newtype SymWordN (n :: Nat) = SymWordN (Term (WordN n))
- type SymWordNKey (n :: Nat) = AsKey (SymWordN n)
- type SymWordN8 = SymWordN 8
- type SymWordN8Key = SymWordNKey 8
- type SymWordN16 = SymWordN 16
- type SymWordN16Key = SymWordNKey 16
- type SymWordN32 = SymWordN 32
- type SymWordN32Key = SymWordNKey 32
- type SymWordN64 = SymWordN 64
- type SymWordN64Key = SymWordNKey 64
- newtype SymIntN (n :: Nat) = SymIntN (Term (IntN n))
- type SymIntNKey (n :: Nat) = AsKey (SymIntN n)
- type SymIntN8 = SymIntN 8
- type SymIntN8Key = SymIntNKey 8
- type SymIntN16 = SymIntN 16
- type SymIntN16Key = SymIntNKey 16
- type SymIntN32 = SymIntN 32
- type SymIntN32Key = SymIntNKey 32
- type SymIntN64 = SymIntN 64
- type SymIntN64Key = SymIntNKey 64
- type SomeSymIntN = SomeBV SymIntN
- type SomeSymIntNKey = SomeBVKey SymIntN
- type SomeSymWordN = SomeBV SymWordN
- type SomeSymWordNKey = SomeBVKey SymWordN
- pattern SomeSymIntN :: forall (n :: Nat). () => (KnownNat n, 1 <= n) => SymIntN n -> SomeSymIntN
- pattern SomeSymWordN :: forall (n :: Nat). () => (KnownNat n, 1 <= n) => SymWordN n -> SomeSymWordN
- pattern SomeSymIntNKey :: forall (n :: Nat). () => (KnownNat n, 1 <= n) => SymIntN n -> SomeSymIntNKey
- pattern SomeSymWordNKey :: forall (n :: Nat). () => (KnownNat n, 1 <= n) => SymWordN n -> SomeSymWordNKey
- newtype SymFP (eb :: Nat) (sb :: Nat) = SymFP (Term (FP eb sb))
- type SymFPKey (eb :: Nat) (sb :: Nat) = AsKey (SymFP eb sb)
- newtype SymFPRoundingMode = SymFPRoundingMode (Term FPRoundingMode)
- type SymFPRoundingModeKey = AsKey SymFPRoundingMode
- type SymFP16 = SymFP 5 11
- type SymFP16Key = SymFPKey 5 11
- type SymFP32 = SymFP 8 24
- type SymFP32Key = SymFPKey 8 24
- type SymFP64 = SymFP 11 53
- type SymFP64Key = SymFPKey 11 53
- newtype SymAlgReal = SymAlgReal (Term AlgReal)
- type SymAlgRealKey = AsKey SymAlgReal
- data sa =~> sb where
- SymTabularFun :: forall ca sa cb sb. (LinkedRep ca sa, LinkedRep cb sb, SupportedPrim (ca =-> cb), SupportedNonFuncPrim ca) => Term (ca =-> cb) -> sa =~> sb
- data sa -~> sb where
- SymGeneralFun :: forall ca sa cb sb. (LinkedRep ca sa, LinkedRep cb sb, SupportedPrim (ca --> cb), SupportedNonFuncPrim ca) => Term (ca --> cb) -> sa -~> sb
- type Prim a = (Show a, Binary a, Serial a, Serialize a, NFData a, Eq a, EvalSym a, ExtractSym a, Mergeable a, PPrint a, SubstSym a, SymEq a, SymOrd a, AllSyms a, KeyEq a, KeyHashable a, Lift a, Typeable a)
- type SymPrim a = (Prim a, ITEOp a, GenSymSimple a a)
- type BasicSymPrim a = (SymPrim a, SimpleMergeable a, GenSymSimple () a, Solvable (ConType a) a, ConRep a, LinkedRep (ConType a) a, ToCon a (ConType a), ToSym (ConType a) a, Apply a, a ~ FunType a, SupportedNonFuncPrim (ConType a))
- forallSet :: ConstantSymbolSet -> SymBool -> SymBool
- forallSym :: (HasCallStack, ExtractSym a) => a -> SymBool -> SymBool
- forallFresh :: (HasCallStack, ExtractSym v, MonadFresh m, GenSym spec v, TryMerge m) => spec -> (v -> FreshT Union SymBool) -> m SymBool
- existsSet :: ConstantSymbolSet -> SymBool -> SymBool
- existsSym :: (HasCallStack, ExtractSym a) => a -> SymBool -> SymBool
- existsFresh :: (HasCallStack, ExtractSym v, MonadFresh m, GenSym spec v, TryMerge m) => spec -> (v -> FreshT Union SymBool) -> m SymBool
- class (Lift t, NFData t, Typeable t, SupportedPrimConstraint t, SBVRep t) => SupportedPrim t
- class SupportedPrim con => SymRep con where
- type SymType con
- class ConRep sym where
- type ConType sym
- class (ConRep sym, SymRep con, sym ~ SymType con, con ~ ConType sym) => LinkedRep con sym | con -> sym, sym -> con where
- underlyingTerm :: sym -> Term con
- wrapTerm :: Term con -> sym
- data SomeSym where
- class AllSyms a where
- class (forall a. AllSyms a => AllSyms (f a)) => AllSyms1 (f :: Type -> Type) where
- liftAllSymsS :: (a -> [SomeSym] -> [SomeSym]) -> f a -> [SomeSym] -> [SomeSym]
- allSymsS1 :: (AllSyms1 f, AllSyms a) => f a -> [SomeSym] -> [SomeSym]
- class (forall a. AllSyms a => AllSyms1 (f a)) => AllSyms2 (f :: Type -> Type -> Type) where
- allSymsS2 :: (AllSyms2 f, AllSyms a, AllSyms b) => f a b -> [SomeSym] -> [SomeSym]
- allSymsSize :: AllSyms a => a -> Int
- symSize :: LinkedRep con sym => sym -> Int
- symsSize :: LinkedRep con sym => [sym] -> Int
- data family AllSymsArgs arity a
- class GAllSyms arity (f :: Type -> Type) where
- gallSymsS :: AllSymsArgs arity a -> f a -> [SomeSym] -> [SomeSym]
- genericAllSymsS :: (Generic a, GAllSyms Arity0 (Rep a)) => a -> [SomeSym] -> [SomeSym]
- genericLiftAllSymsS :: (Generic1 f, GAllSyms Arity1 (Rep1 f)) => (a -> [SomeSym] -> [SomeSym]) -> f a -> [SomeSym] -> [SomeSym]
- data SymbolKind
- class IsSymbolKind (knd :: SymbolKind) where
- type SymbolKindConstraint (knd :: SymbolKind) :: Type -> Constraint
- decideSymbolKind :: Either (knd :~~: 'ConstantKind) (knd :~~: 'AnyKind)
- withSymbolKindConstraint :: TypedSymbol knd t -> (SymbolKindConstraint knd t => a) -> a
- data TypedSymbol (knd :: SymbolKind) t where
- TypedSymbol :: forall t (knd :: SymbolKind). (SupportedPrim t, SymbolKindConstraint knd t, IsSymbolKind knd) => {..} -> TypedSymbol knd t
- typedAnySymbol :: SupportedPrim t => Symbol -> TypedSymbol 'AnyKind t
- type TypedAnySymbol = TypedSymbol 'AnyKind
- typedConstantSymbol :: SupportedNonFuncPrim t => Symbol -> TypedSymbol 'ConstantKind t
- type TypedConstantSymbol = TypedSymbol 'ConstantKind
- data SomeTypedSymbol (knd :: SymbolKind) where
- SomeTypedSymbol :: forall (knd :: SymbolKind) t. TypedSymbol knd t -> SomeTypedSymbol knd
- type SomeTypedAnySymbol = SomeTypedSymbol 'AnyKind
- type SomeTypedConstantSymbol = SomeTypedSymbol 'ConstantKind
- data SymbolSet (knd :: SymbolKind)
- type AnySymbolSet = SymbolSet 'AnyKind
- type ConstantSymbolSet = SymbolSet 'ConstantKind
- data Model
- data ModelValuePair t = (TypedAnySymbol t) ::= t
- data ModelSymPair ct st where
- (:=) :: forall ct st. LinkedRep ct st => st -> ct -> ModelSymPair ct st
- data Term t
- data SomeTerm where
- SomeTerm :: forall a. SupportedPrim a => Term a -> SomeTerm
- termSize :: Term a -> Int
- someTermSize :: SomeTerm -> Int
- termsSize :: [Term a] -> Int
- someTermsSize :: [SomeTerm] -> Int
- pattern SupportedTerm :: () => SupportedPrim t => Term t
- pattern SupportedTypedSymbol :: () => (SupportedPrim t, SymbolKindConstraint k t, IsSymbolKind k) => TypedSymbol k t
- pattern SupportedConstantTypedSymbol :: () => (SupportedPrim t, SymbolKindConstraint k t, IsSymbolKind k, k ~ 'ConstantKind) => TypedSymbol k t
- pattern ConTerm :: () => SupportedPrim t => t -> Term t
- pattern SymTerm :: () => SupportedPrim t => TypedSymbol 'AnyKind t -> Term t
- pattern ForallTerm :: forall r t. () => (r ~ Bool, SupportedNonFuncPrim t) => TypedSymbol 'ConstantKind t -> Term Bool -> Term r
- pattern ExistsTerm :: forall r t. () => (r ~ Bool, SupportedNonFuncPrim t) => TypedSymbol 'ConstantKind t -> Term Bool -> Term r
- pattern NotTerm :: () => r ~ Bool => Term Bool -> Term r
- pattern OrTerm :: () => r ~ Bool => Term Bool -> Term Bool -> Term r
- pattern AndTerm :: () => r ~ Bool => Term Bool -> Term Bool -> Term r
- pattern EqTerm :: forall r t. () => (r ~ Bool, SupportedPrim t) => Term t -> Term t -> Term r
- pattern DistinctTerm :: forall r t. () => (r ~ Bool, SupportedPrim t) => NonEmpty (Term t) -> Term r
- pattern ITETerm :: () => SupportedPrim t => Term Bool -> Term t -> Term t -> Term t
- pattern AddNumTerm :: () => (SupportedPrim t, PEvalNumTerm t) => Term t -> Term t -> Term t
- pattern NegNumTerm :: () => (SupportedPrim t, PEvalNumTerm t) => Term t -> Term t
- pattern MulNumTerm :: () => (SupportedPrim t, PEvalNumTerm t) => Term t -> Term t -> Term t
- pattern AbsNumTerm :: () => (SupportedPrim t, PEvalNumTerm t) => Term t -> Term t
- pattern SignumNumTerm :: () => (SupportedPrim t, PEvalNumTerm t) => Term t -> Term t
- pattern LtOrdTerm :: forall r t. () => (r ~ Bool, SupportedPrim t, PEvalOrdTerm t) => Term t -> Term t -> Term r
- pattern LeOrdTerm :: forall r t. () => (r ~ Bool, SupportedPrim t, PEvalOrdTerm t) => Term t -> Term t -> Term r
- pattern AndBitsTerm :: () => (SupportedPrim t, PEvalBitwiseTerm t) => Term t -> Term t -> Term t
- pattern OrBitsTerm :: () => (SupportedPrim t, PEvalBitwiseTerm t) => Term t -> Term t -> Term t
- pattern XorBitsTerm :: () => (SupportedPrim t, PEvalBitwiseTerm t) => Term t -> Term t -> Term t
- pattern ComplementBitsTerm :: () => (SupportedPrim t, PEvalBitwiseTerm t) => Term t -> Term t
- pattern ShiftLeftTerm :: () => (SupportedPrim t, PEvalShiftTerm t) => Term t -> Term t -> Term t
- pattern RotateLeftTerm :: () => (SupportedPrim t, PEvalRotateTerm t) => Term t -> Term t -> Term t
- pattern ShiftRightTerm :: () => (SupportedPrim t, PEvalShiftTerm t) => Term t -> Term t -> Term t
- pattern RotateRightTerm :: () => (SupportedPrim t, PEvalRotateTerm t) => Term t -> Term t -> Term t
- pattern BitCastTerm :: forall b a. () => (SupportedPrim a, SupportedPrim b, PEvalBitCastTerm a b) => Term a -> Term b
- pattern BitCastOrTerm :: () => (SupportedPrim a, SupportedPrim b, PEvalBitCastOrTerm a b) => Term b -> Term a -> Term b
- pattern BVConcatTerm :: forall ret bv (l :: Nat) (r :: Nat). () => (PEvalBVTerm bv, KnownNat l, KnownNat r, KnownNat (l + r), 1 <= l, 1 <= r, 1 <= (l + r), SupportedPrim (bv l), SupportedPrim (bv r), SupportedPrim (bv (l + r)), ret ~ bv (l + r)) => Term (bv l) -> Term (bv r) -> Term ret
- pattern BVSelectTerm :: forall ret bv (w :: Nat) (n :: Nat) (ix :: Nat). () => (PEvalBVTerm bv, KnownNat n, KnownNat ix, KnownNat w, 1 <= n, 1 <= w, (ix + w) <= n, SupportedPrim (bv n), SupportedPrim (bv w), ret ~ bv w) => Proxy ix -> Proxy w -> Term (bv n) -> Term ret
- pattern BVExtendTerm :: forall ret bv (l :: Nat) (r :: Nat). () => (PEvalBVTerm bv, KnownNat l, KnownNat r, 1 <= l, 1 <= r, l <= r, SupportedPrim (bv l), SupportedPrim (bv r), ret ~ bv r) => Bool -> Proxy r -> Term (bv l) -> Term ret
- pattern ApplyTerm :: forall b f a. () => (PEvalApplyTerm f a b, SupportedPrim f, SupportedPrim a, SupportedPrim b) => Term f -> Term a -> Term b
- pattern DivIntegralTerm :: () => (SupportedPrim t, PEvalDivModIntegralTerm t) => Term t -> Term t -> Term t
- pattern ModIntegralTerm :: () => (SupportedPrim t, PEvalDivModIntegralTerm t) => Term t -> Term t -> Term t
- pattern QuotIntegralTerm :: () => (SupportedPrim t, PEvalDivModIntegralTerm t) => Term t -> Term t -> Term t
- pattern RemIntegralTerm :: () => (SupportedPrim t, PEvalDivModIntegralTerm t) => Term t -> Term t -> Term t
- pattern FPTraitTerm :: forall r (eb :: Nat) (sb :: Nat) fp. () => (r ~ Bool, ValidFP eb sb, SupportedPrim (fp eb sb), PEvalFPTerm fp) => FPTrait -> Term (fp eb sb) -> Term r
- pattern FdivTerm :: () => (SupportedPrim t, PEvalFractionalTerm t) => Term t -> Term t -> Term t
- pattern RecipTerm :: () => (SupportedPrim t, PEvalFractionalTerm t) => Term t -> Term t
- pattern FloatingUnaryTerm :: () => (SupportedPrim t, PEvalFloatingTerm t) => FloatingUnaryOp -> Term t -> Term t
- pattern PowerTerm :: () => (SupportedPrim t, PEvalFloatingTerm t) => Term t -> Term t -> Term t
- pattern FPUnaryTerm :: forall ret fp (eb :: Nat) (sb :: Nat). () => (ret ~ fp eb sb, ValidFP eb sb, SupportedPrim (fp eb sb), PEvalFPTerm fp) => FPUnaryOp -> Term (fp eb sb) -> Term ret
- pattern FPBinaryTerm :: forall ret fp (eb :: Nat) (sb :: Nat). () => (ret ~ fp eb sb, ValidFP eb sb, SupportedPrim (fp eb sb), PEvalFPTerm fp) => FPBinaryOp -> Term (fp eb sb) -> Term (fp eb sb) -> Term ret
- pattern FPRoundingUnaryTerm :: forall ret fp (eb :: Nat) (sb :: Nat). () => (ret ~ fp eb sb, ValidFP eb sb, SupportedPrim (fp eb sb), PEvalFPTerm fp) => FPRoundingUnaryOp -> Term FPRoundingMode -> Term (fp eb sb) -> Term ret
- pattern FPRoundingBinaryTerm :: forall ret fp (eb :: Nat) (sb :: Nat). () => (ret ~ fp eb sb, ValidFP eb sb, SupportedPrim (fp eb sb), PEvalFPTerm fp) => FPRoundingBinaryOp -> Term FPRoundingMode -> Term (fp eb sb) -> Term (fp eb sb) -> Term ret
- pattern FPFMATerm :: forall ret fp (eb :: Nat) (sb :: Nat). () => (ret ~ fp eb sb, ValidFP eb sb, SupportedPrim (fp eb sb), PEvalFPTerm fp) => Term FPRoundingMode -> Term (fp eb sb) -> Term (fp eb sb) -> Term (fp eb sb) -> Term ret
- pattern FromIntegralTerm :: forall b a. () => (PEvalFromIntegralTerm a b, SupportedPrim a, SupportedPrim b) => Term a -> Term b
- pattern FromFPOrTerm :: forall a (eb :: Nat) (sb :: Nat). () => (PEvalIEEEFPConvertibleTerm a, ValidFP eb sb, SupportedPrim a) => Term a -> Term FPRoundingMode -> Term (FP eb sb) -> Term a
- pattern ToFPTerm :: forall ret (eb :: Nat) (sb :: Nat) a. () => (PEvalIEEEFPConvertibleTerm a, ValidFP eb sb, SupportedPrim (FP eb sb), SupportedPrim a, ret ~ FP eb sb) => Term FPRoundingMode -> Term a -> Proxy eb -> Proxy sb -> Term ret
- pattern SubTerms :: [SomeTerm] -> Term a
Documentation
Grisette introduces new primitive types:
: signed bit vectors of bit widthIntN
nn
.
: unsigned bit vectors of bit widthWordN
nn
.
: IEEE-754 floating point numbers withFP
eb sbeb
exponent bits andsb
significand bits.AlgReal
: algebraic real numbers. Can represent rational numbers. If come from solver's response, it may also represented by roots of polynomials or intervals.
: functions represented as a table for the input-output relations.Bool
=->
Bool
: functions represented as a formula over some bound variables.Bool
-->
Bool
We also provide symbolic counterparts for these types, along with the
basic types Bool
and Integer
. These symbolic types can be directly
translated to constraints in the SMT solver.
SymBool
(Bool
, symbolic Booleans)SymInteger
(Integer
, symbolic unbounded integers)
(SymIntN
n
, symbolic signed bit vectors of bit widthIntN
nn
)
(SymWordN
n
, symbolic unsigned bit vectors of bit widthWordN
nn
)
(SymFP
eb sb
, symbolic IEEE-754 floating point numbers withFP
eb sbeb
exponent bits andsb
significand bits)SymAlgReal
: symbolic algebraic real numbers.
(SymBool
=~>
SymBool
, symbolic functions, uninterpreted or represented as a table for the input-output relations).Bool
=->
Bool
(SymBool
-~>
SymBool
, symbolic functions, uninterpreted or represented as a formula over some bound variables).Bool
-->
Bool
This module provides an operation to extract all primitive values from a
symbolic value, with AllSyms
. The module also provides the
representation for symbols (
), symbol sets
(TypedSymbol
), and models (SymbolSet
). They are useful when working
with Model
EvalSym
, ExtractSym
, and
SubstSym
.
Extended types
Size-tagged bit-vector types
Signed bit vector type. Indexed with the bit width. Signedness affects the semantics of the operations, including comparison/extension, etc.
>>>
3 + 5 :: IntN 5
0b01000>>>
sizedBVConcat (0b101 :: IntN 3) (0b110 :: IntN 3)
0b101110>>>
sizedBVExt (Proxy @6) (0b101 :: IntN 3)
0b111101>>>
(8 :: IntN 4) < (7 :: IntN 4)
True
More operations are available. Please refer to Grisette.Core for more information.
Instances
data WordN (n :: Nat) Source #
Unsigned bit vector type. Indexed with the bit width. Signedness affect the semantics of the operations, including comparison/extension, etc.
>>>
3 + 5 :: WordN 5
0b01000>>>
sizedBVConcat (0b101 :: WordN 3) (0b110 :: WordN 3)
0b101110>>>
sizedBVExt (Proxy @6) (0b101 :: WordN 3)
0b000101>>>
(8 :: WordN 4) < (7 :: WordN 4)
False
More operations are available. Please refer to Grisette.Core for more information.
Instances
SizedBV WordN Source # | |||||
Defined in Grisette.Internal.SymPrim.BV Methods sizedBVConcat :: forall (l :: Nat) (r :: Nat). (KnownNat l, KnownNat r, 1 <= l, 1 <= r) => WordN l -> WordN r -> WordN (l + r) Source # sizedBVZext :: forall (l :: Nat) (r :: Nat) proxy. (KnownNat l, KnownNat r, 1 <= l, KnownNat r, l <= r) => proxy r -> WordN l -> WordN r Source # sizedBVSext :: forall (l :: Nat) (r :: Nat) proxy. (KnownNat l, KnownNat r, 1 <= l, KnownNat r, l <= r) => proxy r -> WordN l -> WordN r Source # sizedBVExt :: forall (l :: Nat) (r :: Nat) proxy. (KnownNat l, KnownNat r, 1 <= l, KnownNat r, l <= r) => proxy r -> WordN l -> WordN r Source # sizedBVSelect :: forall (n :: Nat) (ix :: Nat) (w :: Nat) p q. (KnownNat n, KnownNat ix, KnownNat w, 1 <= n, 1 <= w, (ix + w) <= n) => p ix -> q w -> WordN n -> WordN w Source # sizedBVFromIntegral :: forall a (n :: Nat). (Integral a, KnownNat n, 1 <= n) => a -> WordN n Source # | |||||
FromBits SomeWordN Source # | |||||
ConvertibleBound WordN Source # | |||||
Defined in Grisette.Internal.SymPrim.FP Methods convertibleLowerBound :: forall (eb :: Nat) (sb :: Nat) (n :: Nat). (ValidFP eb sb, KnownNat n, 1 <= n) => WordN n -> FPRoundingMode -> FP eb sb Source # convertibleUpperBound :: forall (eb :: Nat) (sb :: Nat) (n :: Nat). (ValidFP eb sb, KnownNat n, 1 <= n) => WordN n -> FPRoundingMode -> FP eb sb Source # | |||||
PEvalBVTerm WordN Source # | |||||
Defined in Grisette.Internal.SymPrim.Prim.Internal.Term Methods pevalBVConcatTerm :: forall (l :: Nat) (r :: Nat). (KnownNat l, KnownNat r, 1 <= l, 1 <= r) => Term (WordN l) -> Term (WordN r) -> Term (WordN (l + r)) Source # pevalBVExtendTerm :: forall (l :: Nat) (r :: Nat) proxy. (KnownNat l, KnownNat r, 1 <= l, 1 <= r, l <= r) => Bool -> proxy r -> Term (WordN l) -> Term (WordN r) Source # pevalBVSelectTerm :: forall (n :: Nat) (ix :: Nat) (w :: Nat) p q. (KnownNat n, KnownNat ix, KnownNat w, 1 <= n, 1 <= w, (ix + w) <= n) => p ix -> q w -> Term (WordN n) -> Term (WordN w) Source # sbvBVConcatTerm :: forall (l :: Nat) (r :: Nat) p1 p2. (KnownNat l, KnownNat r, 1 <= l, 1 <= r) => p1 l -> p2 r -> SBVType (WordN l) -> SBVType (WordN r) -> SBVType (WordN (l + r)) Source # sbvBVExtendTerm :: forall (l :: Nat) (r :: Nat) p1 p2. (KnownNat l, KnownNat r, 1 <= l, 1 <= r, l <= r) => p1 l -> p2 r -> Bool -> SBVType (WordN l) -> SBVType (WordN r) Source # sbvBVSelectTerm :: forall (ix :: Nat) (w :: Nat) (n :: Nat) p1 p2 p3. (KnownNat ix, KnownNat w, KnownNat n, 1 <= n, 1 <= w, (ix + w) <= n) => p1 ix -> p2 w -> p3 n -> SBVType (WordN n) -> SBVType (WordN w) Source # | |||||
BitCast WordN32 Float Source # | |||||
BitCast WordN64 Double Source # | |||||
BitCast Double WordN64 Source # | |||||
BitCast Float WordN32 Source # | |||||
UnifiedFiniteBits 'C SomeWordN Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedFiniteBits Methods withBaseFiniteBits :: (If (IsConMode 'C) (FiniteBits SomeWordN, FromBits SomeWordN) (SymFiniteBits SomeWordN) => r) -> r Source # | |||||
(KnownNat n, 1 <= n) => UnifiedBVImpl 'C WordN IntN n (WordN n) (IntN n) Source # | |||||
(KnownNat n, 1 <= n) => UnifiedFromIntegral 'C Integer (WordN n) Source # | |||||
(MonadError ArithException m, UnifiedBranching mode m, KnownNat n, 1 <= n) => UnifiedSafeDiv mode ArithException (WordN n) m Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedSafeDiv Methods withBaseSafeDiv :: (SafeDiv ArithException (WordN n) m => r) -> r Source # | |||||
(MonadError ArithException m, UnifiedBranching mode m, KnownNat n, 1 <= n) => UnifiedSafeLinearArith mode ArithException (WordN n) m Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedSafeLinearArith Methods withBaseSafeLinearArith :: (SafeLinearArith ArithException (WordN n) m => r) -> r Source # | |||||
(MonadError ArithException m, UnifiedBranching mode m, KnownNat n, 1 <= n) => UnifiedSafeSymRotate mode ArithException (WordN n) m Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedSafeSymRotate Methods withBaseSafeSymRotate :: (SafeSymRotate ArithException (WordN n) m => r) -> r Source # | |||||
(MonadError ArithException m, UnifiedBranching mode m, KnownNat n, 1 <= n) => UnifiedSafeSymShift mode ArithException (WordN n) m Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedSafeSymShift Methods withBaseSafeSymShift :: (SafeSymShift ArithException (WordN n) m => r) -> r Source # | |||||
(MonadError NotRepresentableFPError m, UnifiedBranching mode m, ValidFP eb sb, KnownNat n, 1 <= n) => UnifiedSafeFromFP mode NotRepresentableFPError (WordN n) (FP eb sb) FPRoundingMode m Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedSafeFromFP Methods withBaseSafeFromFP :: (SafeFromFP NotRepresentableFPError (WordN n) (FP eb sb) FPRoundingMode m => r) -> r Source # | |||||
(MonadError NotRepresentableFPError m, UnifiedBranching mode m, ValidFP eb sb, KnownNat n, 1 <= n, n ~ (eb + sb)) => UnifiedSafeBitCast mode NotRepresentableFPError (FP eb sb) (WordN n) m Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedSafeBitCast Methods withBaseSafeBitCast :: (SafeBitCast NotRepresentableFPError (FP eb sb) (WordN n) m => r) -> r Source # | |||||
BitCast Int16 (WordN 16) Source # | |||||
BitCast Int32 (WordN 32) Source # | |||||
BitCast Int64 (WordN 64) Source # | |||||
BitCast Int8 (WordN 8) Source # | |||||
BitCast Word16 (WordN 16) Source # | |||||
BitCast Word32 (WordN 32) Source # | |||||
BitCast Word64 (WordN 64) Source # | |||||
BitCast Word8 (WordN 8) Source # | |||||
BitCast Bool (WordN 1) Source # | |||||
(DecideEvalMode mode, KnownNat a, 1 <= a) => UnifiedSymEq mode (WordN a) Source # | |||||
(DecideEvalMode mode, KnownNat a, 1 <= a) => UnifiedSymOrd mode (WordN a) Source # | |||||
PEvalBitCastTerm Bool (WordN 1) Source # | |||||
(KnownNat n, 1 <= n) => PEvalFromIntegralTerm Integer (WordN n) Source # | |||||
(KnownNat n, 1 <= n) => UnifiedFiniteBits 'C (WordN n) Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedFiniteBits Methods withBaseFiniteBits :: (If (IsConMode 'C) (FiniteBits (WordN n), FromBits (WordN n)) (SymFiniteBits (WordN n)) => r) -> r Source # | |||||
Lift (WordN n :: Type) Source # | |||||
(MonadError ArithException m, TryMerge m, KnownNat n, 1 <= n) => SafeLinearArith ArithException (WordN n) m Source # | |||||
(MonadError ArithException m, TryMerge m, KnownNat n, 1 <= n) => SafeSymRotate ArithException (WordN n) m Source # | |||||
(MonadError ArithException m, TryMerge m, KnownNat n, 1 <= n) => SafeSymShift ArithException (WordN n) m Source # | |||||
(MonadError ArithException m, TryMerge m, KnownNat n, 1 <= n) => SafeDiv ArithException (WordN n) m Source # | |||||
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.SafeDiv Methods safeDiv :: WordN n -> WordN n -> m (WordN n) Source # safeMod :: WordN n -> WordN n -> m (WordN n) Source # safeDivMod :: WordN n -> WordN n -> m (WordN n, WordN n) Source # safeQuot :: WordN n -> WordN n -> m (WordN n) Source # safeRem :: WordN n -> WordN n -> m (WordN n) Source # safeQuotRem :: WordN n -> WordN n -> m (WordN n, WordN n) Source # | |||||
(KnownNat n', 1 <= n') => UnifiedFromIntegral 'C (WordN n') AlgReal Source # | |||||
(KnownNat n', 1 <= n') => UnifiedFromIntegral 'C (WordN n') Integer Source # | |||||
(KnownNat n', 1 <= n', KnownNat n, 1 <= n) => UnifiedFromIntegral 'C (IntN n') (WordN n) Source # | |||||
(KnownNat n', 1 <= n', KnownNat n, 1 <= n) => UnifiedFromIntegral 'C (WordN n') (IntN n) Source # | |||||
(KnownNat n', 1 <= n', KnownNat n, 1 <= n) => UnifiedFromIntegral 'C (WordN n') (WordN n) Source # | |||||
(KnownNat n, 1 <= n) => UnifiedSolvable 'C (WordN n) (WordN n) Source # | |||||
(KnownNat n, 1 <= n) => UnifiedSolvable 'S (SymWordN n) (WordN n) Source # | |||||
(KnownNat n', 1 <= n', ValidFP eb sb) => UnifiedFromIntegral 'C (WordN n') (FP eb sb) Source # | |||||
(MonadError NotRepresentableFPError m, TryMerge m, ValidFP eb sb, KnownNat n, 1 <= n) => SafeFromFP NotRepresentableFPError (WordN n) (FP eb sb) FPRoundingMode m Source # | |||||
Defined in Grisette.Internal.Core.Data.Class.SafeFromFP Methods safeFromFP :: FPRoundingMode -> FP eb sb -> m (WordN n) Source # | |||||
(MonadError (Either SomeBVException ArithException) m, UnifiedBranching mode m) => UnifiedSafeDiv mode (Either SomeBVException ArithException) SomeWordN m Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedSafeDiv Methods withBaseSafeDiv :: (SafeDiv (Either SomeBVException ArithException) SomeWordN m => r) -> r Source # | |||||
(MonadError (Either SomeBVException ArithException) m, UnifiedBranching mode m) => UnifiedSafeLinearArith mode (Either SomeBVException ArithException) SomeWordN m Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedSafeLinearArith Methods withBaseSafeLinearArith :: (SafeLinearArith (Either SomeBVException ArithException) SomeWordN m => r) -> r Source # | |||||
(MonadError (Either SomeBVException ArithException) m, UnifiedBranching mode m) => UnifiedSafeSymRotate mode (Either SomeBVException ArithException) SomeWordN m Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedSafeSymRotate Methods withBaseSafeSymRotate :: (SafeSymRotate (Either SomeBVException ArithException) SomeWordN m => r) -> r Source # | |||||
(MonadError (Either SomeBVException ArithException) m, UnifiedBranching mode m) => UnifiedSafeSymShift mode (Either SomeBVException ArithException) SomeWordN m Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedSafeSymShift Methods withBaseSafeSymShift :: (SafeSymShift (Either SomeBVException ArithException) SomeWordN m => r) -> r Source # | |||||
(ValidFP eb sb, r ~ (eb + sb), KnownNat r, 1 <= r, TryMerge m, MonadError NotRepresentableFPError m) => SafeBitCast NotRepresentableFPError (FP eb sb) (WordN r) m Source # | |||||
Defined in Grisette.Internal.Core.Data.Class.SafeBitCast Methods safeBitCast :: FP eb sb -> m (WordN r) Source # | |||||
(KnownNat n, 1 <= n) => Arbitrary (WordN n) Source # | |||||
(KnownNat n, 1 <= n) => Binary (WordN n) Source # | |||||
(KnownNat n, 1 <= n) => Serial (WordN n) Source # | |||||
Defined in Grisette.Internal.SymPrim.BV | |||||
(KnownNat n, 1 <= n) => Serialize (WordN n) Source # | |||||
NFData (WordN n) Source # | |||||
Defined in Grisette.Internal.SymPrim.BV | |||||
(KnownNat n, 1 <= n) => Bits (WordN n) Source # | |||||
Defined in Grisette.Internal.SymPrim.BV Methods (.&.) :: WordN n -> WordN n -> WordN n # (.|.) :: WordN n -> WordN n -> WordN n # xor :: WordN n -> WordN n -> WordN n # complement :: WordN n -> WordN n # shift :: WordN n -> Int -> WordN n # rotate :: WordN n -> Int -> WordN n # setBit :: WordN n -> Int -> WordN n # clearBit :: WordN n -> Int -> WordN n # complementBit :: WordN n -> Int -> WordN n # testBit :: WordN n -> Int -> Bool # bitSizeMaybe :: WordN n -> Maybe Int # shiftL :: WordN n -> Int -> WordN n # unsafeShiftL :: WordN n -> Int -> WordN n # shiftR :: WordN n -> Int -> WordN n # unsafeShiftR :: WordN n -> Int -> WordN n # rotateL :: WordN n -> Int -> WordN n # | |||||
(KnownNat n, 1 <= n) => FiniteBits (WordN n) Source # | |||||
Defined in Grisette.Internal.SymPrim.BV Methods finiteBitSize :: WordN n -> Int # countLeadingZeros :: WordN n -> Int # countTrailingZeros :: WordN n -> Int # | |||||
(KnownNat n, 1 <= n) => Bounded (WordN n) Source # | |||||
(KnownNat n, 1 <= n) => Enum (WordN n) Source # | |||||
Generic (WordN n) Source # | |||||
Defined in Grisette.Internal.SymPrim.BV Associated Types
| |||||
(KnownNat n, 1 <= n) => Num (WordN n) Source # | |||||
(KnownNat n, 1 <= n) => Read (WordN n) Source # | |||||
(KnownNat n, 1 <= n) => Integral (WordN n) Source # | |||||
Defined in Grisette.Internal.SymPrim.BV | |||||
(KnownNat n, 1 <= n) => Real (WordN n) Source # | |||||
Defined in Grisette.Internal.SymPrim.BV Methods toRational :: WordN n -> Rational # | |||||
(KnownNat n, 1 <= n) => Show (WordN n) Source # | |||||
Eq (WordN n) Source # | |||||
Ord (WordN n) Source # | |||||
Defined in Grisette.Internal.SymPrim.BV | |||||
(KnownNat n, 1 <= n) => KeyEq (WordN n) Source # | |||||
(KnownNat n, 1 <= n) => KeyHashable (WordN n) Source # | |||||
Defined in Grisette.Internal.Core.Data.Class.AsKey | |||||
Apply (WordN n) Source # | |||||
(KnownNat n, 1 <= n) => FromBits (WordN n) Source # | |||||
(KnownNat n, 1 <= n) => SymRotate (WordN n) Source # | |||||
(KnownNat n, 1 <= n) => SymShift (WordN n) Source # | |||||
(KnownNat n, 1 <= n) => EvalSym (WordN n) Source # | |||||
(KnownNat n, 1 <= n) => ExtractSym (WordN n) Source # | |||||
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.ExtractSym Methods extractSym :: WordN n -> AnySymbolSet Source # extractSymMaybe :: forall (knd :: SymbolKind). IsSymbolKind knd => WordN n -> Maybe (SymbolSet knd) Source # | |||||
(KnownNat n, 1 <= n) => Mergeable (WordN n) Source # | |||||
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.Mergeable Methods rootStrategy :: MergingStrategy (WordN n) Source # sortIndices :: WordN n -> [DynamicSortedIdx] Source # | |||||
(KnownNat n, 1 <= n) => PPrint (WordN n) Source # | |||||
(KnownNat n, 1 <= n) => DivOr (WordN n) Source # | |||||
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.SafeDiv Methods divOr :: WordN n -> WordN n -> WordN n -> WordN n Source # modOr :: WordN n -> WordN n -> WordN n -> WordN n Source # divModOr :: (WordN n, WordN n) -> WordN n -> WordN n -> (WordN n, WordN n) Source # quotOr :: WordN n -> WordN n -> WordN n -> WordN n Source # remOr :: WordN n -> WordN n -> WordN n -> WordN n Source # quotRemOr :: (WordN n, WordN n) -> WordN n -> WordN n -> (WordN n, WordN n) Source # | |||||
(KnownNat n, 1 <= n) => SubstSym (WordN n) Source # | |||||
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.SubstSym Methods substSym :: forall cb sb (knd :: SymbolKind). (LinkedRep cb sb, IsSymbolKind knd) => TypedSymbol knd cb -> sb -> WordN n -> WordN n Source # | |||||
(KnownNat n, 1 <= n) => SymEq (WordN n) Source # | |||||
(KnownNat n, 1 <= n) => SymOrd (WordN n) Source # | |||||
(KnownNat n, 1 <= n) => AllSyms (WordN n) Source # | |||||
(KnownNat w, 1 <= w) => NonFuncSBVRep (WordN w) Source # | |||||
Defined in Grisette.Internal.SymPrim.Prim.Internal.Term Associated Types
| |||||
(KnownNat n, 1 <= n) => PEvalBitwiseTerm (WordN n) Source # | |||||
Defined in Grisette.Internal.SymPrim.Prim.Internal.Term Methods pevalAndBitsTerm :: Term (WordN n) -> Term (WordN n) -> Term (WordN n) Source # pevalOrBitsTerm :: Term (WordN n) -> Term (WordN n) -> Term (WordN n) Source # pevalXorBitsTerm :: Term (WordN n) -> Term (WordN n) -> Term (WordN n) Source # pevalComplementBitsTerm :: Term (WordN n) -> Term (WordN n) Source # withSbvBitwiseTermConstraint :: (Bits (SBVType (WordN n)) => r) -> r Source # sbvAndBitsTerm :: SBVType (WordN n) -> SBVType (WordN n) -> SBVType (WordN n) Source # sbvOrBitsTerm :: SBVType (WordN n) -> SBVType (WordN n) -> SBVType (WordN n) Source # sbvXorBitsTerm :: SBVType (WordN n) -> SBVType (WordN n) -> SBVType (WordN n) Source # sbvComplementBitsTerm :: SBVType (WordN n) -> SBVType (WordN n) Source # | |||||
(KnownNat n, 1 <= n) => PEvalDivModIntegralTerm (WordN n) Source # | |||||
Defined in Grisette.Internal.SymPrim.Prim.Internal.Instances.PEvalDivModIntegralTerm Methods pevalDivIntegralTerm :: Term (WordN n) -> Term (WordN n) -> Term (WordN n) Source # pevalModIntegralTerm :: Term (WordN n) -> Term (WordN n) -> Term (WordN n) Source # pevalQuotIntegralTerm :: Term (WordN n) -> Term (WordN n) -> Term (WordN n) Source # pevalRemIntegralTerm :: Term (WordN n) -> Term (WordN n) -> Term (WordN n) Source # withSbvDivModIntegralTermConstraint :: (SDivisible (SBVType (WordN n)) => r) -> r Source # sbvDivIntegralTerm :: SBVType (WordN n) -> SBVType (WordN n) -> SBVType (WordN n) Source # sbvModIntegralTerm :: SBVType (WordN n) -> SBVType (WordN n) -> SBVType (WordN n) Source # sbvQuotIntegralTerm :: SBVType (WordN n) -> SBVType (WordN n) -> SBVType (WordN n) Source # sbvRemIntegralTerm :: SBVType (WordN n) -> SBVType (WordN n) -> SBVType (WordN n) Source # | |||||
(KnownNat n, 1 <= n) => PEvalIEEEFPConvertibleTerm (WordN n) Source # | |||||
Defined in Grisette.Internal.SymPrim.Prim.Internal.Instances.PEvalIEEEFPConvertibleTerm Methods pevalFromFPOrTerm :: forall (eb :: Nat) (sb :: Nat). ValidFP eb sb => Term (WordN n) -> Term FPRoundingMode -> Term (FP eb sb) -> Term (WordN n) Source # pevalToFPTerm :: forall (eb :: Nat) (sb :: Nat). ValidFP eb sb => Term FPRoundingMode -> Term (WordN n) -> Term (FP eb sb) Source # sbvFromFPOrTerm :: forall (eb :: Nat) (sb :: Nat). ValidFP eb sb => SBVType (WordN n) -> SBVType FPRoundingMode -> SBVType (FP eb sb) -> SBVType (WordN n) Source # sbvToFPTerm :: forall (eb :: Nat) (sb :: Nat). ValidFP eb sb => SBVType FPRoundingMode -> SBVType (WordN n) -> SBVType (FP eb sb) Source # | |||||
(KnownNat n, 1 <= n) => PEvalNumTerm (WordN n) Source # | |||||
Defined in Grisette.Internal.SymPrim.Prim.Internal.Term Methods pevalAddNumTerm :: Term (WordN n) -> Term (WordN n) -> Term (WordN n) Source # pevalNegNumTerm :: Term (WordN n) -> Term (WordN n) Source # pevalMulNumTerm :: Term (WordN n) -> Term (WordN n) -> Term (WordN n) Source # pevalAbsNumTerm :: Term (WordN n) -> Term (WordN n) Source # pevalSignumNumTerm :: Term (WordN n) -> Term (WordN n) Source # withSbvNumTermConstraint :: (Num (SBVType (WordN n)) => r) -> r Source # sbvAddNumTerm :: SBVType (WordN n) -> SBVType (WordN n) -> SBVType (WordN n) Source # sbvNegNumTerm :: SBVType (WordN n) -> SBVType (WordN n) Source # sbvMulNumTerm :: SBVType (WordN n) -> SBVType (WordN n) -> SBVType (WordN n) Source # sbvAbsNumTerm :: SBVType (WordN n) -> SBVType (WordN n) Source # sbvSignumNumTerm :: SBVType (WordN n) -> SBVType (WordN n) Source # | |||||
(KnownNat n, 1 <= n) => PEvalOrdTerm (WordN n) Source # | |||||
Defined in Grisette.Internal.SymPrim.Prim.Internal.Instances.PEvalOrdTerm Methods pevalLtOrdTerm :: Term (WordN n) -> Term (WordN n) -> Term Bool Source # pevalLeOrdTerm :: Term (WordN n) -> Term (WordN n) -> Term Bool Source # withSbvOrdTermConstraint :: (OrdSymbolic (SBVType (WordN n)) => r) -> r Source # sbvLtOrdTerm :: SBVType (WordN n) -> SBVType (WordN n) -> SBV Bool Source # sbvLeOrdTerm :: SBVType (WordN n) -> SBVType (WordN n) -> SBV Bool Source # | |||||
(KnownNat n, 1 <= n) => PEvalRotateTerm (WordN n) Source # | |||||
Defined in Grisette.Internal.SymPrim.Prim.Internal.Instances.PEvalRotateTerm Methods pevalRotateLeftTerm :: Term (WordN n) -> Term (WordN n) -> Term (WordN n) Source # pevalRotateRightTerm :: Term (WordN n) -> Term (WordN n) -> Term (WordN n) Source # withSbvRotateTermConstraint :: (SIntegral (NonFuncSBVBaseType (WordN n)) => r) -> r Source # sbvRotateLeftTerm :: SBVType (WordN n) -> SBVType (WordN n) -> SBVType (WordN n) Source # sbvRotateRightTerm :: SBVType (WordN n) -> SBVType (WordN n) -> SBVType (WordN n) Source # | |||||
(KnownNat n, 1 <= n) => PEvalShiftTerm (WordN n) Source # | |||||
Defined in Grisette.Internal.SymPrim.Prim.Internal.Instances.PEvalShiftTerm Methods pevalShiftLeftTerm :: Term (WordN n) -> Term (WordN n) -> Term (WordN n) Source # pevalShiftRightTerm :: Term (WordN n) -> Term (WordN n) -> Term (WordN n) Source # withSbvShiftTermConstraint :: (SIntegral (NonFuncSBVBaseType (WordN n)) => r) -> r Source # sbvShiftLeftTerm :: SBVType (WordN n) -> SBVType (WordN n) -> SBVType (WordN n) Source # sbvShiftRightTerm :: SBVType (WordN n) -> SBVType (WordN n) -> SBVType (WordN n) Source # | |||||
(KnownNat w, 1 <= w) => SBVRep (WordN w) Source # | |||||
Defined in Grisette.Internal.SymPrim.Prim.Internal.Term | |||||
(KnownNat w, 1 <= w) => SupportedNonFuncPrim (WordN w) Source # | |||||
Defined in Grisette.Internal.SymPrim.Prim.Internal.Term Methods conNonFuncSBVTerm :: WordN w -> SBV (NonFuncSBVBaseType (WordN w)) Source # symNonFuncSBVTerm :: SBVFreshMonad m => String -> m (SBV (NonFuncSBVBaseType (WordN w))) Source # withNonFuncPrim :: (NonFuncPrimConstraint (WordN w) => r) -> r Source # | |||||
(KnownNat w, 1 <= w) => SupportedPrim (WordN w) Source # | |||||
Defined in Grisette.Internal.SymPrim.Prim.Internal.Term Methods primTypeRep :: TypeRep (WordN w) Source # sameCon :: WordN w -> WordN w -> Bool Source # hashConWithSalt :: Int -> WordN w -> Int Source # pformatCon :: WordN w -> String Source # defaultValue :: WordN w Source # pevalITETerm :: Term Bool -> Term (WordN w) -> Term (WordN w) -> Term (WordN w) Source # pevalEqTerm :: Term (WordN w) -> Term (WordN w) -> Term Bool Source # pevalDistinctTerm :: NonEmpty (Term (WordN w)) -> Term Bool Source # conSBVTerm :: WordN w -> SBVType (WordN w) Source # symSBVName :: TypedSymbol 'AnyKind (WordN w) -> Int -> String Source # symSBVTerm :: SBVFreshMonad m => String -> m (SBVType (WordN w)) Source # withPrim :: ((PrimConstraint (WordN w), SMTDefinable (SBVType (WordN w)), Mergeable (SBVType (WordN w)), Typeable (SBVType (WordN w))) => a) -> a Source # sbvIte :: SBV Bool -> SBVType (WordN w) -> SBVType (WordN w) -> SBVType (WordN w) Source # sbvEq :: SBVType (WordN w) -> SBVType (WordN w) -> SBV Bool Source # sbvDistinct :: NonEmpty (SBVType (WordN w)) -> SBV Bool Source # parseSMTModelResult :: Int -> ([([CV], CV)], CV) -> WordN w Source # castTypedSymbol :: forall (knd' :: SymbolKind) (knd :: SymbolKind). IsSymbolKind knd' => TypedSymbol knd (WordN w) -> Maybe (TypedSymbol knd' (WordN w)) Source # funcDummyConstraint :: SBVType (WordN w) -> SBV Bool Source # | |||||
(KnownNat w, 1 <= w) => SupportedPrimConstraint (WordN w) Source # | |||||
Defined in Grisette.Internal.SymPrim.Prim.Internal.Term Associated Types
| |||||
(KnownNat n, 1 <= n) => SymRep (WordN n) Source # | |||||
Defined in Grisette.Internal.SymPrim.SymBV | |||||
(KnownNat n, 1 <= n) => UnifiedConRep (WordN n) Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedRep | |||||
(KnownNat n, 1 <= n) => UnifiedSymRep (WordN n) Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedRep | |||||
Hashable (WordN n) Source # | |||||
Defined in Grisette.Internal.SymPrim.BV | |||||
BitCast (WordN 1) Bool Source # | |||||
BitCast (WordN 8) Int8 Source # | |||||
BitCast (WordN 8) Word8 Source # | |||||
BitCast (WordN 16) Int16 Source # | |||||
BitCast (WordN 16) Word16 Source # | |||||
BitCast (WordN 32) Int32 Source # | |||||
BitCast (WordN 32) Word32 Source # | |||||
BitCast (WordN 64) Int64 Source # | |||||
BitCast (WordN 64) Word64 Source # | |||||
PEvalBitCastTerm (WordN 1) Bool Source # | |||||
(KnownNat n, 1 <= n) => PEvalFromIntegralTerm (WordN n) AlgReal Source # | |||||
(KnownNat n, 1 <= n) => PEvalFromIntegralTerm (WordN n) Integer Source # | |||||
(KnownNat n, 1 <= n) => BitCast (IntN n) (WordN n) Source # | |||||
(KnownNat n, 1 <= n) => BitCast (WordN n) (IntN n) Source # | |||||
(KnownNat n, 1 <= n) => GenSym (WordN n) (WordN n) Source # | |||||
Defined in Grisette.Internal.Core.Data.Class.GenSym | |||||
(KnownNat n, 1 <= n) => GenSymSimple (WordN n) (WordN n) Source # | |||||
Defined in Grisette.Internal.Core.Data.Class.GenSym Methods simpleFresh :: MonadFresh m => WordN n -> m (WordN n) Source # | |||||
(KnownNat n, 1 <= n) => SignConversion (WordN n) (IntN n) Source # | |||||
(KnownNat n, 1 <= n) => Solvable (WordN n) (SymWordN n) Source # | |||||
(KnownNat n, 1 <= n) => ToCon (WordN n) (WordN n) Source # | |||||
(KnownNat n, 1 <= n) => ToCon (SymWordN n) (WordN n) Source # | |||||
(KnownNat n, 1 <= n) => ToSym (Union (WordN n)) (SymWordN n) Source # | |||||
(KnownNat n, 1 <= n) => ToSym (WordN n) (WordN n) Source # | |||||
(KnownNat n, 1 <= n) => ToSym (WordN n) (SymWordN n) Source # | |||||
(KnownNat n, 1 <= n) => LinkedRep (WordN n) (SymWordN n) Source # | |||||
(KnownNat n, 1 <= n) => PEvalBitCastTerm (IntN n) (WordN n) Source # | |||||
Defined in Grisette.Internal.SymPrim.Prim.Internal.Term | |||||
(KnownNat n, 1 <= n) => PEvalBitCastTerm (WordN n) (IntN n) Source # | |||||
Defined in Grisette.Internal.SymPrim.Prim.Internal.Term | |||||
(KnownNat n, 1 <= n, KnownNat m, 1 <= m) => PEvalFromIntegralTerm (IntN n) (WordN m) Source # | |||||
(KnownNat n, 1 <= n, KnownNat m, 1 <= m) => PEvalFromIntegralTerm (WordN n) (IntN m) Source # | |||||
(KnownNat n, 1 <= n, KnownNat m, 1 <= m) => PEvalFromIntegralTerm (WordN n) (WordN m) Source # | |||||
(ValidFP eb sb, r ~ (eb + sb)) => BitCast (WordN r) (FP eb sb) Source # | |||||
(n ~ (eb + sb), ValidFP eb sb, KnownNat n, 1 <= n) => PEvalBitCastTerm (WordN n) (FP eb sb) Source # | |||||
(KnownNat n, 1 <= n, ValidFP eb sb) => PEvalFromIntegralTerm (WordN n) (FP eb sb) Source # | |||||
(ValidFP eb sb, KnownNat n, 1 <= n) => IEEEFPConvertible (WordN n) (FP eb sb) FPRoundingMode Source # | |||||
Defined in Grisette.Internal.SymPrim.FP | |||||
(ValidFP eb sb, n ~ (eb + sb)) => BitCastCanonical (FP eb sb) (WordN n) Source # | |||||
Defined in Grisette.Internal.SymPrim.FP Methods bitCastCanonicalValue :: proxy (FP eb sb) -> WordN n Source # | |||||
(ValidFP eb sb, r ~ (eb + sb)) => BitCastOr (FP eb sb) (WordN r) Source # | |||||
(n ~ (eb + sb), ValidFP eb sb, KnownNat n, 1 <= n) => PEvalBitCastOrTerm (FP eb sb) (WordN n) Source # | |||||
type Rep (WordN n) Source # | |||||
Defined in Grisette.Internal.SymPrim.BV | |||||
type FunType (WordN n) Source # | |||||
Defined in Grisette.Internal.SymPrim.BV | |||||
type NonFuncSBVBaseType (WordN w) Source # | |||||
Defined in Grisette.Internal.SymPrim.Prim.Internal.Term | |||||
type PrimConstraint (WordN w) Source # | |||||
Defined in Grisette.Internal.SymPrim.Prim.Internal.Term | |||||
type SBVType (WordN w) Source # | |||||
Defined in Grisette.Internal.SymPrim.Prim.Internal.Term | |||||
type SymType (WordN n) Source # | |||||
Defined in Grisette.Internal.SymPrim.SymBV | |||||
type ConType (WordN n) Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedRep | |||||
type SymType (WordN n) Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedRep |
Runtime-sized bit-vector types
data SomeBV (bv :: Nat -> Type) where Source #
Non-indexed bitvectors.
The creation of SomeBV
can be done with the bv
function with a positive
bit width and a value:
>>>
bv 4 0xf :: SomeBV IntN
0xf
Operations on two SomeBV
values require the bitwidths to be the same. So
you should check for the bit width (via finiteBitSize
) before performing
operations:
>>>
bv 4 0x3 + bv 4 0x3 :: SomeBV IntN
0x6>>>
bv 4 0x3 + bv 8 0x3 :: SomeBV IntN
*** Exception: Bit width does not match ...
One exception is that the equality testing (both concrete and symbolic via
SymEq
) does not require the bitwidths to be the same. Different bitwidths
means the values are not equal:
>>>
(bv 4 0x3 :: SomeBV IntN) == (bv 8 0x3)
False
Note: SomeBV
can be constructed out of integer literals without the
bit width provided. Further binary operations will usually require at least
one operand has the bit-width, and will use that as the bit-width for the
result.
For example:
3 :: SomeBV IntN bvlit(3) >>> bv 4 0x1 + 3 :: SomeBV IntN 0x4 >>> 3 * bv 4 0x1 :: SomeBV IntN 0x3 >>> 3 * 3 :: SomeBV IntN *** Exception: Cannot determine bit-width for literals: (*) ...
Some operations allows the literals to be used without the bit-width, such as
(+)
, (-)
, negate
, toUnsigned
, toSigned
, .&.
, .|.
, xor
,
complement
, setBit
, clearBit
, complementBit
, shiftL
, and
unsafeShiftL
.
>>>
3 + 3 :: SomeBV IntN
bvlit(6)
Constructors
SomeBV :: forall (n :: Nat) (bv :: Nat -> Type). (KnownNat n, 1 <= n) => bv n -> SomeBV bv | |
SomeBVLit :: forall (bv :: Nat -> Type). SomeBVLit -> SomeBV bv |
Instances
FromBits SomeIntN Source # | |
FromBits SomeWordN Source # | |
UnifiedFiniteBits 'C SomeIntN Source # | |
Defined in Grisette.Internal.Unified.Class.UnifiedFiniteBits Methods withBaseFiniteBits :: (If (IsConMode 'C) (FiniteBits SomeIntN, FromBits SomeIntN) (SymFiniteBits SomeIntN) => r) -> r Source # | |
UnifiedFiniteBits 'C SomeWordN Source # | |
Defined in Grisette.Internal.Unified.Class.UnifiedFiniteBits Methods withBaseFiniteBits :: (If (IsConMode 'C) (FiniteBits SomeWordN, FromBits SomeWordN) (SymFiniteBits SomeWordN) => r) -> r Source # | |
UnifiedFiniteBits 'S SomeSymIntN Source # | |
Defined in Grisette.Internal.Unified.Class.UnifiedFiniteBits Methods withBaseFiniteBits :: (If (IsConMode 'S) (FiniteBits SomeSymIntN, FromBits SomeSymIntN) (SymFiniteBits SomeSymIntN) => r) -> r Source # | |
UnifiedFiniteBits 'S SomeSymWordN Source # | |
Defined in Grisette.Internal.Unified.Class.UnifiedFiniteBits Methods withBaseFiniteBits :: (If (IsConMode 'S) (FiniteBits SomeSymWordN, FromBits SomeSymWordN) (SymFiniteBits SomeSymWordN) => r) -> r Source # | |
(forall (n :: Nat). (KnownNat n, 1 <= n) => GenSym () (bv n), Mergeable (SomeBV bv)) => GenSym Int (SomeBV bv) Source # | |
Defined in Grisette.Internal.SymPrim.SomeBV | |
(forall (n :: Nat). (KnownNat n, 1 <= n) => GenSymSimple () (bv n), Mergeable (SomeBV bv)) => GenSymSimple Int (SomeBV bv) Source # | |
Defined in Grisette.Internal.SymPrim.SomeBV Methods simpleFresh :: MonadFresh m => Int -> m (SomeBV bv) Source # | |
(forall (n :: Nat). (KnownNat n, 1 <= n) => Lift (bv n)) => Lift (SomeBV bv :: Type) Source # | |
(MonadError (Either SomeBVException ArithException) m, UnifiedBranching 'S m) => UnifiedSafeDiv 'S (Either SomeBVException ArithException) SomeSymIntN m Source # | |
Defined in Grisette.Internal.Unified.Class.UnifiedSafeDiv Methods withBaseSafeDiv :: (SafeDiv (Either SomeBVException ArithException) SomeSymIntN m => r) -> r Source # | |
(MonadError (Either SomeBVException ArithException) m, UnifiedBranching 'S m) => UnifiedSafeDiv 'S (Either SomeBVException ArithException) SomeSymWordN m Source # | |
Defined in Grisette.Internal.Unified.Class.UnifiedSafeDiv Methods withBaseSafeDiv :: (SafeDiv (Either SomeBVException ArithException) SomeSymWordN m => r) -> r Source # | |
(MonadError (Either SomeBVException ArithException) m, UnifiedBranching mode m) => UnifiedSafeDiv mode (Either SomeBVException ArithException) SomeIntN m Source # | |
Defined in Grisette.Internal.Unified.Class.UnifiedSafeDiv Methods withBaseSafeDiv :: (SafeDiv (Either SomeBVException ArithException) SomeIntN m => r) -> r Source # | |
(MonadError (Either SomeBVException ArithException) m, UnifiedBranching mode m) => UnifiedSafeDiv mode (Either SomeBVException ArithException) SomeWordN m Source # | |
Defined in Grisette.Internal.Unified.Class.UnifiedSafeDiv Methods withBaseSafeDiv :: (SafeDiv (Either SomeBVException ArithException) SomeWordN m => r) -> r Source # | |
(MonadError (Either SomeBVException ArithException) m, UnifiedBranching 'S m) => UnifiedSafeLinearArith 'S (Either SomeBVException ArithException) SomeSymIntN m Source # | |
Defined in Grisette.Internal.Unified.Class.UnifiedSafeLinearArith Methods withBaseSafeLinearArith :: (SafeLinearArith (Either SomeBVException ArithException) SomeSymIntN m => r) -> r Source # | |
(MonadError (Either SomeBVException ArithException) m, UnifiedBranching 'S m) => UnifiedSafeLinearArith 'S (Either SomeBVException ArithException) SomeSymWordN m Source # | |
Defined in Grisette.Internal.Unified.Class.UnifiedSafeLinearArith Methods withBaseSafeLinearArith :: (SafeLinearArith (Either SomeBVException ArithException) SomeSymWordN m => r) -> r Source # | |
(MonadError (Either SomeBVException ArithException) m, UnifiedBranching mode m) => UnifiedSafeLinearArith mode (Either SomeBVException ArithException) SomeIntN m Source # | |
Defined in Grisette.Internal.Unified.Class.UnifiedSafeLinearArith Methods withBaseSafeLinearArith :: (SafeLinearArith (Either SomeBVException ArithException) SomeIntN m => r) -> r Source # | |
(MonadError (Either SomeBVException ArithException) m, UnifiedBranching mode m) => UnifiedSafeLinearArith mode (Either SomeBVException ArithException) SomeWordN m Source # | |
Defined in Grisette.Internal.Unified.Class.UnifiedSafeLinearArith Methods withBaseSafeLinearArith :: (SafeLinearArith (Either SomeBVException ArithException) SomeWordN m => r) -> r Source # | |
(MonadError (Either SomeBVException ArithException) m, UnifiedBranching 'S m) => UnifiedSafeSymRotate 'S (Either SomeBVException ArithException) SomeSymIntN m Source # | |
Defined in Grisette.Internal.Unified.Class.UnifiedSafeSymRotate Methods withBaseSafeSymRotate :: (SafeSymRotate (Either SomeBVException ArithException) SomeSymIntN m => r) -> r Source # | |
(MonadError (Either SomeBVException ArithException) m, UnifiedBranching 'S m) => UnifiedSafeSymRotate 'S (Either SomeBVException ArithException) SomeSymWordN m Source # | |
Defined in Grisette.Internal.Unified.Class.UnifiedSafeSymRotate Methods withBaseSafeSymRotate :: (SafeSymRotate (Either SomeBVException ArithException) SomeSymWordN m => r) -> r Source # | |
(MonadError (Either SomeBVException ArithException) m, UnifiedBranching mode m) => UnifiedSafeSymRotate mode (Either SomeBVException ArithException) SomeIntN m Source # | |
Defined in Grisette.Internal.Unified.Class.UnifiedSafeSymRotate Methods withBaseSafeSymRotate :: (SafeSymRotate (Either SomeBVException ArithException) SomeIntN m => r) -> r Source # | |
(MonadError (Either SomeBVException ArithException) m, UnifiedBranching mode m) => UnifiedSafeSymRotate mode (Either SomeBVException ArithException) SomeWordN m Source # | |
Defined in Grisette.Internal.Unified.Class.UnifiedSafeSymRotate Methods withBaseSafeSymRotate :: (SafeSymRotate (Either SomeBVException ArithException) SomeWordN m => r) -> r Source # | |
(MonadError (Either SomeBVException ArithException) m, UnifiedBranching 'S m) => UnifiedSafeSymShift 'S (Either SomeBVException ArithException) SomeSymIntN m Source # | |
Defined in Grisette.Internal.Unified.Class.UnifiedSafeSymShift Methods withBaseSafeSymShift :: (SafeSymShift (Either SomeBVException ArithException) SomeSymIntN m => r) -> r Source # | |
(MonadError (Either SomeBVException ArithException) m, UnifiedBranching 'S m) => UnifiedSafeSymShift 'S (Either SomeBVException ArithException) SomeSymWordN m Source # | |
Defined in Grisette.Internal.Unified.Class.UnifiedSafeSymShift Methods withBaseSafeSymShift :: (SafeSymShift (Either SomeBVException ArithException) SomeSymWordN m => r) -> r Source # | |
(MonadError (Either SomeBVException ArithException) m, UnifiedBranching mode m) => UnifiedSafeSymShift mode (Either SomeBVException ArithException) SomeIntN m Source # | |
Defined in Grisette.Internal.Unified.Class.UnifiedSafeSymShift Methods withBaseSafeSymShift :: (SafeSymShift (Either SomeBVException ArithException) SomeIntN m => r) -> r Source # | |
(MonadError (Either SomeBVException ArithException) m, UnifiedBranching mode m) => UnifiedSafeSymShift mode (Either SomeBVException ArithException) SomeWordN m Source # | |
Defined in Grisette.Internal.Unified.Class.UnifiedSafeSymShift Methods withBaseSafeSymShift :: (SafeSymShift (Either SomeBVException ArithException) SomeWordN m => r) -> r Source # | |
(forall (n :: Nat). (KnownNat n, 1 <= n) => Serial (bv n)) => Binary (SomeBV bv) Source # | |
(forall (n :: Nat). (KnownNat n, 1 <= n) => Serial (bv n)) => Serial (SomeBV bv) Source # | |
Defined in Grisette.Internal.SymPrim.SomeBV | |
(forall (n :: Nat). (KnownNat n, 1 <= n) => Serial (bv n)) => Serialize (SomeBV bv) Source # | |
(forall (n :: Nat). (KnownNat n, 1 <= n) => NFData (bv n)) => NFData (SomeBV bv) Source # | |
Defined in Grisette.Internal.SymPrim.SomeBV | |
(forall (n :: Nat). (KnownNat n, 1 <= n) => Bits (bv n), forall (n :: Nat). (KnownNat n, 1 <= n) => Num (bv n), MaySomeBV bv) => Bits (SomeBV bv) Source # | |
Defined in Grisette.Internal.SymPrim.SomeBV Methods (.&.) :: SomeBV bv -> SomeBV bv -> SomeBV bv # (.|.) :: SomeBV bv -> SomeBV bv -> SomeBV bv # xor :: SomeBV bv -> SomeBV bv -> SomeBV bv # complement :: SomeBV bv -> SomeBV bv # shift :: SomeBV bv -> Int -> SomeBV bv # rotate :: SomeBV bv -> Int -> SomeBV bv # setBit :: SomeBV bv -> Int -> SomeBV bv # clearBit :: SomeBV bv -> Int -> SomeBV bv # complementBit :: SomeBV bv -> Int -> SomeBV bv # testBit :: SomeBV bv -> Int -> Bool # bitSizeMaybe :: SomeBV bv -> Maybe Int # isSigned :: SomeBV bv -> Bool # shiftL :: SomeBV bv -> Int -> SomeBV bv # unsafeShiftL :: SomeBV bv -> Int -> SomeBV bv # shiftR :: SomeBV bv -> Int -> SomeBV bv # unsafeShiftR :: SomeBV bv -> Int -> SomeBV bv # rotateL :: SomeBV bv -> Int -> SomeBV bv # | |
(forall (n :: Nat). (KnownNat n, 1 <= n) => FiniteBits (bv n), forall (n :: Nat). (KnownNat n, 1 <= n) => Num (bv n), MaySomeBV bv) => FiniteBits (SomeBV bv) Source # | |
Defined in Grisette.Internal.SymPrim.SomeBV Methods finiteBitSize :: SomeBV bv -> Int # countLeadingZeros :: SomeBV bv -> Int # countTrailingZeros :: SomeBV bv -> Int # | |
(forall (n :: Nat). (KnownNat n, 1 <= n) => Enum (bv n)) => Enum (SomeBV bv) Source # | |
Defined in Grisette.Internal.SymPrim.SomeBV Methods succ :: SomeBV bv -> SomeBV bv # pred :: SomeBV bv -> SomeBV bv # fromEnum :: SomeBV bv -> Int # enumFrom :: SomeBV bv -> [SomeBV bv] # enumFromThen :: SomeBV bv -> SomeBV bv -> [SomeBV bv] # enumFromTo :: SomeBV bv -> SomeBV bv -> [SomeBV bv] # enumFromThenTo :: SomeBV bv -> SomeBV bv -> SomeBV bv -> [SomeBV bv] # | |
(forall (n :: Nat). (KnownNat n, 1 <= n) => Num (bv n), MaySomeBV bv) => Num (SomeBV bv) Source # | |
Defined in Grisette.Internal.SymPrim.SomeBV | |
(forall (n :: Nat). (KnownNat n, 1 <= n) => Integral (bv n), MaySomeBV bv) => Integral (SomeBV bv) Source # | |
Defined in Grisette.Internal.SymPrim.SomeBV Methods quot :: SomeBV bv -> SomeBV bv -> SomeBV bv # rem :: SomeBV bv -> SomeBV bv -> SomeBV bv # div :: SomeBV bv -> SomeBV bv -> SomeBV bv # mod :: SomeBV bv -> SomeBV bv -> SomeBV bv # quotRem :: SomeBV bv -> SomeBV bv -> (SomeBV bv, SomeBV bv) # divMod :: SomeBV bv -> SomeBV bv -> (SomeBV bv, SomeBV bv) # | |
(forall (n :: Nat). (KnownNat n, 1 <= n) => Real (bv n), MaySomeBV bv) => Real (SomeBV bv) Source # | |
Defined in Grisette.Internal.SymPrim.SomeBV Methods toRational :: SomeBV bv -> Rational # | |
(forall (n :: Nat). (KnownNat n, 1 <= n) => Show (bv n)) => Show (SomeBV bv) Source # | |
(forall (n :: Nat). (KnownNat n, 1 <= n) => Eq (bv n), forall (n :: Nat). (KnownNat n, 1 <= n) => Num (bv n), MaySomeBV bv) => Eq (SomeBV bv) Source # | |
(forall (n :: Nat). (KnownNat n, 1 <= n) => Ord (bv n), forall (n :: Nat). (KnownNat n, 1 <= n) => Num (bv n), MaySomeBV bv) => Ord (SomeBV bv) Source # | |
Defined in Grisette.Internal.SymPrim.SomeBV | |
(forall (n :: Nat). (KnownNat n, 1 <= n) => KeyEq (bv n), forall (n :: Nat). (KnownNat n, 1 <= n) => Num (bv n), MaySomeBV bv) => KeyEq (SomeBV bv) Source # | |
(forall (n :: Nat). (KnownNat n, 1 <= n) => KeyHashable (bv n), forall (n :: Nat). (KnownNat n, 1 <= n) => Num (bv n), MaySomeBV bv) => KeyHashable (SomeBV bv) Source # | |
Defined in Grisette.Internal.SymPrim.SomeBV | |
SizedBV bv => BV (SomeBV bv) Source # | |
Defined in Grisette.Internal.SymPrim.SomeBV | |
(forall (n :: Nat). (KnownNat n, 1 <= n) => ITEOp (bv n), forall (n :: Nat). (KnownNat n, 1 <= n) => Num (bv n), MaySomeBV bv) => ITEOp (SomeBV bv) Source # | |
SymFiniteBits (SomeBV SymIntN) Source # | |
SymFiniteBits (SomeBV SymWordN) Source # | |
(forall (n :: Nat). (KnownNat n, 1 <= n) => SymRotate (bv n), forall (n :: Nat). (KnownNat n, 1 <= n) => Num (bv n), MaySomeBV bv) => SymRotate (SomeBV bv) Source # | |
(forall (n :: Nat). (KnownNat n, 1 <= n) => SymShift (bv n), forall (n :: Nat). (KnownNat n, 1 <= n) => Num (bv n), MaySomeBV bv) => SymShift (SomeBV bv) Source # | |
(forall (n :: Nat). (KnownNat n, 1 <= n) => EvalSym (bv n)) => EvalSym (SomeBV bv) Source # | |
(forall (n :: Nat). (KnownNat n, 1 <= n) => ExtractSym (bv n)) => ExtractSym (SomeBV bv) Source # | |
Defined in Grisette.Internal.SymPrim.SomeBV Methods extractSym :: SomeBV bv -> AnySymbolSet Source # extractSymMaybe :: forall (knd :: SymbolKind). IsSymbolKind knd => SomeBV bv -> Maybe (SymbolSet knd) Source # | |
(forall (n :: Nat). (KnownNat n, 1 <= n) => Mergeable (bv n)) => Mergeable (SomeBV bv) Source # | |
Defined in Grisette.Internal.SymPrim.SomeBV Methods rootStrategy :: MergingStrategy (SomeBV bv) Source # sortIndices :: SomeBV bv -> [DynamicSortedIdx] Source # | |
(forall (n :: Nat). (KnownNat n, 1 <= n) => PPrint (bv n)) => PPrint (SomeBV bv) Source # | |
(forall (n :: Nat). (KnownNat n, 1 <= n) => DivOr (bv n), forall (n :: Nat). (KnownNat n, 1 <= n) => Num (bv n), MaySomeBV bv) => DivOr (SomeBV bv) Source # | |
Defined in Grisette.Internal.SymPrim.SomeBV Methods divOr :: SomeBV bv -> SomeBV bv -> SomeBV bv -> SomeBV bv Source # modOr :: SomeBV bv -> SomeBV bv -> SomeBV bv -> SomeBV bv Source # divModOr :: (SomeBV bv, SomeBV bv) -> SomeBV bv -> SomeBV bv -> (SomeBV bv, SomeBV bv) Source # quotOr :: SomeBV bv -> SomeBV bv -> SomeBV bv -> SomeBV bv Source # remOr :: SomeBV bv -> SomeBV bv -> SomeBV bv -> SomeBV bv Source # quotRemOr :: (SomeBV bv, SomeBV bv) -> SomeBV bv -> SomeBV bv -> (SomeBV bv, SomeBV bv) Source # | |
(forall (n :: Nat). (KnownNat n, 1 <= n) => SubstSym (bv n)) => SubstSym (SomeBV bv) Source # | |
Defined in Grisette.Internal.SymPrim.SomeBV Methods substSym :: forall cb sb (knd :: SymbolKind). (LinkedRep cb sb, IsSymbolKind knd) => TypedSymbol knd cb -> sb -> SomeBV bv -> SomeBV bv Source # | |
(forall (n :: Nat). (KnownNat n, 1 <= n) => SymEq (bv n), forall (n :: Nat). (KnownNat n, 1 <= n) => Num (bv n), MaySomeBV bv) => SymEq (SomeBV bv) Source # | The
|
(forall (n :: Nat). (KnownNat n, 1 <= n) => SymOrd (bv n), forall (n :: Nat). (KnownNat n, 1 <= n) => Num (bv n), MaySomeBV bv) => SymOrd (SomeBV bv) Source # | |
Defined in Grisette.Internal.SymPrim.SomeBV | |
(forall (n :: Nat). (KnownNat n, 1 <= n) => AllSyms (bv n), MaySomeBV bv) => AllSyms (SomeBV bv) Source # | |
(forall (n :: Nat). (KnownNat n, 1 <= n) => Hashable (bv n), forall (n :: Nat). (KnownNat n, 1 <= n) => Num (bv n), MaySomeBV bv) => Hashable (SomeBV bv) Source # | |
Defined in Grisette.Internal.SymPrim.SomeBV | |
(forall (m :: Nat). (KnownNat m, 1 <= m) => GenSym () (bv m), Mergeable (SomeBV bv)) => GenSym (SomeBV bv) (SomeBV bv) Source # | |
Defined in Grisette.Internal.SymPrim.SomeBV | |
(forall (m :: Nat). (KnownNat m, 1 <= m) => GenSymSimple () (bv m), Mergeable (SomeBV bv)) => GenSymSimple (SomeBV bv) (SomeBV bv) Source # | |
Defined in Grisette.Internal.SymPrim.SomeBV Methods simpleFresh :: MonadFresh m => SomeBV bv -> m (SomeBV bv) Source # | |
(forall (n :: Nat). (KnownNat n, 1 <= n) => SignConversion (ubv n) (sbv n), SignConversion (ubv 1) (sbv 1)) => SignConversion (SomeBV ubv) (SomeBV sbv) Source # | |
(forall (n :: Nat). (KnownNat n, 1 <= n) => ToCon (sbv n) (cbv n)) => ToCon (SomeBV sbv) (SomeBV cbv) Source # | |
(forall (n :: Nat). (KnownNat n, 1 <= n) => ToSym (cbv n) (sbv n)) => ToSym (SomeBV cbv) (SomeBV sbv) Source # | |
(KnownNat n, 1 <= n, forall (m :: Nat). (KnownNat m, 1 <= m) => GenSym () (bv m), Mergeable (SomeBV bv)) => GenSym (Proxy n) (SomeBV bv) Source # | |
Defined in Grisette.Internal.SymPrim.SomeBV | |
(KnownNat n, 1 <= n, forall (m :: Nat). (KnownNat m, 1 <= m) => GenSymSimple () (bv m), Mergeable (SomeBV bv)) => GenSymSimple (Proxy n) (SomeBV bv) Source # | |
Defined in Grisette.Internal.SymPrim.SomeBV Methods simpleFresh :: MonadFresh m => Proxy n -> m (SomeBV bv) Source # | |
(forall (n :: Nat). (KnownNat n, 1 <= n) => SafeLinearArith e (bv n) (ExceptT e m), MonadError (Either SomeBVException e) m, TryMerge m, Mergeable e, forall (n :: Nat). (KnownNat n, 1 <= n) => Num (bv n), MaySomeBV bv) => SafeLinearArith (Either SomeBVException e) (SomeBV bv) m Source # | |
(forall (n :: Nat). (KnownNat n, 1 <= n) => SafeSymRotate e (bv n) (ExceptT e m), MonadError (Either SomeBVException e) m, TryMerge m, Mergeable e, forall (n :: Nat). (KnownNat n, 1 <= n) => Num (bv n), MaySomeBV bv) => SafeSymRotate (Either SomeBVException e) (SomeBV bv) m Source # | |
Defined in Grisette.Internal.SymPrim.SomeBV | |
(forall (n :: Nat). (KnownNat n, 1 <= n) => SafeSymShift e (bv n) (ExceptT e m), MonadError (Either SomeBVException e) m, TryMerge m, Mergeable e, forall (n :: Nat). (KnownNat n, 1 <= n) => Num (bv n), MaySomeBV bv) => SafeSymShift (Either SomeBVException e) (SomeBV bv) m Source # | |
Defined in Grisette.Internal.SymPrim.SomeBV | |
(forall (n :: Nat). (KnownNat n, 1 <= n) => SafeDiv e (bv n) (ExceptT e m), MonadError (Either SomeBVException e) m, TryMerge m, Mergeable e, forall (n :: Nat). (KnownNat n, 1 <= n) => Num (bv n), MaySomeBV bv) => SafeDiv (Either SomeBVException e) (SomeBV bv) m Source # | |
Defined in Grisette.Internal.SymPrim.SomeBV Methods safeDiv :: SomeBV bv -> SomeBV bv -> m (SomeBV bv) Source # safeMod :: SomeBV bv -> SomeBV bv -> m (SomeBV bv) Source # safeDivMod :: SomeBV bv -> SomeBV bv -> m (SomeBV bv, SomeBV bv) Source # safeQuot :: SomeBV bv -> SomeBV bv -> m (SomeBV bv) Source # safeRem :: SomeBV bv -> SomeBV bv -> m (SomeBV bv) Source # safeQuotRem :: SomeBV bv -> SomeBV bv -> m (SomeBV bv, SomeBV bv) Source # |
type SomeBVKey (bv :: Nat -> Type) = AsKey (SomeBV bv) Source #
type with identity equality.SomeBV
bv
data SomeBVException Source #
An exception that would be thrown when operations are performed on incompatible bit widths.
Constructors
BitwidthMismatch | |
UndeterminedBitwidth Text |
Instances
NFData SomeBVException Source # | |||||
Defined in Grisette.Internal.SymPrim.SomeBV Methods rnf :: SomeBVException -> () # | |||||
Exception SomeBVException Source # | |||||
Defined in Grisette.Internal.SymPrim.SomeBV Methods toException :: SomeBVException -> SomeException # fromException :: SomeException -> Maybe SomeBVException # displayException :: SomeBVException -> String # backtraceDesired :: SomeBVException -> Bool # | |||||
Generic SomeBVException Source # | |||||
Defined in Grisette.Internal.SymPrim.SomeBV Associated Types
Methods from :: SomeBVException -> Rep SomeBVException x # to :: Rep SomeBVException x -> SomeBVException # | |||||
Show SomeBVException Source # | |||||
Defined in Grisette.Internal.SymPrim.SomeBV Methods showsPrec :: Int -> SomeBVException -> ShowS # show :: SomeBVException -> String # showList :: [SomeBVException] -> ShowS # | |||||
Eq SomeBVException Source # | |||||
Defined in Grisette.Internal.SymPrim.SomeBV Methods (==) :: SomeBVException -> SomeBVException -> Bool # (/=) :: SomeBVException -> SomeBVException -> Bool # | |||||
Ord SomeBVException Source # | |||||
Defined in Grisette.Internal.SymPrim.SomeBV Methods compare :: SomeBVException -> SomeBVException -> Ordering # (<) :: SomeBVException -> SomeBVException -> Bool # (<=) :: SomeBVException -> SomeBVException -> Bool # (>) :: SomeBVException -> SomeBVException -> Bool # (>=) :: SomeBVException -> SomeBVException -> Bool # max :: SomeBVException -> SomeBVException -> SomeBVException # min :: SomeBVException -> SomeBVException -> SomeBVException # | |||||
EvalSym SomeBVException Source # | |||||
Defined in Grisette.Internal.SymPrim.SomeBV Methods evalSym :: Bool -> Model -> SomeBVException -> SomeBVException Source # | |||||
ExtractSym SomeBVException Source # | |||||
Defined in Grisette.Internal.SymPrim.SomeBV Methods extractSym :: SomeBVException -> AnySymbolSet Source # extractSymMaybe :: forall (knd :: SymbolKind). IsSymbolKind knd => SomeBVException -> Maybe (SymbolSet knd) Source # | |||||
Mergeable SomeBVException Source # | |||||
Defined in Grisette.Internal.SymPrim.SomeBV Methods rootStrategy :: MergingStrategy SomeBVException Source # sortIndices :: SomeBVException -> [DynamicSortedIdx] Source # | |||||
PPrint SomeBVException Source # | |||||
Defined in Grisette.Internal.SymPrim.SomeBV Methods pformat :: SomeBVException -> Doc ann Source # pformatPrec :: Int -> SomeBVException -> Doc ann Source # pformatList :: [SomeBVException] -> Doc ann Source # | |||||
SubstSym SomeBVException Source # | |||||
Defined in Grisette.Internal.SymPrim.SomeBV Methods substSym :: forall cb sb (knd :: SymbolKind). (LinkedRep cb sb, IsSymbolKind knd) => TypedSymbol knd cb -> sb -> SomeBVException -> SomeBVException Source # | |||||
SymEq SomeBVException Source # | |||||
Defined in Grisette.Internal.SymPrim.SomeBV Methods (.==) :: SomeBVException -> SomeBVException -> SymBool Source # (./=) :: SomeBVException -> SomeBVException -> SymBool Source # symDistinct :: [SomeBVException] -> SymBool Source # | |||||
SymOrd SomeBVException Source # | |||||
Defined in Grisette.Internal.SymPrim.SomeBV Methods (.<) :: SomeBVException -> SomeBVException -> SymBool Source # (.<=) :: SomeBVException -> SomeBVException -> SymBool Source # (.>) :: SomeBVException -> SomeBVException -> SymBool Source # (.>=) :: SomeBVException -> SomeBVException -> SymBool Source # symCompare :: SomeBVException -> SomeBVException -> Union Ordering Source # | |||||
Hashable SomeBVException Source # | |||||
Defined in Grisette.Internal.SymPrim.SomeBV | |||||
ToCon SomeBVException SomeBVException Source # | |||||
Defined in Grisette.Internal.SymPrim.SomeBV Methods | |||||
ToSym SomeBVException SomeBVException Source # | |||||
Defined in Grisette.Internal.SymPrim.SomeBV Methods | |||||
(MonadError (Either SomeBVException ArithException) m, UnifiedBranching 'S m) => UnifiedSafeDiv 'S (Either SomeBVException ArithException) SomeSymIntN m Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedSafeDiv Methods withBaseSafeDiv :: (SafeDiv (Either SomeBVException ArithException) SomeSymIntN m => r) -> r Source # | |||||
(MonadError (Either SomeBVException ArithException) m, UnifiedBranching 'S m) => UnifiedSafeDiv 'S (Either SomeBVException ArithException) SomeSymWordN m Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedSafeDiv Methods withBaseSafeDiv :: (SafeDiv (Either SomeBVException ArithException) SomeSymWordN m => r) -> r Source # | |||||
(MonadError (Either SomeBVException ArithException) m, UnifiedBranching mode m) => UnifiedSafeDiv mode (Either SomeBVException ArithException) SomeIntN m Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedSafeDiv Methods withBaseSafeDiv :: (SafeDiv (Either SomeBVException ArithException) SomeIntN m => r) -> r Source # | |||||
(MonadError (Either SomeBVException ArithException) m, UnifiedBranching mode m) => UnifiedSafeDiv mode (Either SomeBVException ArithException) SomeWordN m Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedSafeDiv Methods withBaseSafeDiv :: (SafeDiv (Either SomeBVException ArithException) SomeWordN m => r) -> r Source # | |||||
(MonadError (Either SomeBVException ArithException) m, UnifiedBranching 'S m) => UnifiedSafeLinearArith 'S (Either SomeBVException ArithException) SomeSymIntN m Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedSafeLinearArith Methods withBaseSafeLinearArith :: (SafeLinearArith (Either SomeBVException ArithException) SomeSymIntN m => r) -> r Source # | |||||
(MonadError (Either SomeBVException ArithException) m, UnifiedBranching 'S m) => UnifiedSafeLinearArith 'S (Either SomeBVException ArithException) SomeSymWordN m Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedSafeLinearArith Methods withBaseSafeLinearArith :: (SafeLinearArith (Either SomeBVException ArithException) SomeSymWordN m => r) -> r Source # | |||||
(MonadError (Either SomeBVException ArithException) m, UnifiedBranching mode m) => UnifiedSafeLinearArith mode (Either SomeBVException ArithException) SomeIntN m Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedSafeLinearArith Methods withBaseSafeLinearArith :: (SafeLinearArith (Either SomeBVException ArithException) SomeIntN m => r) -> r Source # | |||||
(MonadError (Either SomeBVException ArithException) m, UnifiedBranching mode m) => UnifiedSafeLinearArith mode (Either SomeBVException ArithException) SomeWordN m Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedSafeLinearArith Methods withBaseSafeLinearArith :: (SafeLinearArith (Either SomeBVException ArithException) SomeWordN m => r) -> r Source # | |||||
(MonadError (Either SomeBVException ArithException) m, UnifiedBranching 'S m) => UnifiedSafeSymRotate 'S (Either SomeBVException ArithException) SomeSymIntN m Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedSafeSymRotate Methods withBaseSafeSymRotate :: (SafeSymRotate (Either SomeBVException ArithException) SomeSymIntN m => r) -> r Source # | |||||
(MonadError (Either SomeBVException ArithException) m, UnifiedBranching 'S m) => UnifiedSafeSymRotate 'S (Either SomeBVException ArithException) SomeSymWordN m Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedSafeSymRotate Methods withBaseSafeSymRotate :: (SafeSymRotate (Either SomeBVException ArithException) SomeSymWordN m => r) -> r Source # | |||||
(MonadError (Either SomeBVException ArithException) m, UnifiedBranching mode m) => UnifiedSafeSymRotate mode (Either SomeBVException ArithException) SomeIntN m Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedSafeSymRotate Methods withBaseSafeSymRotate :: (SafeSymRotate (Either SomeBVException ArithException) SomeIntN m => r) -> r Source # | |||||
(MonadError (Either SomeBVException ArithException) m, UnifiedBranching mode m) => UnifiedSafeSymRotate mode (Either SomeBVException ArithException) SomeWordN m Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedSafeSymRotate Methods withBaseSafeSymRotate :: (SafeSymRotate (Either SomeBVException ArithException) SomeWordN m => r) -> r Source # | |||||
(MonadError (Either SomeBVException ArithException) m, UnifiedBranching 'S m) => UnifiedSafeSymShift 'S (Either SomeBVException ArithException) SomeSymIntN m Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedSafeSymShift Methods withBaseSafeSymShift :: (SafeSymShift (Either SomeBVException ArithException) SomeSymIntN m => r) -> r Source # | |||||
(MonadError (Either SomeBVException ArithException) m, UnifiedBranching 'S m) => UnifiedSafeSymShift 'S (Either SomeBVException ArithException) SomeSymWordN m Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedSafeSymShift Methods withBaseSafeSymShift :: (SafeSymShift (Either SomeBVException ArithException) SomeSymWordN m => r) -> r Source # | |||||
(MonadError (Either SomeBVException ArithException) m, UnifiedBranching mode m) => UnifiedSafeSymShift mode (Either SomeBVException ArithException) SomeIntN m Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedSafeSymShift Methods withBaseSafeSymShift :: (SafeSymShift (Either SomeBVException ArithException) SomeIntN m => r) -> r Source # | |||||
(MonadError (Either SomeBVException ArithException) m, UnifiedBranching mode m) => UnifiedSafeSymShift mode (Either SomeBVException ArithException) SomeWordN m Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedSafeSymShift Methods withBaseSafeSymShift :: (SafeSymShift (Either SomeBVException ArithException) SomeWordN m => r) -> r Source # | |||||
(forall (n :: Nat). (KnownNat n, 1 <= n) => SafeLinearArith e (bv n) (ExceptT e m), MonadError (Either SomeBVException e) m, TryMerge m, Mergeable e, forall (n :: Nat). (KnownNat n, 1 <= n) => Num (bv n), MaySomeBV bv) => SafeLinearArith (Either SomeBVException e) (SomeBV bv) m Source # | |||||
(forall (n :: Nat). (KnownNat n, 1 <= n) => SafeSymRotate e (bv n) (ExceptT e m), MonadError (Either SomeBVException e) m, TryMerge m, Mergeable e, forall (n :: Nat). (KnownNat n, 1 <= n) => Num (bv n), MaySomeBV bv) => SafeSymRotate (Either SomeBVException e) (SomeBV bv) m Source # | |||||
Defined in Grisette.Internal.SymPrim.SomeBV | |||||
(forall (n :: Nat). (KnownNat n, 1 <= n) => SafeSymShift e (bv n) (ExceptT e m), MonadError (Either SomeBVException e) m, TryMerge m, Mergeable e, forall (n :: Nat). (KnownNat n, 1 <= n) => Num (bv n), MaySomeBV bv) => SafeSymShift (Either SomeBVException e) (SomeBV bv) m Source # | |||||
Defined in Grisette.Internal.SymPrim.SomeBV | |||||
(forall (n :: Nat). (KnownNat n, 1 <= n) => SafeDiv e (bv n) (ExceptT e m), MonadError (Either SomeBVException e) m, TryMerge m, Mergeable e, forall (n :: Nat). (KnownNat n, 1 <= n) => Num (bv n), MaySomeBV bv) => SafeDiv (Either SomeBVException e) (SomeBV bv) m Source # | |||||
Defined in Grisette.Internal.SymPrim.SomeBV Methods safeDiv :: SomeBV bv -> SomeBV bv -> m (SomeBV bv) Source # safeMod :: SomeBV bv -> SomeBV bv -> m (SomeBV bv) Source # safeDivMod :: SomeBV bv -> SomeBV bv -> m (SomeBV bv, SomeBV bv) Source # safeQuot :: SomeBV bv -> SomeBV bv -> m (SomeBV bv) Source # safeRem :: SomeBV bv -> SomeBV bv -> m (SomeBV bv) Source # safeQuotRem :: SomeBV bv -> SomeBV bv -> m (SomeBV bv, SomeBV bv) Source # | |||||
type Rep SomeBVException Source # | |||||
Defined in Grisette.Internal.SymPrim.SomeBV type Rep SomeBVException = D1 ('MetaData "SomeBVException" "Grisette.Internal.SymPrim.SomeBV" "grisette-0.13.0.1-LKOkrwJaCqLLaF4eMpvbe4" 'False) (C1 ('MetaCons "BitwidthMismatch" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "UndeterminedBitwidth" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text))) |
pattern SomeIntN :: forall (n :: Nat). () => (KnownNat n, 1 <= n) => IntN n -> SomeIntN Source #
Pattern synonym for SomeBV
for concrete signed bitvectors.
pattern SomeWordN :: forall (n :: Nat). () => (KnownNat n, 1 <= n) => WordN n -> SomeWordN Source #
Pattern synonym for SomeBV
for concrete unsigned bitvectors.
conBV :: forall (cbv :: Natural -> Type) (bv :: Natural -> Type). (forall (n :: Nat). (KnownNat n, 1 <= n) => Solvable (cbv n) (bv n), Solvable (cbv 1) (bv 1)) => SomeBV cbv -> SomeBV bv Source #
conBVView :: forall (cbv :: Natural -> Type) (bv :: Natural -> Type). (forall (n :: Nat). (KnownNat n, 1 <= n) => Solvable (cbv n) (bv n), Solvable (cbv 1) (bv 1)) => SomeBV bv -> Maybe (SomeBV cbv) Source #
pattern ConBV :: (forall (n :: Nat). (KnownNat n, 1 <= n) => Solvable (cbv n) (bv n), Solvable (cbv 1) (bv 1)) => SomeBV cbv -> SomeBV bv Source #
symBV :: forall (cbv :: Natural -> Type) (bv :: Natural -> Type). (forall (n :: Nat). (KnownNat n, 1 <= n) => Solvable (cbv n) (bv n), Solvable (cbv 1) (bv 1)) => Int -> Symbol -> SomeBV bv Source #
ssymBV :: forall (cbv :: Natural -> Type) (bv :: Natural -> Type). (forall (n :: Nat). (KnownNat n, 1 <= n) => Solvable (cbv n) (bv n), Solvable (cbv 1) (bv 1)) => Int -> Identifier -> SomeBV bv Source #
isymBV :: forall (cbv :: Natural -> Type) (bv :: Natural -> Type). (forall (n :: Nat). (KnownNat n, 1 <= n) => Solvable (cbv n) (bv n), Solvable (cbv 1) (bv 1)) => Int -> Identifier -> Int -> SomeBV bv Source #
arbitraryBV :: forall (bv :: Nat -> Type). (forall (n :: Nat). (KnownNat n, 1 <= n) => Arbitrary (bv n)) => Int -> Gen (SomeBV bv) Source #
Generate an arbitrary SomeBV
with a given run-time bitwidth.
Some low-level helpers for writing instances for SomeBV
The functions here will check the bitwidths of the input bit-vectors
and raise BitwidthMismatch
if they do not match.
unsafeSomeBV :: Int -> (forall (proxy :: Nat -> Type) (n :: Nat). (KnownNat n, 1 <= n) => proxy n -> bv n) -> SomeBV bv Source #
Construct a SomeBV
with a given run-time bitwidth and a polymorphic
value for the underlying bitvector.
unarySomeBV :: (forall (n :: Nat). (KnownNat n, 1 <= n) => bv n -> r) -> (SomeBVLit -> r) -> SomeBV bv -> r Source #
Lift a unary operation on sized bitvectors that returns anything to
SomeBV
.
unarySomeBVR1 :: (forall (n :: Nat). (KnownNat n, 1 <= n) => bv n -> bv n) -> (SomeBVLit -> SomeBVLit) -> SomeBV bv -> SomeBV bv Source #
binSomeBV :: (forall (n :: Nat). (KnownNat n, 1 <= n) => Num (bv n), MaySomeBV bv) => (forall (n :: Nat). (KnownNat n, 1 <= n) => bv n -> bv n -> r) -> (SomeBVLit -> SomeBVLit -> r) -> SomeBV bv -> SomeBV bv -> r Source #
Lift a binary operation on sized bitvectors that returns anything to
SomeBV
. Crash if the bitwidths do not match.
binSomeBVR1 :: (forall (n :: Nat). (KnownNat n, 1 <= n) => Num (bv n), MaySomeBV bv) => (forall (n :: Nat). (KnownNat n, 1 <= n) => bv n -> bv n -> bv n) -> (SomeBVLit -> SomeBVLit -> SomeBVLit) -> SomeBV bv -> SomeBV bv -> SomeBV bv Source #
binSomeBVR2 :: (forall (n :: Nat). (KnownNat n, 1 <= n) => Num (bv n), MaySomeBV bv) => (forall (n :: Nat). (KnownNat n, 1 <= n) => bv n -> bv n -> (bv n, bv n)) -> (SomeBVLit -> SomeBVLit -> (SomeBVLit, SomeBVLit)) -> SomeBV bv -> SomeBV bv -> (SomeBV bv, SomeBV bv) Source #
binSomeBVSafe :: (MonadError (Either SomeBVException e) m, TryMerge m, Mergeable e, Mergeable r, forall (n :: Nat). (KnownNat n, 1 <= n) => Num (bv n), MaySomeBV bv) => (forall (n :: Nat). (KnownNat n, 1 <= n) => bv n -> bv n -> ExceptT e m r) -> (SomeBVLit -> SomeBVLit -> ExceptT (Either SomeBVException e) m r) -> SomeBV bv -> SomeBV bv -> m r Source #
Lift a binary operation on sized bitvectors that returns anything wrapped
with ExceptT
to SomeBV
. If the bitwidths do not match, throw an
BitwidthMismatch
error to the monadic context.
binSomeBVSafeR1 :: (MonadError (Either SomeBVException e) m, TryMerge m, Mergeable e, forall (n :: Nat). (KnownNat n, 1 <= n) => Mergeable (bv n), forall (n :: Nat). (KnownNat n, 1 <= n) => Num (bv n), MaySomeBV bv) => (forall (n :: Nat). (KnownNat n, 1 <= n) => bv n -> bv n -> ExceptT e m (bv n)) -> (SomeBVLit -> SomeBVLit -> ExceptT (Either SomeBVException e) m SomeBVLit) -> SomeBV bv -> SomeBV bv -> m (SomeBV bv) Source #
Lift a binary operation on sized bitvectors that returns a bitvector
wrapped with ExceptT
to SomeBV
. The result will also be wrapped with
SomeBV
.
If the bitwidths do not match, throw an BitwidthMismatch
error to the
monadic context.
binSomeBVSafeR2 :: (MonadError (Either SomeBVException e) m, TryMerge m, Mergeable e, forall (n :: Nat). (KnownNat n, 1 <= n) => Mergeable (bv n), forall (n :: Nat). (KnownNat n, 1 <= n) => Num (bv n), MaySomeBV bv) => (forall (n :: Nat). (KnownNat n, 1 <= n) => bv n -> bv n -> ExceptT e m (bv n, bv n)) -> (SomeBVLit -> SomeBVLit -> ExceptT (Either SomeBVException e) m (SomeBVLit, SomeBVLit)) -> SomeBV bv -> SomeBV bv -> m (SomeBV bv, SomeBV bv) Source #
Lift a binary operation on sized bitvectors that returns two bitvectors
wrapped with ExceptT
to SomeBV
. The results will also be wrapped with
SomeBV
.
If the bitwidths do not match, throw an BitwidthMismatch
error to the
monadic context.
Floating point
type ValidFP (eb :: Nat) (sb :: Nat) = ValidFloat eb sb Source #
A type-level proof that the given bit-widths are valid for a floating-point number.
data FP (eb :: Nat) (sb :: Nat) Source #
IEEE 754 floating-point number with eb
exponent bits and sb
significand
bits.
>>>
1.0 + 2.0 :: FP 11 53
3.0
More operations are available. Please refer to Grisette.Core for more information.
Instances
PEvalFPTerm FP Source # | |||||||||
Defined in Grisette.Internal.SymPrim.Prim.Internal.Instances.PEvalFP Methods pevalFPTraitTerm :: forall (eb :: Nat) (sb :: Nat). ValidFP eb sb => FPTrait -> Term (FP eb sb) -> Term Bool Source # pevalFPUnaryTerm :: forall (eb :: Nat) (sb :: Nat). ValidFP eb sb => FPUnaryOp -> Term (FP eb sb) -> Term (FP eb sb) Source # pevalFPBinaryTerm :: forall (eb :: Nat) (sb :: Nat). ValidFP eb sb => FPBinaryOp -> Term (FP eb sb) -> Term (FP eb sb) -> Term (FP eb sb) Source # pevalFPRoundingUnaryTerm :: forall (eb :: Nat) (sb :: Nat). ValidFP eb sb => FPRoundingUnaryOp -> Term FPRoundingMode -> Term (FP eb sb) -> Term (FP eb sb) Source # pevalFPRoundingBinaryTerm :: forall (eb :: Nat) (sb :: Nat). ValidFP eb sb => FPRoundingBinaryOp -> Term FPRoundingMode -> Term (FP eb sb) -> Term (FP eb sb) -> Term (FP eb sb) Source # pevalFPFMATerm :: forall (eb :: Nat) (sb :: Nat). ValidFP eb sb => Term FPRoundingMode -> Term (FP eb sb) -> Term (FP eb sb) -> Term (FP eb sb) -> Term (FP eb sb) Source # sbvFPTraitTerm :: forall (eb :: Nat) (sb :: Nat). ValidFP eb sb => FPTrait -> SBVType (FP eb sb) -> SBVType Bool Source # sbvFPUnaryTerm :: forall (eb :: Nat) (sb :: Nat). ValidFP eb sb => FPUnaryOp -> SBVType (FP eb sb) -> SBVType (FP eb sb) Source # sbvFPBinaryTerm :: forall (eb :: Nat) (sb :: Nat). ValidFP eb sb => FPBinaryOp -> SBVType (FP eb sb) -> SBVType (FP eb sb) -> SBVType (FP eb sb) Source # sbvFPRoundingUnaryTerm :: forall (eb :: Nat) (sb :: Nat). ValidFP eb sb => FPRoundingUnaryOp -> SBVType FPRoundingMode -> SBVType (FP eb sb) -> SBVType (FP eb sb) Source # sbvFPRoundingBinaryTerm :: forall (eb :: Nat) (sb :: Nat). ValidFP eb sb => FPRoundingBinaryOp -> SBVType FPRoundingMode -> SBVType (FP eb sb) -> SBVType (FP eb sb) -> SBVType (FP eb sb) Source # sbvFPFMATerm :: forall (eb :: Nat) (sb :: Nat). ValidFP eb sb => SBVType FPRoundingMode -> SBVType (FP eb sb) -> SBVType (FP eb sb) -> SBVType (FP eb sb) -> SBVType (FP eb sb) Source # | |||||||||
BitCast Int16 FP16 Source # | |||||||||
BitCast Int32 FP32 Source # | |||||||||
BitCast Int64 FP64 Source # | |||||||||
BitCast Word16 FP16 Source # | |||||||||
BitCast Word32 FP32 Source # | |||||||||
BitCast Word64 FP64 Source # | |||||||||
BitCast Double FP64 Source # | |||||||||
BitCast Float FP32 Source # | |||||||||
BitCastCanonical FP16 Int16 Source # | |||||||||
Defined in Grisette.Internal.SymPrim.FP Methods bitCastCanonicalValue :: proxy FP16 -> Int16 Source # | |||||||||
BitCastCanonical FP16 Word16 Source # | |||||||||
Defined in Grisette.Internal.SymPrim.FP Methods bitCastCanonicalValue :: proxy FP16 -> Word16 Source # | |||||||||
BitCastCanonical FP32 Int32 Source # | |||||||||
Defined in Grisette.Internal.SymPrim.FP Methods bitCastCanonicalValue :: proxy FP32 -> Int32 Source # | |||||||||
BitCastCanonical FP32 Word32 Source # | |||||||||
Defined in Grisette.Internal.SymPrim.FP Methods bitCastCanonicalValue :: proxy FP32 -> Word32 Source # | |||||||||
BitCastCanonical FP32 Float Source # | |||||||||
Defined in Grisette.Internal.SymPrim.FP Methods bitCastCanonicalValue :: proxy FP32 -> Float Source # | |||||||||
BitCastCanonical FP64 Int64 Source # | |||||||||
Defined in Grisette.Internal.SymPrim.FP Methods bitCastCanonicalValue :: proxy FP64 -> Int64 Source # | |||||||||
BitCastCanonical FP64 Word64 Source # | |||||||||
Defined in Grisette.Internal.SymPrim.FP Methods bitCastCanonicalValue :: proxy FP64 -> Word64 Source # | |||||||||
BitCastCanonical FP64 Double Source # | |||||||||
Defined in Grisette.Internal.SymPrim.FP Methods bitCastCanonicalValue :: proxy FP64 -> Double Source # | |||||||||
BitCastOr FP16 Int16 Source # | |||||||||
BitCastOr FP16 Word16 Source # | |||||||||
BitCastOr FP32 Int32 Source # | |||||||||
BitCastOr FP32 Word32 Source # | |||||||||
BitCastOr FP32 Float Source # | |||||||||
BitCastOr FP64 Int64 Source # | |||||||||
BitCastOr FP64 Word64 Source # | |||||||||
BitCastOr FP64 Double Source # | |||||||||
(MonadError NotRepresentableFPError m, TryMerge m) => SafeBitCast NotRepresentableFPError FP16 Int16 m Source # | |||||||||
Defined in Grisette.Internal.Core.Data.Class.SafeBitCast Methods safeBitCast :: FP16 -> m Int16 Source # | |||||||||
(MonadError NotRepresentableFPError m, TryMerge m) => SafeBitCast NotRepresentableFPError FP16 Word16 m Source # | |||||||||
Defined in Grisette.Internal.Core.Data.Class.SafeBitCast Methods safeBitCast :: FP16 -> m Word16 Source # | |||||||||
(MonadError NotRepresentableFPError m, TryMerge m) => SafeBitCast NotRepresentableFPError FP32 Int32 m Source # | |||||||||
Defined in Grisette.Internal.Core.Data.Class.SafeBitCast Methods safeBitCast :: FP32 -> m Int32 Source # | |||||||||
(MonadError NotRepresentableFPError m, TryMerge m) => SafeBitCast NotRepresentableFPError FP32 Word32 m Source # | |||||||||
Defined in Grisette.Internal.Core.Data.Class.SafeBitCast Methods safeBitCast :: FP32 -> m Word32 Source # | |||||||||
(MonadError NotRepresentableFPError m, TryMerge m) => SafeBitCast NotRepresentableFPError FP32 Float m Source # | |||||||||
Defined in Grisette.Internal.Core.Data.Class.SafeBitCast Methods safeBitCast :: FP32 -> m Float Source # | |||||||||
(MonadError NotRepresentableFPError m, TryMerge m) => SafeBitCast NotRepresentableFPError FP64 Int64 m Source # | |||||||||
Defined in Grisette.Internal.Core.Data.Class.SafeBitCast Methods safeBitCast :: FP64 -> m Int64 Source # | |||||||||
(MonadError NotRepresentableFPError m, TryMerge m) => SafeBitCast NotRepresentableFPError FP64 Word64 m Source # | |||||||||
Defined in Grisette.Internal.Core.Data.Class.SafeBitCast Methods safeBitCast :: FP64 -> m Word64 Source # | |||||||||
(MonadError NotRepresentableFPError m, TryMerge m) => SafeBitCast NotRepresentableFPError FP64 Double m Source # | |||||||||
Defined in Grisette.Internal.Core.Data.Class.SafeBitCast Methods safeBitCast :: FP64 -> m Double Source # | |||||||||
ValidFP eb sb => UnifiedFPImpl 'C FP eb sb (FP eb sb) FPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.Internal.Impl.Unified.UnifiedFP Associated Types
| |||||||||
(MonadError NotRepresentableFPError m, UnifiedBranching mode m, ValidFP eb sb) => UnifiedSafeFromFP mode NotRepresentableFPError AlgReal (FP eb sb) FPRoundingMode m Source # | |||||||||
Defined in Grisette.Internal.Unified.Class.UnifiedSafeFromFP Methods withBaseSafeFromFP :: (SafeFromFP NotRepresentableFPError AlgReal (FP eb sb) FPRoundingMode m => r) -> r Source # | |||||||||
(MonadError NotRepresentableFPError m, UnifiedBranching mode m, ValidFP eb sb) => UnifiedSafeFromFP mode NotRepresentableFPError Integer (FP eb sb) FPRoundingMode m Source # | |||||||||
Defined in Grisette.Internal.Unified.Class.UnifiedSafeFromFP Methods withBaseSafeFromFP :: (SafeFromFP NotRepresentableFPError Integer (FP eb sb) FPRoundingMode m => r) -> r Source # | |||||||||
(MonadError NotRepresentableFPError m, UnifiedBranching mode m, ValidFP eb sb, KnownNat n, 1 <= n) => UnifiedSafeFromFP mode NotRepresentableFPError (IntN n) (FP eb sb) FPRoundingMode m Source # | |||||||||
Defined in Grisette.Internal.Unified.Class.UnifiedSafeFromFP Methods withBaseSafeFromFP :: (SafeFromFP NotRepresentableFPError (IntN n) (FP eb sb) FPRoundingMode m => r) -> r Source # | |||||||||
(MonadError NotRepresentableFPError m, UnifiedBranching mode m, ValidFP eb sb, KnownNat n, 1 <= n) => UnifiedSafeFromFP mode NotRepresentableFPError (WordN n) (FP eb sb) FPRoundingMode m Source # | |||||||||
Defined in Grisette.Internal.Unified.Class.UnifiedSafeFromFP Methods withBaseSafeFromFP :: (SafeFromFP NotRepresentableFPError (WordN n) (FP eb sb) FPRoundingMode m => r) -> r Source # | |||||||||
ValidFP eb sb => UnifiedFromIntegral 'C Integer (FP eb sb) Source # | |||||||||
(MonadError NotRepresentableFPError m, TryMerge m, ValidFP eb sb) => SafeFromFP NotRepresentableFPError AlgReal (FP eb sb) FPRoundingMode m Source # | |||||||||
Defined in Grisette.Internal.Core.Data.Class.SafeFromFP Methods safeFromFP :: FPRoundingMode -> FP eb sb -> m AlgReal Source # | |||||||||
(MonadError NotRepresentableFPError m, TryMerge m, ValidFP eb sb) => SafeFromFP NotRepresentableFPError Integer (FP eb sb) FPRoundingMode m Source # | |||||||||
Defined in Grisette.Internal.Core.Data.Class.SafeFromFP Methods safeFromFP :: FPRoundingMode -> FP eb sb -> m Integer Source # | |||||||||
(MonadError NotRepresentableFPError m, UnifiedBranching mode m, ValidFP eb sb, KnownNat n, 1 <= n, n ~ (eb + sb)) => UnifiedSafeBitCast mode NotRepresentableFPError (FP eb sb) (IntN n) m Source # | |||||||||
Defined in Grisette.Internal.Unified.Class.UnifiedSafeBitCast Methods withBaseSafeBitCast :: (SafeBitCast NotRepresentableFPError (FP eb sb) (IntN n) m => r) -> r Source # | |||||||||
(MonadError NotRepresentableFPError m, UnifiedBranching mode m, ValidFP eb sb, KnownNat n, 1 <= n, n ~ (eb + sb)) => UnifiedSafeBitCast mode NotRepresentableFPError (FP eb sb) (WordN n) m Source # | |||||||||
Defined in Grisette.Internal.Unified.Class.UnifiedSafeBitCast Methods withBaseSafeBitCast :: (SafeBitCast NotRepresentableFPError (FP eb sb) (WordN n) m => r) -> r Source # | |||||||||
(KnownNat n', 1 <= n', ValidFP eb sb) => UnifiedFromIntegral 'C (IntN n') (FP eb sb) Source # | |||||||||
(KnownNat n', 1 <= n', ValidFP eb sb) => UnifiedFromIntegral 'C (WordN n') (FP eb sb) Source # | |||||||||
(MonadError NotRepresentableFPError m, TryMerge m, ValidFP eb sb, KnownNat n, 1 <= n) => SafeFromFP NotRepresentableFPError (IntN n) (FP eb sb) FPRoundingMode m Source # | |||||||||
Defined in Grisette.Internal.Core.Data.Class.SafeFromFP Methods safeFromFP :: FPRoundingMode -> FP eb sb -> m (IntN n) Source # | |||||||||
(MonadError NotRepresentableFPError m, TryMerge m, ValidFP eb sb, KnownNat n, 1 <= n) => SafeFromFP NotRepresentableFPError (WordN n) (FP eb sb) FPRoundingMode m Source # | |||||||||
Defined in Grisette.Internal.Core.Data.Class.SafeFromFP Methods safeFromFP :: FPRoundingMode -> FP eb sb -> m (WordN n) Source # | |||||||||
(DecideEvalMode mode, ValidFP a1 a2) => UnifiedSymEq mode (FP a1 a2) Source # | |||||||||
(DecideEvalMode mode, ValidFP a1 a2) => UnifiedSymOrd mode (FP a1 a2) Source # | |||||||||
ValidFP eb sb => PEvalFromIntegralTerm Integer (FP eb sb) Source # | |||||||||
ValidFP eb sb => Lift (FP eb sb :: Type) Source # | |||||||||
ValidFP eb sb => IEEEFPConvertible AlgReal (FP eb sb) FPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.SymPrim.FP | |||||||||
ValidFP eb sb => IEEEFPConvertible Integer (FP eb sb) FPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.SymPrim.FP | |||||||||
ValidFP eb sb => IEEEFPToAlgReal AlgReal (FP eb sb) FPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.SymPrim.FP | |||||||||
(ValidFP eb sb, r ~ (eb + sb), KnownNat r, 1 <= r, TryMerge m, MonadError NotRepresentableFPError m) => SafeBitCast NotRepresentableFPError (FP eb sb) (IntN r) m Source # | |||||||||
Defined in Grisette.Internal.Core.Data.Class.SafeBitCast Methods safeBitCast :: FP eb sb -> m (IntN r) Source # | |||||||||
(ValidFP eb sb, r ~ (eb + sb), KnownNat r, 1 <= r, TryMerge m, MonadError NotRepresentableFPError m) => SafeBitCast NotRepresentableFPError (FP eb sb) (WordN r) m Source # | |||||||||
Defined in Grisette.Internal.Core.Data.Class.SafeBitCast Methods safeBitCast :: FP eb sb -> m (WordN r) Source # | |||||||||
ValidFP eb sb => UnifiedSolvable 'C (FP eb sb) (FP eb sb) Source # | |||||||||
ValidFP eb sb => UnifiedSolvable 'S (SymFP eb sb) (FP eb sb) Source # | |||||||||
(ValidFP eb sb, r ~ (eb + sb)) => BitCast (IntN r) (FP eb sb) Source # | |||||||||
(ValidFP eb sb, r ~ (eb + sb)) => BitCast (WordN r) (FP eb sb) Source # | |||||||||
(n ~ (eb + sb), ValidFP eb sb, KnownNat n, 1 <= n) => PEvalBitCastTerm (IntN n) (FP eb sb) Source # | |||||||||
(n ~ (eb + sb), ValidFP eb sb, KnownNat n, 1 <= n) => PEvalBitCastTerm (WordN n) (FP eb sb) Source # | |||||||||
(KnownNat n, 1 <= n, ValidFP eb sb) => PEvalFromIntegralTerm (IntN n) (FP eb sb) Source # | |||||||||
(KnownNat n, 1 <= n, ValidFP eb sb) => PEvalFromIntegralTerm (WordN n) (FP eb sb) Source # | |||||||||
(ValidFP eb sb, KnownNat n, 1 <= n) => IEEEFPConvertible (IntN n) (FP eb sb) FPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.SymPrim.FP | |||||||||
(ValidFP eb sb, KnownNat n, 1 <= n) => IEEEFPConvertible (WordN n) (FP eb sb) FPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.SymPrim.FP | |||||||||
ValidFloat eb sb => Arbitrary (FP eb sb) Source # | |||||||||
ValidFP eb sb => Binary (FP eb sb) Source # | |||||||||
ValidFP eb sb => Serial (FP eb sb) Source # | |||||||||
Defined in Grisette.Internal.SymPrim.FP | |||||||||
ValidFP eb sb => Serialize (FP eb sb) Source # | |||||||||
NFData (FP eb sb) Source # | |||||||||
Defined in Grisette.Internal.SymPrim.FP | |||||||||
ValidFloat eb sb => Floating (FP eb sb) Source # | |||||||||
Defined in Grisette.Internal.SymPrim.FP Methods sqrt :: FP eb sb -> FP eb sb # (**) :: FP eb sb -> FP eb sb -> FP eb sb # logBase :: FP eb sb -> FP eb sb -> FP eb sb # asin :: FP eb sb -> FP eb sb # acos :: FP eb sb -> FP eb sb # atan :: FP eb sb -> FP eb sb # sinh :: FP eb sb -> FP eb sb # cosh :: FP eb sb -> FP eb sb # tanh :: FP eb sb -> FP eb sb # asinh :: FP eb sb -> FP eb sb # acosh :: FP eb sb -> FP eb sb # atanh :: FP eb sb -> FP eb sb # log1p :: FP eb sb -> FP eb sb # expm1 :: FP eb sb -> FP eb sb # | |||||||||
ValidFloat eb sb => RealFloat (FP eb sb) Source # | |||||||||
Defined in Grisette.Internal.SymPrim.FP Methods floatRadix :: FP eb sb -> Integer # floatDigits :: FP eb sb -> Int # floatRange :: FP eb sb -> (Int, Int) # decodeFloat :: FP eb sb -> (Integer, Int) # encodeFloat :: Integer -> Int -> FP eb sb # significand :: FP eb sb -> FP eb sb # scaleFloat :: Int -> FP eb sb -> FP eb sb # isInfinite :: FP eb sb -> Bool # isDenormalized :: FP eb sb -> Bool # isNegativeZero :: FP eb sb -> Bool # | |||||||||
ValidFloat eb sb => Num (FP eb sb) Source # | |||||||||
ValidFloat eb sb => Fractional (FP eb sb) Source # | |||||||||
ValidFloat eb sb => Real (FP eb sb) Source # | |||||||||
Defined in Grisette.Internal.SymPrim.FP Methods toRational :: FP eb sb -> Rational # | |||||||||
ValidFloat eb sb => RealFrac (FP eb sb) Source # | |||||||||
Show (FP eb sb) Source # | |||||||||
Eq (FP eb sb) Source # | |||||||||
ValidFP eb sb => Ord (FP eb sb) Source # | |||||||||
Defined in Grisette.Internal.SymPrim.FP | |||||||||
ValidFP a b => KeyEq (FP a b) Source # | |||||||||
ValidFP a b => KeyHashable (FP a b) Source # | |||||||||
Defined in Grisette.Internal.Core.Data.Class.AsKey | |||||||||
Apply (FP eb sb) Source # | |||||||||
ValidFP eb sb => IEEEFPConstants (FP eb sb) Source # | |||||||||
Defined in Grisette.Internal.SymPrim.FP Methods fpPositiveInfinite :: FP eb sb Source # fpNegativeInfinite :: FP eb sb Source # fpNegativeZero :: FP eb sb Source # fpPositiveZero :: FP eb sb Source # fpMinNormalized :: FP eb sb Source # fpMinSubnormal :: FP eb sb Source # fpMaxNormalized :: FP eb sb Source # fpMaxSubnormal :: FP eb sb Source # | |||||||||
ValidFP eb sb => IEEEFPOp (FP eb sb) Source # | |||||||||
Defined in Grisette.Internal.SymPrim.FP Methods fpAbs :: FP eb sb -> FP eb sb Source # fpNeg :: FP eb sb -> FP eb sb Source # fpRem :: FP eb sb -> FP eb sb -> FP eb sb Source # fpMinimum :: FP eb sb -> FP eb sb -> FP eb sb Source # fpMinimumNumber :: FP eb sb -> FP eb sb -> FP eb sb Source # fpMaximum :: FP eb sb -> FP eb sb -> FP eb sb Source # fpMaximumNumber :: FP eb sb -> FP eb sb -> FP eb sb Source # | |||||||||
ValidFP eb sb => SymIEEEFPTraits (FP eb sb) Source # | |||||||||
Defined in Grisette.Internal.Core.Data.Class.SymIEEEFP Methods symFpIsNaN :: FP eb sb -> SymBool Source # symFpIsPositive :: FP eb sb -> SymBool Source # symFpIsNegative :: FP eb sb -> SymBool Source # symFpIsPositiveInfinite :: FP eb sb -> SymBool Source # symFpIsNegativeInfinite :: FP eb sb -> SymBool Source # symFpIsInfinite :: FP eb sb -> SymBool Source # symFpIsPositiveZero :: FP eb sb -> SymBool Source # symFpIsNegativeZero :: FP eb sb -> SymBool Source # symFpIsZero :: FP eb sb -> SymBool Source # symFpIsNormal :: FP eb sb -> SymBool Source # symFpIsSubnormal :: FP eb sb -> SymBool Source # symFpIsPoint :: FP eb sb -> SymBool Source # | |||||||||
ValidFP eb fb => EvalSym (FP eb fb) Source # | |||||||||
ValidFP eb sb => ExtractSym (FP eb sb) Source # | |||||||||
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.ExtractSym Methods extractSym :: FP eb sb -> AnySymbolSet Source # extractSymMaybe :: forall (knd :: SymbolKind). IsSymbolKind knd => FP eb sb -> Maybe (SymbolSet knd) Source # | |||||||||
ValidFP eb sb => Mergeable (FP eb sb) Source # | |||||||||
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.Mergeable Methods rootStrategy :: MergingStrategy (FP eb sb) Source # sortIndices :: FP eb sb -> [DynamicSortedIdx] Source # | |||||||||
ValidFP eb sb => PPrint (FP eb sb) Source # | |||||||||
ValidFP eb sb => SubstSym (FP eb sb) Source # | |||||||||
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.SubstSym Methods substSym :: forall cb sb0 (knd :: SymbolKind). (LinkedRep cb sb0, IsSymbolKind knd) => TypedSymbol knd cb -> sb0 -> FP eb sb -> FP eb sb Source # | |||||||||
ValidFP eb sb => SymEq (FP eb sb) Source # | |||||||||
ValidFP eb sb => SymOrd (FP eb sb) Source # | |||||||||
ValidFP eb sb => AllSyms (FP eb sb) Source # | |||||||||
ValidFP eb sb => NonFuncSBVRep (FP eb sb) Source # | |||||||||
Defined in Grisette.Internal.SymPrim.Prim.Internal.Term Associated Types
| |||||||||
ValidFP eb sb => PEvalFloatingTerm (FP eb sb) Source # | |||||||||
Defined in Grisette.Internal.SymPrim.Prim.Internal.Instances.PEvalFloatingTerm Methods pevalFloatingUnaryTerm :: FloatingUnaryOp -> Term (FP eb sb) -> Term (FP eb sb) Source # pevalPowerTerm :: Term (FP eb sb) -> Term (FP eb sb) -> Term (FP eb sb) Source # withSbvFloatingTermConstraint :: (Floating (SBVType (FP eb sb)) => r) -> r Source # sbvPowerTerm :: SBVType (FP eb sb) -> SBVType (FP eb sb) -> SBVType (FP eb sb) Source # sbvFloatingUnaryTerm :: FloatingUnaryOp -> SBVType (FP eb sb) -> SBVType (FP eb sb) Source # | |||||||||
ValidFP eb sb => PEvalFractionalTerm (FP eb sb) Source # | |||||||||
Defined in Grisette.Internal.SymPrim.Prim.Internal.Instances.PEvalFractionalTerm Methods pevalFdivTerm :: Term (FP eb sb) -> Term (FP eb sb) -> Term (FP eb sb) Source # pevalRecipTerm :: Term (FP eb sb) -> Term (FP eb sb) Source # withSbvFractionalTermConstraint :: (Fractional (SBVType (FP eb sb)) => r) -> r Source # sbvFdivTerm :: SBVType (FP eb sb) -> SBVType (FP eb sb) -> SBVType (FP eb sb) Source # sbvRecipTerm :: SBVType (FP eb sb) -> SBVType (FP eb sb) Source # | |||||||||
ValidFP eb sb => PEvalIEEEFPConvertibleTerm (FP eb sb) Source # | |||||||||
Defined in Grisette.Internal.SymPrim.Prim.Internal.Instances.PEvalIEEEFPConvertibleTerm Methods pevalFromFPOrTerm :: forall (eb0 :: Nat) (sb0 :: Nat). ValidFP eb0 sb0 => Term (FP eb sb) -> Term FPRoundingMode -> Term (FP eb0 sb0) -> Term (FP eb sb) Source # pevalToFPTerm :: forall (eb0 :: Nat) (sb0 :: Nat). ValidFP eb0 sb0 => Term FPRoundingMode -> Term (FP eb sb) -> Term (FP eb0 sb0) Source # sbvFromFPOrTerm :: forall (eb0 :: Nat) (sb0 :: Nat). ValidFP eb0 sb0 => SBVType (FP eb sb) -> SBVType FPRoundingMode -> SBVType (FP eb0 sb0) -> SBVType (FP eb sb) Source # sbvToFPTerm :: forall (eb0 :: Nat) (sb0 :: Nat). ValidFP eb0 sb0 => SBVType FPRoundingMode -> SBVType (FP eb sb) -> SBVType (FP eb0 sb0) Source # | |||||||||
ValidFP eb sb => PEvalNumTerm (FP eb sb) Source # | |||||||||
Defined in Grisette.Internal.SymPrim.Prim.Internal.Instances.PEvalNumTerm Methods pevalAddNumTerm :: Term (FP eb sb) -> Term (FP eb sb) -> Term (FP eb sb) Source # pevalNegNumTerm :: Term (FP eb sb) -> Term (FP eb sb) Source # pevalMulNumTerm :: Term (FP eb sb) -> Term (FP eb sb) -> Term (FP eb sb) Source # pevalAbsNumTerm :: Term (FP eb sb) -> Term (FP eb sb) Source # pevalSignumNumTerm :: Term (FP eb sb) -> Term (FP eb sb) Source # withSbvNumTermConstraint :: (Num (SBVType (FP eb sb)) => r) -> r Source # sbvAddNumTerm :: SBVType (FP eb sb) -> SBVType (FP eb sb) -> SBVType (FP eb sb) Source # sbvNegNumTerm :: SBVType (FP eb sb) -> SBVType (FP eb sb) Source # sbvMulNumTerm :: SBVType (FP eb sb) -> SBVType (FP eb sb) -> SBVType (FP eb sb) Source # sbvAbsNumTerm :: SBVType (FP eb sb) -> SBVType (FP eb sb) Source # sbvSignumNumTerm :: SBVType (FP eb sb) -> SBVType (FP eb sb) Source # | |||||||||
ValidFP eb sb => PEvalOrdTerm (FP eb sb) Source # | |||||||||
Defined in Grisette.Internal.SymPrim.Prim.Internal.Instances.PEvalOrdTerm Methods pevalLtOrdTerm :: Term (FP eb sb) -> Term (FP eb sb) -> Term Bool Source # pevalLeOrdTerm :: Term (FP eb sb) -> Term (FP eb sb) -> Term Bool Source # withSbvOrdTermConstraint :: (OrdSymbolic (SBVType (FP eb sb)) => r) -> r Source # sbvLtOrdTerm :: SBVType (FP eb sb) -> SBVType (FP eb sb) -> SBV Bool Source # sbvLeOrdTerm :: SBVType (FP eb sb) -> SBVType (FP eb sb) -> SBV Bool Source # | |||||||||
ValidFP eb sb => SBVRep (FP eb sb) Source # | |||||||||
Defined in Grisette.Internal.SymPrim.Prim.Internal.Term Associated Types
| |||||||||
ValidFP eb sb => SupportedNonFuncPrim (FP eb sb) Source # | |||||||||
Defined in Grisette.Internal.SymPrim.Prim.Internal.Term Methods conNonFuncSBVTerm :: FP eb sb -> SBV (NonFuncSBVBaseType (FP eb sb)) Source # symNonFuncSBVTerm :: SBVFreshMonad m => String -> m (SBV (NonFuncSBVBaseType (FP eb sb))) Source # withNonFuncPrim :: (NonFuncPrimConstraint (FP eb sb) => r) -> r Source # | |||||||||
ValidFP eb sb => SupportedPrim (FP eb sb) Source # | |||||||||
Defined in Grisette.Internal.SymPrim.Prim.Internal.Term Methods primTypeRep :: TypeRep (FP eb sb) Source # sameCon :: FP eb sb -> FP eb sb -> Bool Source # hashConWithSalt :: Int -> FP eb sb -> Int Source # pformatCon :: FP eb sb -> String Source # defaultValue :: FP eb sb Source # pevalITETerm :: Term Bool -> Term (FP eb sb) -> Term (FP eb sb) -> Term (FP eb sb) Source # pevalEqTerm :: Term (FP eb sb) -> Term (FP eb sb) -> Term Bool Source # pevalDistinctTerm :: NonEmpty (Term (FP eb sb)) -> Term Bool Source # conSBVTerm :: FP eb sb -> SBVType (FP eb sb) Source # symSBVName :: TypedSymbol 'AnyKind (FP eb sb) -> Int -> String Source # symSBVTerm :: SBVFreshMonad m => String -> m (SBVType (FP eb sb)) Source # withPrim :: ((PrimConstraint (FP eb sb), SMTDefinable (SBVType (FP eb sb)), Mergeable (SBVType (FP eb sb)), Typeable (SBVType (FP eb sb))) => a) -> a Source # sbvIte :: SBV Bool -> SBVType (FP eb sb) -> SBVType (FP eb sb) -> SBVType (FP eb sb) Source # sbvEq :: SBVType (FP eb sb) -> SBVType (FP eb sb) -> SBV Bool Source # sbvDistinct :: NonEmpty (SBVType (FP eb sb)) -> SBV Bool Source # parseSMTModelResult :: Int -> ([([CV], CV)], CV) -> FP eb sb Source # castTypedSymbol :: forall (knd' :: SymbolKind) (knd :: SymbolKind). IsSymbolKind knd' => TypedSymbol knd (FP eb sb) -> Maybe (TypedSymbol knd' (FP eb sb)) Source # funcDummyConstraint :: SBVType (FP eb sb) -> SBV Bool Source # | |||||||||
ValidFP eb sb => SupportedPrimConstraint (FP eb sb) Source # | |||||||||
Defined in Grisette.Internal.SymPrim.Prim.Internal.Term Associated Types
| |||||||||
ValidFP eb sb => SymRep (FP eb sb) Source # | |||||||||
Defined in Grisette.Internal.SymPrim.SymFP | |||||||||
ValidFP eb sb => UnifiedConRep (FP eb sb) Source # | |||||||||
Defined in Grisette.Internal.Unified.Class.UnifiedRep | |||||||||
ValidFP eb sb => UnifiedSymRep (FP eb sb) Source # | |||||||||
Defined in Grisette.Internal.Unified.Class.UnifiedRep | |||||||||
ValidFP eb sb => Hashable (FP eb sb) Source # | |||||||||
Defined in Grisette.Internal.SymPrim.FP | |||||||||
ValidFP eb sb => IEEEFPRoundingOp (FP eb sb) FPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.SymPrim.FP Methods fpAdd :: FPRoundingMode -> FP eb sb -> FP eb sb -> FP eb sb Source # fpSub :: FPRoundingMode -> FP eb sb -> FP eb sb -> FP eb sb Source # fpMul :: FPRoundingMode -> FP eb sb -> FP eb sb -> FP eb sb Source # fpDiv :: FPRoundingMode -> FP eb sb -> FP eb sb -> FP eb sb Source # fpFMA :: FPRoundingMode -> FP eb sb -> FP eb sb -> FP eb sb -> FP eb sb Source # fpSqrt :: FPRoundingMode -> FP eb sb -> FP eb sb Source # fpRoundToIntegral :: FPRoundingMode -> FP eb sb -> FP eb sb Source # | |||||||||
(ValidFP eb sb, n ~ (eb + sb)) => BitCastCanonical (FP eb sb) (IntN n) Source # | |||||||||
Defined in Grisette.Internal.SymPrim.FP Methods bitCastCanonicalValue :: proxy (FP eb sb) -> IntN n Source # | |||||||||
(ValidFP eb sb, n ~ (eb + sb)) => BitCastCanonical (FP eb sb) (WordN n) Source # | |||||||||
Defined in Grisette.Internal.SymPrim.FP Methods bitCastCanonicalValue :: proxy (FP eb sb) -> WordN n Source # | |||||||||
(ValidFP eb sb, n ~ (eb + sb)) => BitCastOr (FP eb sb) (IntN n) Source # | |||||||||
(ValidFP eb sb, r ~ (eb + sb)) => BitCastOr (FP eb sb) (WordN r) Source # | |||||||||
(n ~ (eb + sb), ValidFP eb sb, KnownNat n, 1 <= n) => PEvalBitCastOrTerm (FP eb sb) (IntN n) Source # | |||||||||
(n ~ (eb + sb), ValidFP eb sb, KnownNat n, 1 <= n) => PEvalBitCastOrTerm (FP eb sb) (WordN n) Source # | |||||||||
ValidFP eb sb => GenSym (FP eb sb) (FP eb sb) Source # | |||||||||
Defined in Grisette.Internal.Core.Data.Class.GenSym | |||||||||
ValidFP eb sb => GenSymSimple (FP eb sb) (FP eb sb) Source # | |||||||||
Defined in Grisette.Internal.Core.Data.Class.GenSym Methods simpleFresh :: MonadFresh m => FP eb sb -> m (FP eb sb) Source # | |||||||||
ValidFP eb sb => Solvable (FP eb sb) (SymFP eb sb) Source # | |||||||||
ValidFP eb sb => ToCon (FP eb sb) (FP eb sb) Source # | |||||||||
ValidFP eb sb => ToCon (SymFP eb sb) (FP eb sb) Source # | |||||||||
ValidFP eb sb => ToSym (FP eb sb) (FP eb sb) Source # | |||||||||
ValidFP eb sb => ToSym (FP eb sb) (SymFP eb sb) Source # | |||||||||
ValidFP eb sb => LinkedRep (FP eb sb) (SymFP eb sb) Source # | |||||||||
(ValidFP eb sb, ValidFP eb' sb') => IEEEFPConvertible (FP eb' sb') (FP eb sb) FPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.SymPrim.FP | |||||||||
type FunType (FP eb sb) Source # | |||||||||
Defined in Grisette.Internal.SymPrim.FP | |||||||||
type NonFuncSBVBaseType (FP eb sb) Source # | |||||||||
Defined in Grisette.Internal.SymPrim.Prim.Internal.Term | |||||||||
type PrimConstraint (FP eb sb) Source # | |||||||||
Defined in Grisette.Internal.SymPrim.Prim.Internal.Term | |||||||||
type SBVType (FP eb sb) Source # | |||||||||
Defined in Grisette.Internal.SymPrim.Prim.Internal.Term | |||||||||
type SymType (FP eb sb) Source # | |||||||||
Defined in Grisette.Internal.SymPrim.SymFP | |||||||||
type ConType (FP eb sb) Source # | |||||||||
Defined in Grisette.Internal.Unified.Class.UnifiedRep | |||||||||
type SymType (FP eb sb) Source # | |||||||||
Defined in Grisette.Internal.Unified.Class.UnifiedRep |
withValidFPProofs :: forall (eb :: Nat) (sb :: Nat) r. ValidFP eb sb => ((KnownNat (eb + sb), BVIsNonZero (eb + sb), 1 <= (eb + sb), 1 <= eb, 1 <= sb) => r) -> r Source #
Some type-level witnesses that could be derived from ValidFP
.
data FPRoundingMode Source #
Rounding mode for floating-point operations.
Constructors
RNE | Round to nearest, ties to even. |
RNA | Round to nearest, ties to away from zero. |
RTP | Round towards positive infinity. |
RTN | Round towards negative infinity. |
RTZ | Round towards zero. |
Instances
Arbitrary FPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.SymPrim.FP | |||||||||
Serial FPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.SymPrim.FP Methods serialize :: MonadPut m => FPRoundingMode -> m () # deserialize :: MonadGet m => m FPRoundingMode # | |||||||||
NFData FPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.SymPrim.FP Methods rnf :: FPRoundingMode -> () # | |||||||||
Generic FPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.SymPrim.FP Associated Types
Methods from :: FPRoundingMode -> Rep FPRoundingMode x # to :: Rep FPRoundingMode x -> FPRoundingMode # | |||||||||
Show FPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.SymPrim.FP Methods showsPrec :: Int -> FPRoundingMode -> ShowS # show :: FPRoundingMode -> String # showList :: [FPRoundingMode] -> ShowS # | |||||||||
Eq FPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.SymPrim.FP Methods (==) :: FPRoundingMode -> FPRoundingMode -> Bool # (/=) :: FPRoundingMode -> FPRoundingMode -> Bool # | |||||||||
Ord FPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.SymPrim.FP Methods compare :: FPRoundingMode -> FPRoundingMode -> Ordering # (<) :: FPRoundingMode -> FPRoundingMode -> Bool # (<=) :: FPRoundingMode -> FPRoundingMode -> Bool # (>) :: FPRoundingMode -> FPRoundingMode -> Bool # (>=) :: FPRoundingMode -> FPRoundingMode -> Bool # max :: FPRoundingMode -> FPRoundingMode -> FPRoundingMode # min :: FPRoundingMode -> FPRoundingMode -> FPRoundingMode # | |||||||||
Apply FPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.SymPrim.FP Associated Types
Methods | |||||||||
IEEEFPRoundingMode FPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.SymPrim.FP Methods rne :: FPRoundingMode Source # rna :: FPRoundingMode Source # rtp :: FPRoundingMode Source # rtn :: FPRoundingMode Source # rtz :: FPRoundingMode Source # | |||||||||
EvalSym FPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.EvalSym Methods evalSym :: Bool -> Model -> FPRoundingMode -> FPRoundingMode Source # | |||||||||
ExtractSym FPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.ExtractSym Methods extractSym :: FPRoundingMode -> AnySymbolSet Source # extractSymMaybe :: forall (knd :: SymbolKind). IsSymbolKind knd => FPRoundingMode -> Maybe (SymbolSet knd) Source # | |||||||||
Mergeable FPRoundingMode Source # | |||||||||
PPrint FPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint Methods pformat :: FPRoundingMode -> Doc ann Source # pformatPrec :: Int -> FPRoundingMode -> Doc ann Source # pformatList :: [FPRoundingMode] -> Doc ann Source # | |||||||||
SubstSym FPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.SubstSym Methods substSym :: forall cb sb (knd :: SymbolKind). (LinkedRep cb sb, IsSymbolKind knd) => TypedSymbol knd cb -> sb -> FPRoundingMode -> FPRoundingMode Source # | |||||||||
SymEq FPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.SymEq Methods (.==) :: FPRoundingMode -> FPRoundingMode -> SymBool Source # (./=) :: FPRoundingMode -> FPRoundingMode -> SymBool Source # symDistinct :: [FPRoundingMode] -> SymBool Source # | |||||||||
SymOrd FPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.SymOrd Methods (.<) :: FPRoundingMode -> FPRoundingMode -> SymBool Source # (.<=) :: FPRoundingMode -> FPRoundingMode -> SymBool Source # (.>) :: FPRoundingMode -> FPRoundingMode -> SymBool Source # (.>=) :: FPRoundingMode -> FPRoundingMode -> SymBool Source # symCompare :: FPRoundingMode -> FPRoundingMode -> Union Ordering Source # | |||||||||
AllSyms FPRoundingMode Source # | |||||||||
NonFuncSBVRep FPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.SymPrim.Prim.Internal.Term Associated Types
| |||||||||
PEvalOrdTerm FPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.SymPrim.Prim.Internal.Instances.PEvalOrdTerm Methods pevalLtOrdTerm :: Term FPRoundingMode -> Term FPRoundingMode -> Term Bool Source # pevalLeOrdTerm :: Term FPRoundingMode -> Term FPRoundingMode -> Term Bool Source # withSbvOrdTermConstraint :: (OrdSymbolic (SBVType FPRoundingMode) => r) -> r Source # sbvLtOrdTerm :: SBVType FPRoundingMode -> SBVType FPRoundingMode -> SBV Bool Source # sbvLeOrdTerm :: SBVType FPRoundingMode -> SBVType FPRoundingMode -> SBV Bool Source # | |||||||||
SBVRep FPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.SymPrim.Prim.Internal.Term Associated Types
| |||||||||
SupportedNonFuncPrim FPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.SymPrim.Prim.Internal.Term Methods conNonFuncSBVTerm :: FPRoundingMode -> SBV (NonFuncSBVBaseType FPRoundingMode) Source # symNonFuncSBVTerm :: SBVFreshMonad m => String -> m (SBV (NonFuncSBVBaseType FPRoundingMode)) Source # withNonFuncPrim :: (NonFuncPrimConstraint FPRoundingMode => r) -> r Source # | |||||||||
SupportedPrim FPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.SymPrim.Prim.Internal.Term Methods primTypeRep :: TypeRep FPRoundingMode Source # sameCon :: FPRoundingMode -> FPRoundingMode -> Bool Source # hashConWithSalt :: Int -> FPRoundingMode -> Int Source # pformatCon :: FPRoundingMode -> String Source # defaultValue :: FPRoundingMode Source # pevalITETerm :: Term Bool -> Term FPRoundingMode -> Term FPRoundingMode -> Term FPRoundingMode Source # pevalEqTerm :: Term FPRoundingMode -> Term FPRoundingMode -> Term Bool Source # pevalDistinctTerm :: NonEmpty (Term FPRoundingMode) -> Term Bool Source # conSBVTerm :: FPRoundingMode -> SBVType FPRoundingMode Source # symSBVName :: TypedSymbol 'AnyKind FPRoundingMode -> Int -> String Source # symSBVTerm :: SBVFreshMonad m => String -> m (SBVType FPRoundingMode) Source # withPrim :: ((PrimConstraint FPRoundingMode, SMTDefinable (SBVType FPRoundingMode), Mergeable (SBVType FPRoundingMode), Typeable (SBVType FPRoundingMode)) => a) -> a Source # sbvIte :: SBV Bool -> SBVType FPRoundingMode -> SBVType FPRoundingMode -> SBVType FPRoundingMode Source # sbvEq :: SBVType FPRoundingMode -> SBVType FPRoundingMode -> SBV Bool Source # sbvDistinct :: NonEmpty (SBVType FPRoundingMode) -> SBV Bool Source # parseSMTModelResult :: Int -> ([([CV], CV)], CV) -> FPRoundingMode Source # castTypedSymbol :: forall (knd' :: SymbolKind) (knd :: SymbolKind). IsSymbolKind knd' => TypedSymbol knd FPRoundingMode -> Maybe (TypedSymbol knd' FPRoundingMode) Source # funcDummyConstraint :: SBVType FPRoundingMode -> SBV Bool Source # | |||||||||
SupportedPrimConstraint FPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.SymPrim.Prim.Internal.Term Associated Types
| |||||||||
SymRep FPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.SymPrim.SymFP Associated Types
| |||||||||
Hashable FPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.SymPrim.FP | |||||||||
GenSym FPRoundingMode FPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.Core.Data.Class.GenSym Methods fresh :: MonadFresh m => FPRoundingMode -> m (Union FPRoundingMode) Source # | |||||||||
GenSymSimple FPRoundingMode FPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.Core.Data.Class.GenSym Methods simpleFresh :: MonadFresh m => FPRoundingMode -> m FPRoundingMode Source # | |||||||||
Solvable FPRoundingMode SymFPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.SymPrim.SymFP Methods con :: FPRoundingMode -> SymFPRoundingMode Source # conView :: SymFPRoundingMode -> Maybe FPRoundingMode Source # sym :: Symbol -> SymFPRoundingMode Source # ssym :: Identifier -> SymFPRoundingMode Source # isym :: Identifier -> Int -> SymFPRoundingMode Source # | |||||||||
ToCon FPRoundingMode FPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.ToCon Methods | |||||||||
ToCon SymFPRoundingMode FPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.ToCon Methods | |||||||||
ToSym FPRoundingMode FPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.ToSym Methods toSym :: FPRoundingMode -> FPRoundingMode Source # | |||||||||
ToSym FPRoundingMode SymFPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.ToSym Methods | |||||||||
DecideEvalMode mode => UnifiedSymEq mode FPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.Internal.Impl.Unified.Class.UnifiedSymEq Methods withBaseSymEq :: (If (IsConMode mode) (Eq FPRoundingMode) (SymEq FPRoundingMode) => r) -> r Source # | |||||||||
DecideEvalMode mode => UnifiedSymOrd mode FPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.Internal.Impl.Unified.Class.UnifiedSymOrd Methods withBaseSymOrd :: (If (IsConMode mode) (Ord FPRoundingMode) (SymOrd FPRoundingMode) => r) -> r Source # | |||||||||
LinkedRep FPRoundingMode SymFPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.SymPrim.SymFP Methods underlyingTerm :: SymFPRoundingMode -> Term FPRoundingMode Source # wrapTerm :: Term FPRoundingMode -> SymFPRoundingMode Source # | |||||||||
Lift FPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.SymPrim.FP Methods lift :: Quote m => FPRoundingMode -> m Exp # liftTyped :: forall (m :: Type -> Type). Quote m => FPRoundingMode -> Code m FPRoundingMode # | |||||||||
ValidFP eb sb => UnifiedFPImpl 'C FP eb sb (FP eb sb) FPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.Internal.Impl.Unified.UnifiedFP Associated Types
| |||||||||
(MonadError NotRepresentableFPError m, UnifiedBranching mode m, ValidFP eb sb) => UnifiedSafeFromFP mode NotRepresentableFPError AlgReal (FP eb sb) FPRoundingMode m Source # | |||||||||
Defined in Grisette.Internal.Unified.Class.UnifiedSafeFromFP Methods withBaseSafeFromFP :: (SafeFromFP NotRepresentableFPError AlgReal (FP eb sb) FPRoundingMode m => r) -> r Source # | |||||||||
(MonadError NotRepresentableFPError m, UnifiedBranching mode m, ValidFP eb sb) => UnifiedSafeFromFP mode NotRepresentableFPError Integer (FP eb sb) FPRoundingMode m Source # | |||||||||
Defined in Grisette.Internal.Unified.Class.UnifiedSafeFromFP Methods withBaseSafeFromFP :: (SafeFromFP NotRepresentableFPError Integer (FP eb sb) FPRoundingMode m => r) -> r Source # | |||||||||
(MonadError NotRepresentableFPError m, UnifiedBranching mode m, ValidFP eb sb, KnownNat n, 1 <= n) => UnifiedSafeFromFP mode NotRepresentableFPError (IntN n) (FP eb sb) FPRoundingMode m Source # | |||||||||
Defined in Grisette.Internal.Unified.Class.UnifiedSafeFromFP Methods withBaseSafeFromFP :: (SafeFromFP NotRepresentableFPError (IntN n) (FP eb sb) FPRoundingMode m => r) -> r Source # | |||||||||
(MonadError NotRepresentableFPError m, UnifiedBranching mode m, ValidFP eb sb, KnownNat n, 1 <= n) => UnifiedSafeFromFP mode NotRepresentableFPError (WordN n) (FP eb sb) FPRoundingMode m Source # | |||||||||
Defined in Grisette.Internal.Unified.Class.UnifiedSafeFromFP Methods withBaseSafeFromFP :: (SafeFromFP NotRepresentableFPError (WordN n) (FP eb sb) FPRoundingMode m => r) -> r Source # | |||||||||
(MonadError NotRepresentableFPError m, TryMerge m, ValidFP eb sb) => SafeFromFP NotRepresentableFPError AlgReal (FP eb sb) FPRoundingMode m Source # | |||||||||
Defined in Grisette.Internal.Core.Data.Class.SafeFromFP Methods safeFromFP :: FPRoundingMode -> FP eb sb -> m AlgReal Source # | |||||||||
(MonadError NotRepresentableFPError m, TryMerge m, ValidFP eb sb) => SafeFromFP NotRepresentableFPError Integer (FP eb sb) FPRoundingMode m Source # | |||||||||
Defined in Grisette.Internal.Core.Data.Class.SafeFromFP Methods safeFromFP :: FPRoundingMode -> FP eb sb -> m Integer Source # | |||||||||
(MonadError NotRepresentableFPError m, TryMerge m, ValidFP eb sb, KnownNat n, 1 <= n) => SafeFromFP NotRepresentableFPError (IntN n) (FP eb sb) FPRoundingMode m Source # | |||||||||
Defined in Grisette.Internal.Core.Data.Class.SafeFromFP Methods safeFromFP :: FPRoundingMode -> FP eb sb -> m (IntN n) Source # | |||||||||
(MonadError NotRepresentableFPError m, TryMerge m, ValidFP eb sb, KnownNat n, 1 <= n) => SafeFromFP NotRepresentableFPError (WordN n) (FP eb sb) FPRoundingMode m Source # | |||||||||
Defined in Grisette.Internal.Core.Data.Class.SafeFromFP Methods safeFromFP :: FPRoundingMode -> FP eb sb -> m (WordN n) Source # | |||||||||
ValidFP eb sb => IEEEFPConvertible AlgReal (FP eb sb) FPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.SymPrim.FP | |||||||||
ValidFP eb sb => IEEEFPConvertible Integer (FP eb sb) FPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.SymPrim.FP | |||||||||
ValidFP eb sb => IEEEFPToAlgReal AlgReal (FP eb sb) FPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.SymPrim.FP | |||||||||
(ValidFP eb sb, KnownNat n, 1 <= n) => IEEEFPConvertible (IntN n) (FP eb sb) FPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.SymPrim.FP | |||||||||
(ValidFP eb sb, KnownNat n, 1 <= n) => IEEEFPConvertible (WordN n) (FP eb sb) FPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.SymPrim.FP | |||||||||
ValidFP eb sb => IEEEFPRoundingOp (FP eb sb) FPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.SymPrim.FP Methods fpAdd :: FPRoundingMode -> FP eb sb -> FP eb sb -> FP eb sb Source # fpSub :: FPRoundingMode -> FP eb sb -> FP eb sb -> FP eb sb Source # fpMul :: FPRoundingMode -> FP eb sb -> FP eb sb -> FP eb sb Source # fpDiv :: FPRoundingMode -> FP eb sb -> FP eb sb -> FP eb sb Source # fpFMA :: FPRoundingMode -> FP eb sb -> FP eb sb -> FP eb sb -> FP eb sb Source # fpSqrt :: FPRoundingMode -> FP eb sb -> FP eb sb Source # fpRoundToIntegral :: FPRoundingMode -> FP eb sb -> FP eb sb Source # | |||||||||
(ValidFP eb sb, ValidFP eb' sb') => IEEEFPConvertible (FP eb' sb') (FP eb sb) FPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.SymPrim.FP | |||||||||
type Rep FPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.SymPrim.FP type Rep FPRoundingMode = D1 ('MetaData "FPRoundingMode" "Grisette.Internal.SymPrim.FP" "grisette-0.13.0.1-LKOkrwJaCqLLaF4eMpvbe4" 'False) ((C1 ('MetaCons "RNE" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "RNA" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "RTP" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "RTN" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "RTZ" 'PrefixI 'False) (U1 :: Type -> Type)))) | |||||||||
type FunType FPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.SymPrim.FP | |||||||||
type NonFuncSBVBaseType FPRoundingMode Source # | |||||||||
type PrimConstraint FPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.SymPrim.Prim.Internal.Term | |||||||||
type SBVType FPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.SymPrim.Prim.Internal.Term | |||||||||
type SymType FPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.SymPrim.SymFP |
allFPRoundingMode :: [FPRoundingMode] Source #
All IEEE 754 rounding modes.
Algebraic real numbers
Algebraic real numbers. The representation can be abstract for roots-of-polynomials or intervals.
Constructors
AlgExactRational :: Rational -> AlgReal | Exact rational number. |
AlgInexactRational :: Rational -> AlgReal | Inexact rational numbers. SMT-solver return it with ? at the end. |
AlgPolyRoot | Algebraic real number as a root of a polynomial. |
Fields
| |
AlgInterval | Interval with low and high bounds. |
Instances
Arbitrary AlgReal Source # | |||||
Binary AlgReal Source # | |||||
Serial AlgReal Source # | |||||
Defined in Grisette.Internal.SymPrim.AlgReal | |||||
Serialize AlgReal Source # | |||||
NFData AlgReal Source # | |||||
Defined in Grisette.Internal.SymPrim.AlgReal | |||||
Generic AlgReal Source # | |||||
Defined in Grisette.Internal.SymPrim.AlgReal Associated Types
| |||||
Num AlgReal Source # | |||||
Fractional AlgReal Source # | Unlike sbv, we throw the error when divided by zero happens | ||||
Real AlgReal Source # | |||||
Defined in Grisette.Internal.SymPrim.AlgReal Methods toRational :: AlgReal -> Rational # | |||||
Show AlgReal Source # | |||||
Eq AlgReal Source # | |||||
Ord AlgReal Source # | |||||
Defined in Grisette.Internal.SymPrim.AlgReal | |||||
KeyEq AlgReal Source # | |||||
KeyHashable AlgReal Source # | |||||
Defined in Grisette.Internal.Core.Data.Class.AsKey | |||||
Apply AlgReal Source # | |||||
FdivOr AlgReal Source # | |||||
EvalSym AlgReal Source # | |||||
ExtractSym AlgReal Source # | |||||
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.ExtractSym Methods extractSym :: AlgReal -> AnySymbolSet Source # extractSymMaybe :: forall (knd :: SymbolKind). IsSymbolKind knd => AlgReal -> Maybe (SymbolSet knd) Source # | |||||
Mergeable AlgReal Source # | |||||
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.Mergeable Methods rootStrategy :: MergingStrategy AlgReal Source # sortIndices :: AlgReal -> [DynamicSortedIdx] Source # | |||||
PPrint AlgReal Source # | |||||
SubstSym AlgReal Source # | |||||
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.SubstSym Methods substSym :: forall cb sb (knd :: SymbolKind). (LinkedRep cb sb, IsSymbolKind knd) => TypedSymbol knd cb -> sb -> AlgReal -> AlgReal Source # | |||||
SymEq AlgReal Source # | |||||
SymOrd AlgReal Source # | |||||
AllSyms AlgReal Source # | |||||
NonFuncSBVRep AlgReal Source # | |||||
Defined in Grisette.Internal.SymPrim.Prim.Internal.Term Associated Types
| |||||
PEvalFloatingTerm AlgReal Source # | |||||
Defined in Grisette.Internal.SymPrim.Prim.Internal.Instances.PEvalFloatingTerm Methods pevalFloatingUnaryTerm :: FloatingUnaryOp -> Term AlgReal -> Term AlgReal Source # pevalPowerTerm :: Term AlgReal -> Term AlgReal -> Term AlgReal Source # withSbvFloatingTermConstraint :: (Floating (SBVType AlgReal) => r) -> r Source # sbvPowerTerm :: SBVType AlgReal -> SBVType AlgReal -> SBVType AlgReal Source # sbvFloatingUnaryTerm :: FloatingUnaryOp -> SBVType AlgReal -> SBVType AlgReal Source # | |||||
PEvalFractionalTerm AlgReal Source # | |||||
Defined in Grisette.Internal.SymPrim.Prim.Internal.Instances.PEvalFractionalTerm | |||||
PEvalIEEEFPConvertibleTerm AlgReal Source # | |||||
Defined in Grisette.Internal.SymPrim.Prim.Internal.Instances.PEvalIEEEFPConvertibleTerm Methods pevalFromFPOrTerm :: forall (eb :: Nat) (sb :: Nat). ValidFP eb sb => Term AlgReal -> Term FPRoundingMode -> Term (FP eb sb) -> Term AlgReal Source # pevalToFPTerm :: forall (eb :: Nat) (sb :: Nat). ValidFP eb sb => Term FPRoundingMode -> Term AlgReal -> Term (FP eb sb) Source # sbvFromFPOrTerm :: forall (eb :: Nat) (sb :: Nat). ValidFP eb sb => SBVType AlgReal -> SBVType FPRoundingMode -> SBVType (FP eb sb) -> SBVType AlgReal Source # sbvToFPTerm :: forall (eb :: Nat) (sb :: Nat). ValidFP eb sb => SBVType FPRoundingMode -> SBVType AlgReal -> SBVType (FP eb sb) Source # | |||||
PEvalNumTerm AlgReal Source # | |||||
Defined in Grisette.Internal.SymPrim.Prim.Internal.Instances.PEvalNumTerm Methods pevalAddNumTerm :: Term AlgReal -> Term AlgReal -> Term AlgReal Source # pevalNegNumTerm :: Term AlgReal -> Term AlgReal Source # pevalMulNumTerm :: Term AlgReal -> Term AlgReal -> Term AlgReal Source # pevalAbsNumTerm :: Term AlgReal -> Term AlgReal Source # pevalSignumNumTerm :: Term AlgReal -> Term AlgReal Source # withSbvNumTermConstraint :: (Num (SBVType AlgReal) => r) -> r Source # sbvAddNumTerm :: SBVType AlgReal -> SBVType AlgReal -> SBVType AlgReal Source # sbvNegNumTerm :: SBVType AlgReal -> SBVType AlgReal Source # sbvMulNumTerm :: SBVType AlgReal -> SBVType AlgReal -> SBVType AlgReal Source # sbvAbsNumTerm :: SBVType AlgReal -> SBVType AlgReal Source # sbvSignumNumTerm :: SBVType AlgReal -> SBVType AlgReal Source # | |||||
PEvalOrdTerm AlgReal Source # | |||||
Defined in Grisette.Internal.SymPrim.Prim.Internal.Instances.PEvalOrdTerm Methods pevalLtOrdTerm :: Term AlgReal -> Term AlgReal -> Term Bool Source # pevalLeOrdTerm :: Term AlgReal -> Term AlgReal -> Term Bool Source # withSbvOrdTermConstraint :: (OrdSymbolic (SBVType AlgReal) => r) -> r Source # sbvLtOrdTerm :: SBVType AlgReal -> SBVType AlgReal -> SBV Bool Source # sbvLeOrdTerm :: SBVType AlgReal -> SBVType AlgReal -> SBV Bool Source # | |||||
SBVRep AlgReal Source # | |||||
Defined in Grisette.Internal.SymPrim.Prim.Internal.Term | |||||
SupportedNonFuncPrim AlgReal Source # | |||||
Defined in Grisette.Internal.SymPrim.Prim.Internal.Term Methods conNonFuncSBVTerm :: AlgReal -> SBV (NonFuncSBVBaseType AlgReal) Source # symNonFuncSBVTerm :: SBVFreshMonad m => String -> m (SBV (NonFuncSBVBaseType AlgReal)) Source # withNonFuncPrim :: (NonFuncPrimConstraint AlgReal => r) -> r Source # | |||||
SupportedPrim AlgReal Source # | |||||
Defined in Grisette.Internal.SymPrim.Prim.Internal.Term Methods primTypeRep :: TypeRep AlgReal Source # sameCon :: AlgReal -> AlgReal -> Bool Source # hashConWithSalt :: Int -> AlgReal -> Int Source # pformatCon :: AlgReal -> String Source # defaultValue :: AlgReal Source # pevalITETerm :: Term Bool -> Term AlgReal -> Term AlgReal -> Term AlgReal Source # pevalEqTerm :: Term AlgReal -> Term AlgReal -> Term Bool Source # pevalDistinctTerm :: NonEmpty (Term AlgReal) -> Term Bool Source # conSBVTerm :: AlgReal -> SBVType AlgReal Source # symSBVName :: TypedSymbol 'AnyKind AlgReal -> Int -> String Source # symSBVTerm :: SBVFreshMonad m => String -> m (SBVType AlgReal) Source # withPrim :: ((PrimConstraint AlgReal, SMTDefinable (SBVType AlgReal), Mergeable (SBVType AlgReal), Typeable (SBVType AlgReal)) => a) -> a Source # sbvIte :: SBV Bool -> SBVType AlgReal -> SBVType AlgReal -> SBVType AlgReal Source # sbvEq :: SBVType AlgReal -> SBVType AlgReal -> SBV Bool Source # sbvDistinct :: NonEmpty (SBVType AlgReal) -> SBV Bool Source # parseSMTModelResult :: Int -> ([([CV], CV)], CV) -> AlgReal Source # castTypedSymbol :: forall (knd' :: SymbolKind) (knd :: SymbolKind). IsSymbolKind knd' => TypedSymbol knd AlgReal -> Maybe (TypedSymbol knd' AlgReal) Source # | |||||
SupportedPrimConstraint AlgReal Source # | |||||
Defined in Grisette.Internal.SymPrim.Prim.Internal.Term Associated Types
| |||||
SymRep AlgReal Source # | |||||
Defined in Grisette.Internal.SymPrim.SymAlgReal Associated Types
| |||||
UnifiedConRep AlgReal Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedRep | |||||
UnifiedSymRep AlgReal Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedRep Associated Types
| |||||
Hashable AlgReal Source # | |||||
Defined in Grisette.Internal.SymPrim.AlgReal | |||||
Solvable AlgReal SymAlgReal Source # | |||||
Defined in Grisette.Internal.SymPrim.SymAlgReal Methods con :: AlgReal -> SymAlgReal Source # conView :: SymAlgReal -> Maybe AlgReal Source # sym :: Symbol -> SymAlgReal Source # ssym :: Identifier -> SymAlgReal Source # isym :: Identifier -> Int -> SymAlgReal Source # | |||||
ToCon SymAlgReal AlgReal Source # | |||||
ToSym AlgReal SymAlgReal Source # | |||||
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.ToSym Methods toSym :: AlgReal -> SymAlgReal Source # | |||||
LinkedRep AlgReal SymAlgReal Source # | |||||
Defined in Grisette.Internal.SymPrim.SymAlgReal Methods underlyingTerm :: SymAlgReal -> Term AlgReal Source # | |||||
PEvalFromIntegralTerm Integer AlgReal Source # | |||||
Lift AlgReal Source # | |||||
(MonadError ArithException m, TryMerge m) => SafeFdiv ArithException AlgReal m Source # | |||||
UnifiedFromIntegral 'C Integer AlgReal Source # | |||||
UnifiedSolvable 'C AlgReal AlgReal Source # | |||||
UnifiedSolvable 'S SymAlgReal AlgReal Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedSolvable Methods withBaseSolvable :: (If (IsConMode 'S) (SymAlgReal ~ AlgReal) (Solvable AlgReal SymAlgReal) => r) -> r Source # | |||||
(MonadError ArithException m, UnifiedBranching mode m) => UnifiedSafeFdiv mode ArithException AlgReal m Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedSafeFdiv Methods withBaseUnifiedSafeFdiv :: (SafeFdiv ArithException AlgReal m => r) -> r Source # | |||||
(MonadError NotRepresentableFPError m, UnifiedBranching mode m, ValidFP eb sb) => UnifiedSafeFromFP mode NotRepresentableFPError AlgReal (FP eb sb) FPRoundingMode m Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedSafeFromFP Methods withBaseSafeFromFP :: (SafeFromFP NotRepresentableFPError AlgReal (FP eb sb) FPRoundingMode m => r) -> r Source # | |||||
(MonadError NotRepresentableFPError m, TryMerge m, ValidFP eb sb) => SafeFromFP NotRepresentableFPError AlgReal (FP eb sb) FPRoundingMode m Source # | |||||
Defined in Grisette.Internal.Core.Data.Class.SafeFromFP Methods safeFromFP :: FPRoundingMode -> FP eb sb -> m AlgReal Source # | |||||
(KnownNat n', 1 <= n') => UnifiedFromIntegral 'C (IntN n') AlgReal Source # | |||||
(KnownNat n', 1 <= n') => UnifiedFromIntegral 'C (WordN n') AlgReal Source # | |||||
ValidFP eb sb => IEEEFPConvertible AlgReal (FP eb sb) FPRoundingMode Source # | |||||
Defined in Grisette.Internal.SymPrim.FP | |||||
ValidFP eb sb => IEEEFPToAlgReal AlgReal (FP eb sb) FPRoundingMode Source # | |||||
Defined in Grisette.Internal.SymPrim.FP | |||||
(KnownNat n, 1 <= n) => PEvalFromIntegralTerm (IntN n) AlgReal Source # | |||||
(KnownNat n, 1 <= n) => PEvalFromIntegralTerm (WordN n) AlgReal Source # | |||||
type Rep AlgReal Source # | |||||
Defined in Grisette.Internal.SymPrim.AlgReal type Rep AlgReal = D1 ('MetaData "AlgReal" "Grisette.Internal.SymPrim.AlgReal" "grisette-0.13.0.1-LKOkrwJaCqLLaF4eMpvbe4" 'False) ((C1 ('MetaCons "AlgExactRational" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Rational)) :+: C1 ('MetaCons "AlgInexactRational" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Rational))) :+: (C1 ('MetaCons "AlgPolyRoot" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Integer) :*: (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 AlgRealPoly) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe String)))) :+: C1 ('MetaCons "AlgInterval" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 RealPoint) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 RealPoint)))) | |||||
type FunType AlgReal Source # | |||||
Defined in Grisette.Internal.SymPrim.AlgReal | |||||
type NonFuncSBVBaseType AlgReal Source # | |||||
Defined in Grisette.Internal.SymPrim.Prim.Internal.Term | |||||
type PrimConstraint AlgReal Source # | |||||
Defined in Grisette.Internal.SymPrim.Prim.Internal.Term | |||||
type SBVType AlgReal Source # | |||||
Defined in Grisette.Internal.SymPrim.Prim.Internal.Term | |||||
type SymType AlgReal Source # | |||||
Defined in Grisette.Internal.SymPrim.SymAlgReal | |||||
type ConType AlgReal Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedRep | |||||
type SymType AlgReal Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedRep |
newtype AlgRealPoly Source #
A univariate polynomial with integer coefficients.
For instance, 5x^3+2x-5
is represented as
.AlgRealPoly
[(5, 3), (2, 1), (-5, 0)]
Constructors
AlgRealPoly [(Integer, Integer)] |
Instances
Binary AlgRealPoly Source # | |||||
Defined in Grisette.Internal.SymPrim.AlgReal | |||||
Serial AlgRealPoly Source # | |||||
Defined in Grisette.Internal.SymPrim.AlgReal | |||||
Serialize AlgRealPoly Source # | |||||
Defined in Grisette.Internal.SymPrim.AlgReal | |||||
NFData AlgRealPoly Source # | |||||
Defined in Grisette.Internal.SymPrim.AlgReal Methods rnf :: AlgRealPoly -> () # | |||||
Generic AlgRealPoly Source # | |||||
Defined in Grisette.Internal.SymPrim.AlgReal Associated Types
| |||||
Eq AlgRealPoly Source # | |||||
Defined in Grisette.Internal.SymPrim.AlgReal | |||||
Mergeable AlgRealPoly Source # | |||||
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.Mergeable Methods rootStrategy :: MergingStrategy AlgRealPoly Source # sortIndices :: AlgRealPoly -> [DynamicSortedIdx] Source # | |||||
Hashable AlgRealPoly Source # | |||||
Defined in Grisette.Internal.SymPrim.AlgReal | |||||
Lift AlgRealPoly Source # | |||||
Defined in Grisette.Internal.SymPrim.AlgReal Methods lift :: Quote m => AlgRealPoly -> m Exp # liftTyped :: forall (m :: Type -> Type). Quote m => AlgRealPoly -> Code m AlgRealPoly # | |||||
type Rep AlgRealPoly Source # | |||||
Defined in Grisette.Internal.SymPrim.AlgReal type Rep AlgRealPoly = D1 ('MetaData "AlgRealPoly" "Grisette.Internal.SymPrim.AlgReal" "grisette-0.13.0.1-LKOkrwJaCqLLaF4eMpvbe4" 'True) (C1 ('MetaCons "AlgRealPoly" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [(Integer, Integer)]))) |
Boundary point for real intervals.
Constructors
OpenPoint Rational | Open point. |
ClosedPoint Rational | Closed point. |
Instances
Binary RealPoint Source # | |||||
Serial RealPoint Source # | |||||
Defined in Grisette.Internal.SymPrim.AlgReal | |||||
Serialize RealPoint Source # | |||||
NFData RealPoint Source # | |||||
Defined in Grisette.Internal.SymPrim.AlgReal | |||||
Generic RealPoint Source # | |||||
Defined in Grisette.Internal.SymPrim.AlgReal Associated Types
| |||||
Eq RealPoint Source # | |||||
Mergeable RealPoint Source # | |||||
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.Mergeable Methods rootStrategy :: MergingStrategy RealPoint Source # sortIndices :: RealPoint -> [DynamicSortedIdx] Source # | |||||
Hashable RealPoint Source # | |||||
Defined in Grisette.Internal.SymPrim.AlgReal | |||||
Lift RealPoint Source # | |||||
type Rep RealPoint Source # | |||||
Defined in Grisette.Internal.SymPrim.AlgReal type Rep RealPoint = D1 ('MetaData "RealPoint" "Grisette.Internal.SymPrim.AlgReal" "grisette-0.13.0.1-LKOkrwJaCqLLaF4eMpvbe4" 'False) (C1 ('MetaCons "OpenPoint" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Rational)) :+: C1 ('MetaCons "ClosedPoint" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Rational))) |
data UnsupportedAlgRealOperation Source #
Exception for unsupported operations on algebraic real numbers.
We only support operations on exact rationals.
Constructors
UnsupportedAlgRealOperation | |
Instances
Exception UnsupportedAlgRealOperation Source # | |
Show UnsupportedAlgRealOperation Source # | |
Defined in Grisette.Internal.SymPrim.AlgReal Methods showsPrec :: Int -> UnsupportedAlgRealOperation -> ShowS # show :: UnsupportedAlgRealOperation -> String # showList :: [UnsupportedAlgRealOperation] -> ShowS # |
Functions
data a =-> b infixr 0 Source #
Functions as a table. Use the #
operator to apply the function.
>>>
let f = TabularFun [(1, 2), (3, 4)] 0 :: Int =-> Int
>>>
f # 1
2>>>
f # 2
0>>>
f # 3
4
Constructors
TabularFun | |
Fields
|
Instances
Generic1 ((=->) a :: Type -> Type) Source # | |||||
Defined in Grisette.Internal.SymPrim.TabularFun Associated Types
| |||||
(Lift a, Lift b) => Lift (a =-> b :: Type) Source # | |||||
NFData a => NFData1 ((=->) a) Source # | |||||
Defined in Grisette.Internal.SymPrim.TabularFun | |||||
(SupportedPrim (ca =-> cb), SupportedNonFuncPrim ca, LinkedRep ca sa, LinkedRep cb sb) => ToSym (Union (ca =-> cb)) (sa =~> sb) Source # | |||||
(Serial a, Serial b) => Binary (a =-> b) Source # | |||||
(Serial a, Serial b) => Serial (a =-> b) Source # | |||||
Defined in Grisette.Internal.SymPrim.TabularFun | |||||
(Serial a, Serial b) => Serialize (a =-> b) Source # | |||||
(NFData a, NFData b) => NFData (a =-> b) Source # | |||||
Defined in Grisette.Internal.SymPrim.TabularFun | |||||
Generic (a =-> b) Source # | |||||
Defined in Grisette.Internal.SymPrim.TabularFun Associated Types
| |||||
(Show a, Show b) => Show (a =-> b) Source # | |||||
(Eq a, Eq b) => Eq (a =-> b) Source # | |||||
(Apply t, Eq a) => Apply (a =-> t) Source # | |||||
(EvalSym a, EvalSym b) => EvalSym (a =-> b) Source # | |||||
(ExtractSym a, ExtractSym b) => ExtractSym (a =-> b) Source # | |||||
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.ExtractSym Methods extractSym :: (a =-> b) -> AnySymbolSet Source # extractSymMaybe :: forall (knd :: SymbolKind). IsSymbolKind knd => (a =-> b) -> Maybe (SymbolSet knd) Source # | |||||
Mergeable (a =-> b) Source # | |||||
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.Mergeable Methods rootStrategy :: MergingStrategy (a =-> b) Source # sortIndices :: (a =-> b) -> [DynamicSortedIdx] Source # | |||||
(Show a, Show b) => PPrint (a =-> b) Source # | |||||
(SubstSym a, SubstSym b) => SubstSym (a =-> b) Source # | |||||
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.SubstSym Methods substSym :: forall cb sb (knd :: SymbolKind). (LinkedRep cb sb, IsSymbolKind knd) => TypedSymbol knd cb -> sb -> (a =-> b) -> a =-> b Source # | |||||
(SupportedNonFuncPrim a, SupportedPrim b) => SBVRep (a =-> b) Source # | |||||
Defined in Grisette.Internal.SymPrim.TabularFun Associated Types
| |||||
(SupportedNonFuncPrim a0, SupportedNonFuncPrim a1, SupportedNonFuncPrim a2, SupportedNonFuncPrim a3, SupportedNonFuncPrim a4, SupportedNonFuncPrim a5, SupportedNonFuncPrim a6, SupportedNonFuncPrim a7) => SupportedPrim (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7))))))) Source # | |||||
Defined in Grisette.Internal.SymPrim.TabularFun Methods primTypeRep :: TypeRep (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7))))))) Source # sameCon :: (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7))))))) -> (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7))))))) -> Bool Source # hashConWithSalt :: Int -> (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7))))))) -> Int Source # pformatCon :: (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7))))))) -> String Source # defaultValue :: a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7)))))) Source # pevalITETerm :: Term Bool -> Term (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7))))))) -> Term (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7))))))) -> Term (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7))))))) Source # pevalEqTerm :: Term (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7))))))) -> Term (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7))))))) -> Term Bool Source # pevalDistinctTerm :: NonEmpty (Term (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7)))))))) -> Term Bool Source # conSBVTerm :: (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7))))))) -> SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7))))))) Source # symSBVName :: TypedSymbol 'AnyKind (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7))))))) -> Int -> String Source # symSBVTerm :: SBVFreshMonad m => String -> m (SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7)))))))) Source # withPrim :: ((PrimConstraint (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7))))))), SMTDefinable (SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7)))))))), Mergeable (SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7)))))))), Typeable (SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7))))))))) => a) -> a Source # sbvIte :: SBV Bool -> SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7))))))) -> SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7))))))) -> SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7))))))) Source # sbvEq :: SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7))))))) -> SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7))))))) -> SBV Bool Source # sbvDistinct :: NonEmpty (SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7)))))))) -> SBV Bool Source # parseSMTModelResult :: Int -> ([([CV], CV)], CV) -> a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7)))))) Source # castTypedSymbol :: forall (knd' :: SymbolKind) (knd :: SymbolKind). IsSymbolKind knd' => TypedSymbol knd (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7))))))) -> Maybe (TypedSymbol knd' (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7)))))))) Source # funcDummyConstraint :: SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7))))))) -> SBV Bool Source # | |||||
(SupportedNonFuncPrim a0, SupportedNonFuncPrim a1, SupportedNonFuncPrim a2, SupportedNonFuncPrim a3, SupportedNonFuncPrim a4, SupportedNonFuncPrim a5, SupportedNonFuncPrim a6) => SupportedPrim (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6)))))) Source # | |||||
Defined in Grisette.Internal.SymPrim.TabularFun Methods primTypeRep :: TypeRep (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6)))))) Source # sameCon :: (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6)))))) -> (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6)))))) -> Bool Source # hashConWithSalt :: Int -> (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6)))))) -> Int Source # pformatCon :: (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6)))))) -> String Source # defaultValue :: a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6))))) Source # pevalITETerm :: Term Bool -> Term (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6)))))) -> Term (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6)))))) -> Term (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6)))))) Source # pevalEqTerm :: Term (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6)))))) -> Term (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6)))))) -> Term Bool Source # pevalDistinctTerm :: NonEmpty (Term (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6))))))) -> Term Bool Source # conSBVTerm :: (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6)))))) -> SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6)))))) Source # symSBVName :: TypedSymbol 'AnyKind (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6)))))) -> Int -> String Source # symSBVTerm :: SBVFreshMonad m => String -> m (SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6))))))) Source # withPrim :: ((PrimConstraint (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6)))))), SMTDefinable (SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6))))))), Mergeable (SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6))))))), Typeable (SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6)))))))) => a) -> a Source # sbvIte :: SBV Bool -> SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6)))))) -> SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6)))))) -> SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6)))))) Source # sbvEq :: SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6)))))) -> SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6)))))) -> SBV Bool Source # sbvDistinct :: NonEmpty (SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6))))))) -> SBV Bool Source # parseSMTModelResult :: Int -> ([([CV], CV)], CV) -> a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6))))) Source # castTypedSymbol :: forall (knd' :: SymbolKind) (knd :: SymbolKind). IsSymbolKind knd' => TypedSymbol knd (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6)))))) -> Maybe (TypedSymbol knd' (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6))))))) Source # funcDummyConstraint :: SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6)))))) -> SBV Bool Source # | |||||
(SupportedNonFuncPrim a0, SupportedNonFuncPrim a1, SupportedNonFuncPrim a2, SupportedNonFuncPrim a3, SupportedNonFuncPrim a4, SupportedNonFuncPrim a5) => SupportedPrim (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5))))) Source # | |||||
Defined in Grisette.Internal.SymPrim.TabularFun Methods primTypeRep :: TypeRep (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5))))) Source # sameCon :: (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5))))) -> (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5))))) -> Bool Source # hashConWithSalt :: Int -> (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5))))) -> Int Source # pformatCon :: (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5))))) -> String Source # defaultValue :: a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5)))) Source # pevalITETerm :: Term Bool -> Term (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5))))) -> Term (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5))))) -> Term (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5))))) Source # pevalEqTerm :: Term (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5))))) -> Term (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5))))) -> Term Bool Source # pevalDistinctTerm :: NonEmpty (Term (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5)))))) -> Term Bool Source # conSBVTerm :: (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5))))) -> SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5))))) Source # symSBVName :: TypedSymbol 'AnyKind (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5))))) -> Int -> String Source # symSBVTerm :: SBVFreshMonad m => String -> m (SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5)))))) Source # withPrim :: ((PrimConstraint (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5))))), SMTDefinable (SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5)))))), Mergeable (SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5)))))), Typeable (SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5))))))) => a) -> a Source # sbvIte :: SBV Bool -> SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5))))) -> SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5))))) -> SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5))))) Source # sbvEq :: SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5))))) -> SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5))))) -> SBV Bool Source # sbvDistinct :: NonEmpty (SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5)))))) -> SBV Bool Source # parseSMTModelResult :: Int -> ([([CV], CV)], CV) -> a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5)))) Source # castTypedSymbol :: forall (knd' :: SymbolKind) (knd :: SymbolKind). IsSymbolKind knd' => TypedSymbol knd (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5))))) -> Maybe (TypedSymbol knd' (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5)))))) Source # funcDummyConstraint :: SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5))))) -> SBV Bool Source # | |||||
(SupportedNonFuncPrim a0, SupportedNonFuncPrim a1, SupportedNonFuncPrim a2, SupportedNonFuncPrim a3, SupportedNonFuncPrim a4) => SupportedPrim (a0 =-> (a1 =-> (a2 =-> (a3 =-> a4)))) Source # | |||||
Defined in Grisette.Internal.SymPrim.TabularFun Methods primTypeRep :: TypeRep (a0 =-> (a1 =-> (a2 =-> (a3 =-> a4)))) Source # sameCon :: (a0 =-> (a1 =-> (a2 =-> (a3 =-> a4)))) -> (a0 =-> (a1 =-> (a2 =-> (a3 =-> a4)))) -> Bool Source # hashConWithSalt :: Int -> (a0 =-> (a1 =-> (a2 =-> (a3 =-> a4)))) -> Int Source # pformatCon :: (a0 =-> (a1 =-> (a2 =-> (a3 =-> a4)))) -> String Source # defaultValue :: a0 =-> (a1 =-> (a2 =-> (a3 =-> a4))) Source # pevalITETerm :: Term Bool -> Term (a0 =-> (a1 =-> (a2 =-> (a3 =-> a4)))) -> Term (a0 =-> (a1 =-> (a2 =-> (a3 =-> a4)))) -> Term (a0 =-> (a1 =-> (a2 =-> (a3 =-> a4)))) Source # pevalEqTerm :: Term (a0 =-> (a1 =-> (a2 =-> (a3 =-> a4)))) -> Term (a0 =-> (a1 =-> (a2 =-> (a3 =-> a4)))) -> Term Bool Source # pevalDistinctTerm :: NonEmpty (Term (a0 =-> (a1 =-> (a2 =-> (a3 =-> a4))))) -> Term Bool Source # conSBVTerm :: (a0 =-> (a1 =-> (a2 =-> (a3 =-> a4)))) -> SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> a4)))) Source # symSBVName :: TypedSymbol 'AnyKind (a0 =-> (a1 =-> (a2 =-> (a3 =-> a4)))) -> Int -> String Source # symSBVTerm :: SBVFreshMonad m => String -> m (SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> a4))))) Source # withPrim :: ((PrimConstraint (a0 =-> (a1 =-> (a2 =-> (a3 =-> a4)))), SMTDefinable (SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> a4))))), Mergeable (SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> a4))))), Typeable (SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> a4)))))) => a) -> a Source # sbvIte :: SBV Bool -> SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> a4)))) -> SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> a4)))) -> SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> a4)))) Source # sbvEq :: SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> a4)))) -> SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> a4)))) -> SBV Bool Source # sbvDistinct :: NonEmpty (SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> a4))))) -> SBV Bool Source # parseSMTModelResult :: Int -> ([([CV], CV)], CV) -> a0 =-> (a1 =-> (a2 =-> (a3 =-> a4))) Source # castTypedSymbol :: forall (knd' :: SymbolKind) (knd :: SymbolKind). IsSymbolKind knd' => TypedSymbol knd (a0 =-> (a1 =-> (a2 =-> (a3 =-> a4)))) -> Maybe (TypedSymbol knd' (a0 =-> (a1 =-> (a2 =-> (a3 =-> a4))))) Source # funcDummyConstraint :: SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> a4)))) -> SBV Bool Source # | |||||
(SupportedNonFuncPrim a0, SupportedNonFuncPrim a1, SupportedNonFuncPrim a2, SupportedNonFuncPrim a3) => SupportedPrim (a0 =-> (a1 =-> (a2 =-> a3))) Source # | |||||
Defined in Grisette.Internal.SymPrim.TabularFun Methods primTypeRep :: TypeRep (a0 =-> (a1 =-> (a2 =-> a3))) Source # sameCon :: (a0 =-> (a1 =-> (a2 =-> a3))) -> (a0 =-> (a1 =-> (a2 =-> a3))) -> Bool Source # hashConWithSalt :: Int -> (a0 =-> (a1 =-> (a2 =-> a3))) -> Int Source # pformatCon :: (a0 =-> (a1 =-> (a2 =-> a3))) -> String Source # defaultValue :: a0 =-> (a1 =-> (a2 =-> a3)) Source # pevalITETerm :: Term Bool -> Term (a0 =-> (a1 =-> (a2 =-> a3))) -> Term (a0 =-> (a1 =-> (a2 =-> a3))) -> Term (a0 =-> (a1 =-> (a2 =-> a3))) Source # pevalEqTerm :: Term (a0 =-> (a1 =-> (a2 =-> a3))) -> Term (a0 =-> (a1 =-> (a2 =-> a3))) -> Term Bool Source # pevalDistinctTerm :: NonEmpty (Term (a0 =-> (a1 =-> (a2 =-> a3)))) -> Term Bool Source # conSBVTerm :: (a0 =-> (a1 =-> (a2 =-> a3))) -> SBVType (a0 =-> (a1 =-> (a2 =-> a3))) Source # symSBVName :: TypedSymbol 'AnyKind (a0 =-> (a1 =-> (a2 =-> a3))) -> Int -> String Source # symSBVTerm :: SBVFreshMonad m => String -> m (SBVType (a0 =-> (a1 =-> (a2 =-> a3)))) Source # withPrim :: ((PrimConstraint (a0 =-> (a1 =-> (a2 =-> a3))), SMTDefinable (SBVType (a0 =-> (a1 =-> (a2 =-> a3)))), Mergeable (SBVType (a0 =-> (a1 =-> (a2 =-> a3)))), Typeable (SBVType (a0 =-> (a1 =-> (a2 =-> a3))))) => a) -> a Source # sbvIte :: SBV Bool -> SBVType (a0 =-> (a1 =-> (a2 =-> a3))) -> SBVType (a0 =-> (a1 =-> (a2 =-> a3))) -> SBVType (a0 =-> (a1 =-> (a2 =-> a3))) Source # sbvEq :: SBVType (a0 =-> (a1 =-> (a2 =-> a3))) -> SBVType (a0 =-> (a1 =-> (a2 =-> a3))) -> SBV Bool Source # sbvDistinct :: NonEmpty (SBVType (a0 =-> (a1 =-> (a2 =-> a3)))) -> SBV Bool Source # parseSMTModelResult :: Int -> ([([CV], CV)], CV) -> a0 =-> (a1 =-> (a2 =-> a3)) Source # castTypedSymbol :: forall (knd' :: SymbolKind) (knd :: SymbolKind). IsSymbolKind knd' => TypedSymbol knd (a0 =-> (a1 =-> (a2 =-> a3))) -> Maybe (TypedSymbol knd' (a0 =-> (a1 =-> (a2 =-> a3)))) Source # funcDummyConstraint :: SBVType (a0 =-> (a1 =-> (a2 =-> a3))) -> SBV Bool Source # | |||||
(SupportedNonFuncPrim a0, SupportedNonFuncPrim a1, SupportedNonFuncPrim a2) => SupportedPrim (a0 =-> (a1 =-> a2)) Source # | |||||
Defined in Grisette.Internal.SymPrim.TabularFun Methods primTypeRep :: TypeRep (a0 =-> (a1 =-> a2)) Source # sameCon :: (a0 =-> (a1 =-> a2)) -> (a0 =-> (a1 =-> a2)) -> Bool Source # hashConWithSalt :: Int -> (a0 =-> (a1 =-> a2)) -> Int Source # pformatCon :: (a0 =-> (a1 =-> a2)) -> String Source # defaultValue :: a0 =-> (a1 =-> a2) Source # pevalITETerm :: Term Bool -> Term (a0 =-> (a1 =-> a2)) -> Term (a0 =-> (a1 =-> a2)) -> Term (a0 =-> (a1 =-> a2)) Source # pevalEqTerm :: Term (a0 =-> (a1 =-> a2)) -> Term (a0 =-> (a1 =-> a2)) -> Term Bool Source # pevalDistinctTerm :: NonEmpty (Term (a0 =-> (a1 =-> a2))) -> Term Bool Source # conSBVTerm :: (a0 =-> (a1 =-> a2)) -> SBVType (a0 =-> (a1 =-> a2)) Source # symSBVName :: TypedSymbol 'AnyKind (a0 =-> (a1 =-> a2)) -> Int -> String Source # symSBVTerm :: SBVFreshMonad m => String -> m (SBVType (a0 =-> (a1 =-> a2))) Source # withPrim :: ((PrimConstraint (a0 =-> (a1 =-> a2)), SMTDefinable (SBVType (a0 =-> (a1 =-> a2))), Mergeable (SBVType (a0 =-> (a1 =-> a2))), Typeable (SBVType (a0 =-> (a1 =-> a2)))) => a) -> a Source # sbvIte :: SBV Bool -> SBVType (a0 =-> (a1 =-> a2)) -> SBVType (a0 =-> (a1 =-> a2)) -> SBVType (a0 =-> (a1 =-> a2)) Source # sbvEq :: SBVType (a0 =-> (a1 =-> a2)) -> SBVType (a0 =-> (a1 =-> a2)) -> SBV Bool Source # sbvDistinct :: NonEmpty (SBVType (a0 =-> (a1 =-> a2))) -> SBV Bool Source # parseSMTModelResult :: Int -> ([([CV], CV)], CV) -> a0 =-> (a1 =-> a2) Source # castTypedSymbol :: forall (knd' :: SymbolKind) (knd :: SymbolKind). IsSymbolKind knd' => TypedSymbol knd (a0 =-> (a1 =-> a2)) -> Maybe (TypedSymbol knd' (a0 =-> (a1 =-> a2))) Source # funcDummyConstraint :: SBVType (a0 =-> (a1 =-> a2)) -> SBV Bool Source # | |||||
(SupportedNonFuncPrim a0, SupportedNonFuncPrim a1) => SupportedPrim (a0 =-> a1) Source # | |||||
Defined in Grisette.Internal.SymPrim.TabularFun Methods primTypeRep :: TypeRep (a0 =-> a1) Source # sameCon :: (a0 =-> a1) -> (a0 =-> a1) -> Bool Source # hashConWithSalt :: Int -> (a0 =-> a1) -> Int Source # pformatCon :: (a0 =-> a1) -> String Source # defaultValue :: a0 =-> a1 Source # pevalITETerm :: Term Bool -> Term (a0 =-> a1) -> Term (a0 =-> a1) -> Term (a0 =-> a1) Source # pevalEqTerm :: Term (a0 =-> a1) -> Term (a0 =-> a1) -> Term Bool Source # pevalDistinctTerm :: NonEmpty (Term (a0 =-> a1)) -> Term Bool Source # conSBVTerm :: (a0 =-> a1) -> SBVType (a0 =-> a1) Source # symSBVName :: TypedSymbol 'AnyKind (a0 =-> a1) -> Int -> String Source # symSBVTerm :: SBVFreshMonad m => String -> m (SBVType (a0 =-> a1)) Source # withPrim :: ((PrimConstraint (a0 =-> a1), SMTDefinable (SBVType (a0 =-> a1)), Mergeable (SBVType (a0 =-> a1)), Typeable (SBVType (a0 =-> a1))) => a) -> a Source # sbvIte :: SBV Bool -> SBVType (a0 =-> a1) -> SBVType (a0 =-> a1) -> SBVType (a0 =-> a1) Source # sbvEq :: SBVType (a0 =-> a1) -> SBVType (a0 =-> a1) -> SBV Bool Source # sbvDistinct :: NonEmpty (SBVType (a0 =-> a1)) -> SBV Bool Source # parseSMTModelResult :: Int -> ([([CV], CV)], CV) -> a0 =-> a1 Source # castTypedSymbol :: forall (knd' :: SymbolKind) (knd :: SymbolKind). IsSymbolKind knd' => TypedSymbol knd (a0 =-> a1) -> Maybe (TypedSymbol knd' (a0 =-> a1)) Source # funcDummyConstraint :: SBVType (a0 =-> a1) -> SBV Bool Source # | |||||
(SupportedNonFuncPrim a, SupportedPrim b) => SupportedPrimConstraint (a =-> b) Source # | |||||
Defined in Grisette.Internal.SymPrim.TabularFun Associated Types
| |||||
(SymRep a, SymRep b, SupportedPrim (a =-> b)) => SymRep (a =-> b) Source # | |||||
Defined in Grisette.Internal.SymPrim.SymTabularFun | |||||
(Hashable a, Hashable b) => Hashable (a =-> b) Source # | |||||
Defined in Grisette.Internal.SymPrim.TabularFun | |||||
Eq a => Function (a =-> b) a b Source # | |||||
Defined in Grisette.Internal.SymPrim.TabularFun | |||||
(SupportedPrim a, SupportedPrim b, Eq a, SupportedPrim (a =-> b)) => PEvalApplyTerm (a =-> b) a b Source # | |||||
Defined in Grisette.Internal.SymPrim.TabularFun | |||||
(LinkedRep ca sa, LinkedRep cb sb, SupportedPrim (ca =-> cb), SupportedNonFuncPrim ca) => Solvable (ca =-> cb) (sa =~> sb) Source # | |||||
(LinkedRep ca sa, LinkedRep cb sb) => ToCon (sa =~> sb) (ca =-> cb) Source # | |||||
ToCon (a =-> b) (a =-> b) Source # | |||||
ToSym (a =-> b) (a =-> b) Source # | |||||
(SupportedPrim (ca =-> cb), SupportedNonFuncPrim ca, LinkedRep ca sa, LinkedRep cb sb) => ToSym (ca =-> cb) (sa =~> sb) Source # | |||||
(LinkedRep ca sa, LinkedRep cb sb, SupportedPrim (ca =-> cb), SupportedNonFuncPrim ca) => LinkedRep (ca =-> cb) (sa =~> sb) Source # | |||||
type Rep1 ((=->) a :: Type -> Type) Source # | |||||
Defined in Grisette.Internal.SymPrim.TabularFun type Rep1 ((=->) a :: Type -> Type) = D1 ('MetaData "=->" "Grisette.Internal.SymPrim.TabularFun" "grisette-0.13.0.1-LKOkrwJaCqLLaF4eMpvbe4" 'False) (C1 ('MetaCons "TabularFun" 'PrefixI 'True) (S1 ('MetaSel ('Just "funcTable") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) ([] :.: Rec1 ((,) a)) :*: S1 ('MetaSel ('Just "defaultFuncValue") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1)) | |||||
type Rep (a =-> b) Source # | |||||
Defined in Grisette.Internal.SymPrim.TabularFun type Rep (a =-> b) = D1 ('MetaData "=->" "Grisette.Internal.SymPrim.TabularFun" "grisette-0.13.0.1-LKOkrwJaCqLLaF4eMpvbe4" 'False) (C1 ('MetaCons "TabularFun" 'PrefixI 'True) (S1 ('MetaSel ('Just "funcTable") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [(a, b)]) :*: S1 ('MetaSel ('Just "defaultFuncValue") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 b))) | |||||
type FunType (a =-> t) Source # | |||||
Defined in Grisette.Internal.SymPrim.TabularFun | |||||
type PrimConstraint (a =-> b) Source # | |||||
Defined in Grisette.Internal.SymPrim.TabularFun type PrimConstraint (a =-> b) = (SupportedNonFuncPrim a, SupportedPrim b, NonFuncPrimConstraint a, PrimConstraint b) | |||||
type SBVType (a =-> b) Source # | |||||
Defined in Grisette.Internal.SymPrim.TabularFun | |||||
type SymType (a =-> b) Source # | |||||
data a --> b infixr 0 Source #
General symbolic function type. Use the #
operator to apply the function.
Note that this function should be applied to symbolic values only. It is by
itself already a symbolic value, but can be considered partially concrete
as the function body is specified. Use -~>
for uninterpreted general symbolic functions.
The result would be partially evaluated.
>>>
let f = ("x" :: TypedConstantSymbol Integer) --> ("x" + 1 + "y" :: SymInteger) :: Integer --> Integer
>>>
f # 1 -- 1 has the type SymInteger
(+ 2 y)>>>
f # "a" -- "a" has the type SymInteger
(+ 1 (+ a y))
Instances
Lift (a --> b :: Type) Source # | |||||
(SupportedPrim (ca --> cb), SupportedNonFuncPrim ca, LinkedRep ca sa, LinkedRep cb sb) => ToSym (Union (ca --> cb)) (sa -~> sb) Source # | |||||
(GeneralFunArg a, GeneralFunArg b, GeneralFunArg c, GeneralFunArg d, GeneralFunArg e, GeneralFunArg f, GeneralFunArg g, GeneralFunArg h, GeneralFunArg i) => Binary (a --> (b --> (c --> (d --> (e --> (f --> (g --> (h --> i)))))))) Source # | |||||
(GeneralFunArg a, GeneralFunArg b, GeneralFunArg c, GeneralFunArg d, GeneralFunArg e, GeneralFunArg f, GeneralFunArg g, GeneralFunArg h) => Binary (a --> (b --> (c --> (d --> (e --> (f --> (g --> h))))))) Source # | |||||
(GeneralFunArg a, GeneralFunArg b, GeneralFunArg c, GeneralFunArg d, GeneralFunArg e, GeneralFunArg f, GeneralFunArg g) => Binary (a --> (b --> (c --> (d --> (e --> (f --> g)))))) Source # | |||||
(GeneralFunArg a, GeneralFunArg b, GeneralFunArg c, GeneralFunArg d, GeneralFunArg e, GeneralFunArg f) => Binary (a --> (b --> (c --> (d --> (e --> f))))) Source # | |||||
(GeneralFunArg a, GeneralFunArg b, GeneralFunArg c, GeneralFunArg d, GeneralFunArg e) => Binary (a --> (b --> (c --> (d --> e)))) Source # | |||||
(GeneralFunArg a, GeneralFunArg b, GeneralFunArg c, GeneralFunArg d) => Binary (a --> (b --> (c --> d))) Source # | |||||
(GeneralFunArg a, GeneralFunArg b, GeneralFunArg c) => Binary (a --> (b --> c)) Source # | |||||
(GeneralFunArg a, GeneralFunArg b) => Binary (a --> b) Source # | |||||
(GeneralFunArg a, GeneralFunArg b, GeneralFunArg c, GeneralFunArg d, GeneralFunArg e, GeneralFunArg f, GeneralFunArg g, GeneralFunArg h, GeneralFunArg i) => Serial (a --> (b --> (c --> (d --> (e --> (f --> (g --> (h --> i)))))))) Source # | |||||
(GeneralFunArg a, GeneralFunArg b, GeneralFunArg c, GeneralFunArg d, GeneralFunArg e, GeneralFunArg f, GeneralFunArg g, GeneralFunArg h) => Serial (a --> (b --> (c --> (d --> (e --> (f --> (g --> h))))))) Source # | |||||
(GeneralFunArg a, GeneralFunArg b, GeneralFunArg c, GeneralFunArg d, GeneralFunArg e, GeneralFunArg f, GeneralFunArg g) => Serial (a --> (b --> (c --> (d --> (e --> (f --> g)))))) Source # | |||||
(GeneralFunArg a, GeneralFunArg b, GeneralFunArg c, GeneralFunArg d, GeneralFunArg e, GeneralFunArg f) => Serial (a --> (b --> (c --> (d --> (e --> f))))) Source # | |||||
(GeneralFunArg a, GeneralFunArg b, GeneralFunArg c, GeneralFunArg d, GeneralFunArg e) => Serial (a --> (b --> (c --> (d --> e)))) Source # | |||||
(GeneralFunArg a, GeneralFunArg b, GeneralFunArg c, GeneralFunArg d) => Serial (a --> (b --> (c --> d))) Source # | |||||
(GeneralFunArg a, GeneralFunArg b, GeneralFunArg c) => Serial (a --> (b --> c)) Source # | |||||
(GeneralFunArg a, GeneralFunArg b) => Serial (a --> b) Source # | |||||
(GeneralFunArg a, GeneralFunArg b, GeneralFunArg c, GeneralFunArg d, GeneralFunArg e, GeneralFunArg f, GeneralFunArg g, GeneralFunArg h, GeneralFunArg i) => Serialize (a --> (b --> (c --> (d --> (e --> (f --> (g --> (h --> i)))))))) Source # | |||||
(GeneralFunArg a, GeneralFunArg b, GeneralFunArg c, GeneralFunArg d, GeneralFunArg e, GeneralFunArg f, GeneralFunArg g, GeneralFunArg h) => Serialize (a --> (b --> (c --> (d --> (e --> (f --> (g --> h))))))) Source # | |||||
(GeneralFunArg a, GeneralFunArg b, GeneralFunArg c, GeneralFunArg d, GeneralFunArg e, GeneralFunArg f, GeneralFunArg g) => Serialize (a --> (b --> (c --> (d --> (e --> (f --> g)))))) Source # | |||||
(GeneralFunArg a, GeneralFunArg b, GeneralFunArg c, GeneralFunArg d, GeneralFunArg e, GeneralFunArg f) => Serialize (a --> (b --> (c --> (d --> (e --> f))))) Source # | |||||
(GeneralFunArg a, GeneralFunArg b, GeneralFunArg c, GeneralFunArg d, GeneralFunArg e) => Serialize (a --> (b --> (c --> (d --> e)))) Source # | |||||
(GeneralFunArg a, GeneralFunArg b, GeneralFunArg c, GeneralFunArg d) => Serialize (a --> (b --> (c --> d))) Source # | |||||
(GeneralFunArg a, GeneralFunArg b, GeneralFunArg c) => Serialize (a --> (b --> c)) Source # | |||||
(GeneralFunArg a, GeneralFunArg b) => Serialize (a --> b) Source # | |||||
NFData (a --> b) Source # | |||||
Defined in Grisette.Internal.SymPrim.GeneralFun | |||||
Show (a --> b) Source # | |||||
Eq (a --> b) Source # | Checks if two formulas are the same. Not building the actual symbolic equality formula. The reason why we choose this behavior is to allow symbolic variables to be used as keys in hash maps, which can be useful for memoization. Use with caution. Usually you should use | ||||
(Apply st, LinkedRep ca sa, LinkedRep ct st) => Apply (ca --> ct) Source # | |||||
ITEOp (a --> b) Source # | |||||
EvalSym (SymType b) => EvalSym (a --> b) Source # | |||||
ExtractSym (SymType b) => ExtractSym (a --> b) Source # | |||||
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.ExtractSym Methods extractSym :: (a --> b) -> AnySymbolSet Source # extractSymMaybe :: forall (knd :: SymbolKind). IsSymbolKind knd => (a --> b) -> Maybe (SymbolSet knd) Source # | |||||
Mergeable (a --> b) Source # | |||||
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.Mergeable Methods rootStrategy :: MergingStrategy (a --> b) Source # sortIndices :: (a --> b) -> [DynamicSortedIdx] Source # | |||||
PPrint (a --> b) Source # | |||||
SimpleMergeable (a --> b) Source # | |||||
SubstSym (SymType b) => SubstSym (a --> b) Source # | |||||
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.SubstSym Methods substSym :: forall cb sb (knd :: SymbolKind). (LinkedRep cb sb, IsSymbolKind knd) => TypedSymbol knd cb -> sb -> (a --> b) -> a --> b Source # | |||||
(SupportedNonFuncPrim a, SupportedPrim b) => SBVRep (a --> b) Source # | |||||
Defined in Grisette.Internal.SymPrim.GeneralFun Associated Types
| |||||
(SupportedNonFuncPrim a0, SupportedNonFuncPrim a1, SupportedNonFuncPrim a2, SupportedNonFuncPrim a3, SupportedNonFuncPrim a4, SupportedNonFuncPrim a5, SupportedNonFuncPrim a6, SupportedNonFuncPrim a7) => SupportedPrim (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7))))))) Source # | |||||
Defined in Grisette.Internal.SymPrim.GeneralFun Methods primTypeRep :: TypeRep (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7))))))) Source # sameCon :: (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7))))))) -> (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7))))))) -> Bool Source # hashConWithSalt :: Int -> (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7))))))) -> Int Source # pformatCon :: (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7))))))) -> String Source # defaultValue :: a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7)))))) Source # pevalITETerm :: Term Bool -> Term (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7))))))) -> Term (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7))))))) -> Term (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7))))))) Source # pevalEqTerm :: Term (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7))))))) -> Term (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7))))))) -> Term Bool Source # pevalDistinctTerm :: NonEmpty (Term (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7)))))))) -> Term Bool Source # conSBVTerm :: (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7))))))) -> SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7))))))) Source # symSBVName :: TypedSymbol 'AnyKind (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7))))))) -> Int -> String Source # symSBVTerm :: SBVFreshMonad m => String -> m (SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7)))))))) Source # withPrim :: ((PrimConstraint (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7))))))), SMTDefinable (SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7)))))))), Mergeable (SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7)))))))), Typeable (SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7))))))))) => a) -> a Source # sbvIte :: SBV Bool -> SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7))))))) -> SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7))))))) -> SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7))))))) Source # sbvEq :: SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7))))))) -> SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7))))))) -> SBV Bool Source # sbvDistinct :: NonEmpty (SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7)))))))) -> SBV Bool Source # parseSMTModelResult :: Int -> ([([CV], CV)], CV) -> a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7)))))) Source # castTypedSymbol :: forall (knd' :: SymbolKind) (knd :: SymbolKind). IsSymbolKind knd' => TypedSymbol knd (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7))))))) -> Maybe (TypedSymbol knd' (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7)))))))) Source # funcDummyConstraint :: SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7))))))) -> SBV Bool Source # | |||||
(SupportedNonFuncPrim a0, SupportedNonFuncPrim a1, SupportedNonFuncPrim a2, SupportedNonFuncPrim a3, SupportedNonFuncPrim a4, SupportedNonFuncPrim a5, SupportedNonFuncPrim a6) => SupportedPrim (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6)))))) Source # | |||||
Defined in Grisette.Internal.SymPrim.GeneralFun Methods primTypeRep :: TypeRep (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6)))))) Source # sameCon :: (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6)))))) -> (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6)))))) -> Bool Source # hashConWithSalt :: Int -> (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6)))))) -> Int Source # pformatCon :: (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6)))))) -> String Source # defaultValue :: a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6))))) Source # pevalITETerm :: Term Bool -> Term (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6)))))) -> Term (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6)))))) -> Term (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6)))))) Source # pevalEqTerm :: Term (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6)))))) -> Term (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6)))))) -> Term Bool Source # pevalDistinctTerm :: NonEmpty (Term (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6))))))) -> Term Bool Source # conSBVTerm :: (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6)))))) -> SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6)))))) Source # symSBVName :: TypedSymbol 'AnyKind (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6)))))) -> Int -> String Source # symSBVTerm :: SBVFreshMonad m => String -> m (SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6))))))) Source # withPrim :: ((PrimConstraint (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6)))))), SMTDefinable (SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6))))))), Mergeable (SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6))))))), Typeable (SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6)))))))) => a) -> a Source # sbvIte :: SBV Bool -> SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6)))))) -> SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6)))))) -> SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6)))))) Source # sbvEq :: SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6)))))) -> SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6)))))) -> SBV Bool Source # sbvDistinct :: NonEmpty (SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6))))))) -> SBV Bool Source # parseSMTModelResult :: Int -> ([([CV], CV)], CV) -> a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6))))) Source # castTypedSymbol :: forall (knd' :: SymbolKind) (knd :: SymbolKind). IsSymbolKind knd' => TypedSymbol knd (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6)))))) -> Maybe (TypedSymbol knd' (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6))))))) Source # funcDummyConstraint :: SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6)))))) -> SBV Bool Source # | |||||
(SupportedNonFuncPrim a0, SupportedNonFuncPrim a1, SupportedNonFuncPrim a2, SupportedNonFuncPrim a3, SupportedNonFuncPrim a4, SupportedNonFuncPrim a5) => SupportedPrim (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5))))) Source # | |||||
Defined in Grisette.Internal.SymPrim.GeneralFun Methods primTypeRep :: TypeRep (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5))))) Source # sameCon :: (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5))))) -> (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5))))) -> Bool Source # hashConWithSalt :: Int -> (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5))))) -> Int Source # pformatCon :: (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5))))) -> String Source # defaultValue :: a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5)))) Source # pevalITETerm :: Term Bool -> Term (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5))))) -> Term (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5))))) -> Term (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5))))) Source # pevalEqTerm :: Term (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5))))) -> Term (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5))))) -> Term Bool Source # pevalDistinctTerm :: NonEmpty (Term (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5)))))) -> Term Bool Source # conSBVTerm :: (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5))))) -> SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5))))) Source # symSBVName :: TypedSymbol 'AnyKind (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5))))) -> Int -> String Source # symSBVTerm :: SBVFreshMonad m => String -> m (SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5)))))) Source # withPrim :: ((PrimConstraint (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5))))), SMTDefinable (SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5)))))), Mergeable (SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5)))))), Typeable (SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5))))))) => a) -> a Source # sbvIte :: SBV Bool -> SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5))))) -> SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5))))) -> SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5))))) Source # sbvEq :: SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5))))) -> SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5))))) -> SBV Bool Source # sbvDistinct :: NonEmpty (SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5)))))) -> SBV Bool Source # parseSMTModelResult :: Int -> ([([CV], CV)], CV) -> a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5)))) Source # castTypedSymbol :: forall (knd' :: SymbolKind) (knd :: SymbolKind). IsSymbolKind knd' => TypedSymbol knd (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5))))) -> Maybe (TypedSymbol knd' (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5)))))) Source # funcDummyConstraint :: SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5))))) -> SBV Bool Source # | |||||
(SupportedNonFuncPrim a0, SupportedNonFuncPrim a1, SupportedNonFuncPrim a2, SupportedNonFuncPrim a3, SupportedNonFuncPrim a4) => SupportedPrim (a0 --> (a1 --> (a2 --> (a3 --> a4)))) Source # | |||||
Defined in Grisette.Internal.SymPrim.GeneralFun Methods primTypeRep :: TypeRep (a0 --> (a1 --> (a2 --> (a3 --> a4)))) Source # sameCon :: (a0 --> (a1 --> (a2 --> (a3 --> a4)))) -> (a0 --> (a1 --> (a2 --> (a3 --> a4)))) -> Bool Source # hashConWithSalt :: Int -> (a0 --> (a1 --> (a2 --> (a3 --> a4)))) -> Int Source # pformatCon :: (a0 --> (a1 --> (a2 --> (a3 --> a4)))) -> String Source # defaultValue :: a0 --> (a1 --> (a2 --> (a3 --> a4))) Source # pevalITETerm :: Term Bool -> Term (a0 --> (a1 --> (a2 --> (a3 --> a4)))) -> Term (a0 --> (a1 --> (a2 --> (a3 --> a4)))) -> Term (a0 --> (a1 --> (a2 --> (a3 --> a4)))) Source # pevalEqTerm :: Term (a0 --> (a1 --> (a2 --> (a3 --> a4)))) -> Term (a0 --> (a1 --> (a2 --> (a3 --> a4)))) -> Term Bool Source # pevalDistinctTerm :: NonEmpty (Term (a0 --> (a1 --> (a2 --> (a3 --> a4))))) -> Term Bool Source # conSBVTerm :: (a0 --> (a1 --> (a2 --> (a3 --> a4)))) -> SBVType (a0 --> (a1 --> (a2 --> (a3 --> a4)))) Source # symSBVName :: TypedSymbol 'AnyKind (a0 --> (a1 --> (a2 --> (a3 --> a4)))) -> Int -> String Source # symSBVTerm :: SBVFreshMonad m => String -> m (SBVType (a0 --> (a1 --> (a2 --> (a3 --> a4))))) Source # withPrim :: ((PrimConstraint (a0 --> (a1 --> (a2 --> (a3 --> a4)))), SMTDefinable (SBVType (a0 --> (a1 --> (a2 --> (a3 --> a4))))), Mergeable (SBVType (a0 --> (a1 --> (a2 --> (a3 --> a4))))), Typeable (SBVType (a0 --> (a1 --> (a2 --> (a3 --> a4)))))) => a) -> a Source # sbvIte :: SBV Bool -> SBVType (a0 --> (a1 --> (a2 --> (a3 --> a4)))) -> SBVType (a0 --> (a1 --> (a2 --> (a3 --> a4)))) -> SBVType (a0 --> (a1 --> (a2 --> (a3 --> a4)))) Source # sbvEq :: SBVType (a0 --> (a1 --> (a2 --> (a3 --> a4)))) -> SBVType (a0 --> (a1 --> (a2 --> (a3 --> a4)))) -> SBV Bool Source # sbvDistinct :: NonEmpty (SBVType (a0 --> (a1 --> (a2 --> (a3 --> a4))))) -> SBV Bool Source # parseSMTModelResult :: Int -> ([([CV], CV)], CV) -> a0 --> (a1 --> (a2 --> (a3 --> a4))) Source # castTypedSymbol :: forall (knd' :: SymbolKind) (knd :: SymbolKind). IsSymbolKind knd' => TypedSymbol knd (a0 --> (a1 --> (a2 --> (a3 --> a4)))) -> Maybe (TypedSymbol knd' (a0 --> (a1 --> (a2 --> (a3 --> a4))))) Source # funcDummyConstraint :: SBVType (a0 --> (a1 --> (a2 --> (a3 --> a4)))) -> SBV Bool Source # | |||||
(SupportedNonFuncPrim a0, SupportedNonFuncPrim a1, SupportedNonFuncPrim a2, SupportedNonFuncPrim a3) => SupportedPrim (a0 --> (a1 --> (a2 --> a3))) Source # | |||||
Defined in Grisette.Internal.SymPrim.GeneralFun Methods primTypeRep :: TypeRep (a0 --> (a1 --> (a2 --> a3))) Source # sameCon :: (a0 --> (a1 --> (a2 --> a3))) -> (a0 --> (a1 --> (a2 --> a3))) -> Bool Source # hashConWithSalt :: Int -> (a0 --> (a1 --> (a2 --> a3))) -> Int Source # pformatCon :: (a0 --> (a1 --> (a2 --> a3))) -> String Source # defaultValue :: a0 --> (a1 --> (a2 --> a3)) Source # pevalITETerm :: Term Bool -> Term (a0 --> (a1 --> (a2 --> a3))) -> Term (a0 --> (a1 --> (a2 --> a3))) -> Term (a0 --> (a1 --> (a2 --> a3))) Source # pevalEqTerm :: Term (a0 --> (a1 --> (a2 --> a3))) -> Term (a0 --> (a1 --> (a2 --> a3))) -> Term Bool Source # pevalDistinctTerm :: NonEmpty (Term (a0 --> (a1 --> (a2 --> a3)))) -> Term Bool Source # conSBVTerm :: (a0 --> (a1 --> (a2 --> a3))) -> SBVType (a0 --> (a1 --> (a2 --> a3))) Source # symSBVName :: TypedSymbol 'AnyKind (a0 --> (a1 --> (a2 --> a3))) -> Int -> String Source # symSBVTerm :: SBVFreshMonad m => String -> m (SBVType (a0 --> (a1 --> (a2 --> a3)))) Source # withPrim :: ((PrimConstraint (a0 --> (a1 --> (a2 --> a3))), SMTDefinable (SBVType (a0 --> (a1 --> (a2 --> a3)))), Mergeable (SBVType (a0 --> (a1 --> (a2 --> a3)))), Typeable (SBVType (a0 --> (a1 --> (a2 --> a3))))) => a) -> a Source # sbvIte :: SBV Bool -> SBVType (a0 --> (a1 --> (a2 --> a3))) -> SBVType (a0 --> (a1 --> (a2 --> a3))) -> SBVType (a0 --> (a1 --> (a2 --> a3))) Source # sbvEq :: SBVType (a0 --> (a1 --> (a2 --> a3))) -> SBVType (a0 --> (a1 --> (a2 --> a3))) -> SBV Bool Source # sbvDistinct :: NonEmpty (SBVType (a0 --> (a1 --> (a2 --> a3)))) -> SBV Bool Source # parseSMTModelResult :: Int -> ([([CV], CV)], CV) -> a0 --> (a1 --> (a2 --> a3)) Source # castTypedSymbol :: forall (knd' :: SymbolKind) (knd :: SymbolKind). IsSymbolKind knd' => TypedSymbol knd (a0 --> (a1 --> (a2 --> a3))) -> Maybe (TypedSymbol knd' (a0 --> (a1 --> (a2 --> a3)))) Source # funcDummyConstraint :: SBVType (a0 --> (a1 --> (a2 --> a3))) -> SBV Bool Source # | |||||
(SupportedNonFuncPrim a0, SupportedNonFuncPrim a1, SupportedNonFuncPrim a2) => SupportedPrim (a0 --> (a1 --> a2)) Source # | |||||
Defined in Grisette.Internal.SymPrim.GeneralFun Methods primTypeRep :: TypeRep (a0 --> (a1 --> a2)) Source # sameCon :: (a0 --> (a1 --> a2)) -> (a0 --> (a1 --> a2)) -> Bool Source # hashConWithSalt :: Int -> (a0 --> (a1 --> a2)) -> Int Source # pformatCon :: (a0 --> (a1 --> a2)) -> String Source # defaultValue :: a0 --> (a1 --> a2) Source # pevalITETerm :: Term Bool -> Term (a0 --> (a1 --> a2)) -> Term (a0 --> (a1 --> a2)) -> Term (a0 --> (a1 --> a2)) Source # pevalEqTerm :: Term (a0 --> (a1 --> a2)) -> Term (a0 --> (a1 --> a2)) -> Term Bool Source # pevalDistinctTerm :: NonEmpty (Term (a0 --> (a1 --> a2))) -> Term Bool Source # conSBVTerm :: (a0 --> (a1 --> a2)) -> SBVType (a0 --> (a1 --> a2)) Source # symSBVName :: TypedSymbol 'AnyKind (a0 --> (a1 --> a2)) -> Int -> String Source # symSBVTerm :: SBVFreshMonad m => String -> m (SBVType (a0 --> (a1 --> a2))) Source # withPrim :: ((PrimConstraint (a0 --> (a1 --> a2)), SMTDefinable (SBVType (a0 --> (a1 --> a2))), Mergeable (SBVType (a0 --> (a1 --> a2))), Typeable (SBVType (a0 --> (a1 --> a2)))) => a) -> a Source # sbvIte :: SBV Bool -> SBVType (a0 --> (a1 --> a2)) -> SBVType (a0 --> (a1 --> a2)) -> SBVType (a0 --> (a1 --> a2)) Source # sbvEq :: SBVType (a0 --> (a1 --> a2)) -> SBVType (a0 --> (a1 --> a2)) -> SBV Bool Source # sbvDistinct :: NonEmpty (SBVType (a0 --> (a1 --> a2))) -> SBV Bool Source # parseSMTModelResult :: Int -> ([([CV], CV)], CV) -> a0 --> (a1 --> a2) Source # castTypedSymbol :: forall (knd' :: SymbolKind) (knd :: SymbolKind). IsSymbolKind knd' => TypedSymbol knd (a0 --> (a1 --> a2)) -> Maybe (TypedSymbol knd' (a0 --> (a1 --> a2))) Source # funcDummyConstraint :: SBVType (a0 --> (a1 --> a2)) -> SBV Bool Source # | |||||
(SupportedNonFuncPrim a0, SupportedNonFuncPrim a1) => SupportedPrim (a0 --> a1) Source # | |||||
Defined in Grisette.Internal.SymPrim.GeneralFun Methods primTypeRep :: TypeRep (a0 --> a1) Source # sameCon :: (a0 --> a1) -> (a0 --> a1) -> Bool Source # hashConWithSalt :: Int -> (a0 --> a1) -> Int Source # pformatCon :: (a0 --> a1) -> String Source # defaultValue :: a0 --> a1 Source # pevalITETerm :: Term Bool -> Term (a0 --> a1) -> Term (a0 --> a1) -> Term (a0 --> a1) Source # pevalEqTerm :: Term (a0 --> a1) -> Term (a0 --> a1) -> Term Bool Source # pevalDistinctTerm :: NonEmpty (Term (a0 --> a1)) -> Term Bool Source # conSBVTerm :: (a0 --> a1) -> SBVType (a0 --> a1) Source # symSBVName :: TypedSymbol 'AnyKind (a0 --> a1) -> Int -> String Source # symSBVTerm :: SBVFreshMonad m => String -> m (SBVType (a0 --> a1)) Source # withPrim :: ((PrimConstraint (a0 --> a1), SMTDefinable (SBVType (a0 --> a1)), Mergeable (SBVType (a0 --> a1)), Typeable (SBVType (a0 --> a1))) => a) -> a Source # sbvIte :: SBV Bool -> SBVType (a0 --> a1) -> SBVType (a0 --> a1) -> SBVType (a0 --> a1) Source # sbvEq :: SBVType (a0 --> a1) -> SBVType (a0 --> a1) -> SBV Bool Source # sbvDistinct :: NonEmpty (SBVType (a0 --> a1)) -> SBV Bool Source # parseSMTModelResult :: Int -> ([([CV], CV)], CV) -> a0 --> a1 Source # castTypedSymbol :: forall (knd' :: SymbolKind) (knd :: SymbolKind). IsSymbolKind knd' => TypedSymbol knd (a0 --> a1) -> Maybe (TypedSymbol knd' (a0 --> a1)) Source # funcDummyConstraint :: SBVType (a0 --> a1) -> SBV Bool Source # | |||||
(SupportedNonFuncPrim a, SupportedPrim b) => SupportedPrimConstraint (a --> b) Source # | |||||
Defined in Grisette.Internal.SymPrim.GeneralFun Associated Types
| |||||
(SymRep ca, SymRep cb, SupportedPrim (ca --> cb)) => SymRep (ca --> cb) Source # | |||||
Defined in Grisette.Internal.SymPrim.SymGeneralFun | |||||
Hashable (a --> b) Source # | |||||
Defined in Grisette.Internal.SymPrim.GeneralFun | |||||
(LinkedRep a sa, LinkedRep b sb) => Function (a --> b) sa sb Source # | |||||
Defined in Grisette.Internal.SymPrim.GeneralFun | |||||
(SupportedPrim (a --> b), SupportedNonFuncPrim a, SupportedPrim b) => PEvalApplyTerm (a --> b) a b Source # | |||||
Defined in Grisette.Internal.SymPrim.GeneralFun | |||||
(SupportedNonFuncPrim ca, LinkedRep ca sa, LinkedRep cb sb, SupportedPrim (ca --> cb)) => Solvable (ca --> cb) (sa -~> sb) Source # | |||||
ToCon (a --> b) (a --> b) Source # | |||||
(LinkedRep ca sa, LinkedRep cb sb) => ToCon (sa -~> sb) (ca --> cb) Source # | |||||
ToSym (a --> b) (a --> b) Source # | |||||
(SupportedPrim (ca --> cb), SupportedNonFuncPrim ca, LinkedRep ca sa, LinkedRep cb sb) => ToSym (ca --> cb) (sa -~> sb) Source # | |||||
(LinkedRep ca sa, LinkedRep cb sb, SupportedPrim cb, SupportedPrim (ca --> cb), SupportedNonFuncPrim ca) => LinkedRep (ca --> cb) (sa -~> sb) Source # | |||||
type FunType (ca --> ct) Source # | |||||
type PrimConstraint (a --> b) Source # | |||||
Defined in Grisette.Internal.SymPrim.GeneralFun type PrimConstraint (a --> b) = (SupportedNonFuncPrim a, SupportedPrim b, NonFuncPrimConstraint a, PrimConstraint b, SBVType (a --> b) ~ (SBV (NonFuncSBVBaseType a) -> SBVType b)) | |||||
type SBVType (a --> b) Source # | |||||
Defined in Grisette.Internal.SymPrim.GeneralFun | |||||
type SymType (ca --> cb) Source # | |||||
(-->) :: (SupportedNonFuncPrim ca, SupportedPrim cb, LinkedRep cb sb) => TypedConstantSymbol ca -> sb -> ca --> cb infixr 0 Source #
Construction of general symbolic functions.
>>>
f = "a" --> "a" + 1 :: Integer --> Integer
>>>
f
\(arg@0 :: Integer) -> (+ 1 arg@0)
This general symbolic function needs to be applied to symbolic values:
>>>
f # ("a" :: SymInteger)
(+ 1 a)>>>
f # (2 :: SymInteger)
3
Symbolic types
Symbolic bool and integer types
Symbolic Boolean type.
>>>
"a" :: SymBool
a>>>
"a" .&& "b" :: SymBool
(&& a b)
More operations are available. Please refer to Grisette.Core for more information.
Instances
Binary SymBool Source # | |||||
Serial SymBool Source # | |||||
Defined in Grisette.Internal.SymPrim.SymBool | |||||
Serialize SymBool Source # | |||||
NFData SymBool Source # | |||||
Defined in Grisette.Internal.SymPrim.SymBool | |||||
IsString SymBool Source # | |||||
Defined in Grisette.Internal.SymPrim.SymBool Methods fromString :: String -> SymBool # | |||||
Generic SymBool Source # | |||||
Defined in Grisette.Internal.SymPrim.SymBool Associated Types
| |||||
Show SymBool Source # | |||||
Eq SymBool Source # | This will crash the program.
If you want to use the type as keys in hash maps based on term equality, say
memo table, you should use If you want symbolic version of the equality operator, use
| ||||
KeyEq SymBool Source # | |||||
KeyHashable SymBool Source # | |||||
Defined in Grisette.Internal.SymPrim.SymBool | |||||
Apply SymBool Source # | |||||
ITEOp SymBool Source # | |||||
LogicalOp SymBool Source # | |||||
Defined in Grisette.Internal.Core.Data.Class.LogicalOp | |||||
EvalSym SymBool Source # | |||||
ExtractSym SymBool Source # | |||||
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.ExtractSym Methods extractSym :: SymBool -> AnySymbolSet Source # extractSymMaybe :: forall (knd :: SymbolKind). IsSymbolKind knd => SymBool -> Maybe (SymbolSet knd) Source # | |||||
Mergeable SymBool Source # | |||||
Defined in Grisette.Internal.Internal.Decl.Core.Data.Class.Mergeable Methods rootStrategy :: MergingStrategy SymBool Source # sortIndices :: SymBool -> [DynamicSortedIdx] Source # | |||||
PPrint SymBool Source # | |||||
SimpleMergeable SymBool Source # | |||||
SubstSym SymBool Source # | |||||
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.SubstSym Methods substSym :: forall cb sb (knd :: SymbolKind). (LinkedRep cb sb, IsSymbolKind knd) => TypedSymbol knd cb -> sb -> SymBool -> SymBool Source # | |||||
SymEq SymBool Source # | |||||
SymOrd SymBool Source # | |||||
AllSyms SymBool Source # | |||||
ConRep SymBool Source # | |||||
Defined in Grisette.Internal.SymPrim.SymBool | |||||
UnifiedConRep SymBool Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedRep | |||||
UnifiedSymRep SymBool Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedRep | |||||
GenSym SymBool SymBool Source # | |||||
Defined in Grisette.Internal.Core.Data.Class.GenSym | |||||
GenSym () SymBool Source # | |||||
Defined in Grisette.Internal.Core.Data.Class.GenSym | |||||
GenSymSimple SymBool SymBool Source # | |||||
Defined in Grisette.Internal.Core.Data.Class.GenSym Methods simpleFresh :: MonadFresh m => SymBool -> m SymBool Source # | |||||
GenSymSimple () SymBool Source # | |||||
Defined in Grisette.Internal.Core.Data.Class.GenSym Methods simpleFresh :: MonadFresh m => () -> m SymBool Source # | |||||
Solvable Bool SymBool Source # | |||||
ToCon SymBool SymBool Source # | |||||
ToCon SymBool Bool Source # | |||||
ToSym SymBool SymBool Source # | |||||
ToSym Bool SymBool Source # | |||||
LinkedRep Bool SymBool Source # | |||||
Lift SymBool Source # | |||||
UnifiedSolvable 'S SymBool Bool Source # | |||||
BitCast SymBool (SymIntN 1) Source # | |||||
BitCast SymBool (SymWordN 1) Source # | |||||
BitCast (SymIntN 1) SymBool Source # | |||||
BitCast (SymWordN 1) SymBool Source # | |||||
ToSym (Union Bool) SymBool Source # | |||||
type Rep SymBool Source # | |||||
Defined in Grisette.Internal.SymPrim.SymBool | |||||
type FunType SymBool Source # | |||||
Defined in Grisette.Internal.SymPrim.SymBool | |||||
type ConType SymBool Source # | |||||
Defined in Grisette.Internal.SymPrim.SymBool | |||||
type ConType SymBool Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedRep | |||||
type SymType SymBool Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedRep |
newtype SymInteger Source #
Symbolic (unbounded, mathematical) integer type.
>>>
"a" + 1 :: SymInteger
(+ 1 a)
More operations are available. Please refer to Grisette.Core for more information.
Constructors
SymInteger (Term Integer) |
Instances
Binary SymInteger Source # | |||||
Defined in Grisette.Internal.SymPrim.SymInteger | |||||
Serial SymInteger Source # | |||||
Defined in Grisette.Internal.SymPrim.SymInteger | |||||
Serialize SymInteger Source # | |||||
Defined in Grisette.Internal.SymPrim.SymInteger | |||||
NFData SymInteger Source # | |||||
Defined in Grisette.Internal.SymPrim.SymInteger Methods rnf :: SymInteger -> () # | |||||
IsString SymInteger Source # | |||||
Defined in Grisette.Internal.SymPrim.SymInteger Methods fromString :: String -> SymInteger # | |||||
Enum SymInteger Source # | |||||
Defined in Grisette.Internal.SymPrim.SymInteger Methods succ :: SymInteger -> SymInteger # pred :: SymInteger -> SymInteger # toEnum :: Int -> SymInteger # fromEnum :: SymInteger -> Int # enumFrom :: SymInteger -> [SymInteger] # enumFromThen :: SymInteger -> SymInteger -> [SymInteger] # enumFromTo :: SymInteger -> SymInteger -> [SymInteger] # enumFromThenTo :: SymInteger -> SymInteger -> SymInteger -> [SymInteger] # | |||||
Generic SymInteger Source # | |||||
Defined in Grisette.Internal.SymPrim.SymInteger Associated Types
| |||||
Num SymInteger Source # | |||||
Defined in Grisette.Internal.SymPrim.SymInteger Methods (+) :: SymInteger -> SymInteger -> SymInteger # (-) :: SymInteger -> SymInteger -> SymInteger # (*) :: SymInteger -> SymInteger -> SymInteger # negate :: SymInteger -> SymInteger # abs :: SymInteger -> SymInteger # signum :: SymInteger -> SymInteger # fromInteger :: Integer -> SymInteger # | |||||
Integral SymInteger Source # | The functions are total and will not throw errors. The result is considered undefined if the divisor is 0. It is the responsibility of the caller to ensure that the divisor is not
zero with the symbolic constraints, or use the | ||||
Defined in Grisette.Internal.SymPrim.SymInteger Methods quot :: SymInteger -> SymInteger -> SymInteger # rem :: SymInteger -> SymInteger -> SymInteger # div :: SymInteger -> SymInteger -> SymInteger # mod :: SymInteger -> SymInteger -> SymInteger # quotRem :: SymInteger -> SymInteger -> (SymInteger, SymInteger) # divMod :: SymInteger -> SymInteger -> (SymInteger, SymInteger) # toInteger :: SymInteger -> Integer # | |||||
Real SymInteger Source # | |||||
Defined in Grisette.Internal.SymPrim.SymInteger Methods toRational :: SymInteger -> Rational # | |||||
Show SymInteger Source # | |||||
Defined in Grisette.Internal.SymPrim.SymInteger Methods showsPrec :: Int -> SymInteger -> ShowS # show :: SymInteger -> String # showList :: [SymInteger] -> ShowS # | |||||
Eq SymInteger Source # | This will crash the program.
If you want to use the type as keys in hash maps based on term equality, say
memo table, you should use If you want symbolic version of the equality operator, use
| ||||
Defined in Grisette.Internal.SymPrim.SymInteger | |||||
Ord SymInteger Source # | Except for
If you want symbolic version of the comparison operators, use
| ||||
Defined in Grisette.Internal.SymPrim.SymInteger Methods compare :: SymInteger -> SymInteger -> Ordering # (<) :: SymInteger -> SymInteger -> Bool # (<=) :: SymInteger -> SymInteger -> Bool # (>) :: SymInteger -> SymInteger -> Bool # (>=) :: SymInteger -> SymInteger -> Bool # max :: SymInteger -> SymInteger -> SymInteger # min :: SymInteger -> SymInteger -> SymInteger # | |||||
KeyEq SymInteger Source # | |||||
Defined in Grisette.Internal.SymPrim.SymInteger Methods keyEq :: SymInteger -> SymInteger -> Bool Source # | |||||
KeyHashable SymInteger Source # | |||||
Defined in Grisette.Internal.SymPrim.SymInteger Methods keyHashWithSalt :: Int -> SymInteger -> Int Source # | |||||
Apply SymInteger Source # | |||||
Defined in Grisette.Internal.SymPrim.SymInteger Associated Types
Methods apply :: SymInteger -> FunType SymInteger Source # | |||||
ITEOp SymInteger Source # | |||||
Defined in Grisette.Internal.Core.Data.Class.ITEOp Methods symIte :: SymBool -> SymInteger -> SymInteger -> SymInteger Source # | |||||
EvalSym SymInteger Source # | |||||
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.EvalSym Methods evalSym :: Bool -> Model -> SymInteger -> SymInteger Source # | |||||
ExtractSym SymInteger Source # | |||||
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.ExtractSym Methods extractSym :: SymInteger -> AnySymbolSet Source # extractSymMaybe :: forall (knd :: SymbolKind). IsSymbolKind knd => SymInteger -> Maybe (SymbolSet knd) Source # | |||||
Mergeable SymInteger Source # | |||||
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.Mergeable Methods rootStrategy :: MergingStrategy SymInteger Source # sortIndices :: SymInteger -> [DynamicSortedIdx] Source # | |||||
PPrint SymInteger Source # | |||||
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint Methods pformat :: SymInteger -> Doc ann Source # pformatPrec :: Int -> SymInteger -> Doc ann Source # pformatList :: [SymInteger] -> Doc ann Source # | |||||
DivOr SymInteger Source # | |||||
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.SafeDiv Methods divOr :: SymInteger -> SymInteger -> SymInteger -> SymInteger Source # modOr :: SymInteger -> SymInteger -> SymInteger -> SymInteger Source # divModOr :: (SymInteger, SymInteger) -> SymInteger -> SymInteger -> (SymInteger, SymInteger) Source # quotOr :: SymInteger -> SymInteger -> SymInteger -> SymInteger Source # remOr :: SymInteger -> SymInteger -> SymInteger -> SymInteger Source # quotRemOr :: (SymInteger, SymInteger) -> SymInteger -> SymInteger -> (SymInteger, SymInteger) Source # | |||||
SimpleMergeable SymInteger Source # | |||||
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.SimpleMergeable Methods mrgIte :: SymBool -> SymInteger -> SymInteger -> SymInteger Source # | |||||
SubstSym SymInteger Source # | |||||
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.SubstSym Methods substSym :: forall cb sb (knd :: SymbolKind). (LinkedRep cb sb, IsSymbolKind knd) => TypedSymbol knd cb -> sb -> SymInteger -> SymInteger Source # | |||||
SymEq SymInteger Source # | |||||
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.SymEq Methods (.==) :: SymInteger -> SymInteger -> SymBool Source # (./=) :: SymInteger -> SymInteger -> SymBool Source # symDistinct :: [SymInteger] -> SymBool Source # | |||||
SymOrd SymInteger Source # | |||||
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.SymOrd Methods (.<) :: SymInteger -> SymInteger -> SymBool Source # (.<=) :: SymInteger -> SymInteger -> SymBool Source # (.>) :: SymInteger -> SymInteger -> SymBool Source # (.>=) :: SymInteger -> SymInteger -> SymBool Source # symCompare :: SymInteger -> SymInteger -> Union Ordering Source # | |||||
AllSyms SymInteger Source # | |||||
Defined in Grisette.Internal.SymPrim.SymInteger | |||||
ConRep SymInteger Source # | |||||
Defined in Grisette.Internal.SymPrim.SymInteger Associated Types
| |||||
UnifiedConRep SymInteger Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedRep Associated Types
| |||||
UnifiedSymRep SymInteger Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedRep Associated Types
| |||||
GenSym SymInteger SymInteger Source # | |||||
Defined in Grisette.Internal.Core.Data.Class.GenSym Methods fresh :: MonadFresh m => SymInteger -> m (Union SymInteger) Source # | |||||
GenSym () SymInteger Source # | |||||
Defined in Grisette.Internal.Core.Data.Class.GenSym Methods fresh :: MonadFresh m => () -> m (Union SymInteger) Source # | |||||
GenSymSimple SymInteger SymInteger Source # | |||||
Defined in Grisette.Internal.Core.Data.Class.GenSym Methods simpleFresh :: MonadFresh m => SymInteger -> m SymInteger Source # | |||||
GenSymSimple () SymInteger Source # | |||||
Defined in Grisette.Internal.Core.Data.Class.GenSym Methods simpleFresh :: MonadFresh m => () -> m SymInteger Source # | |||||
Solvable Integer SymInteger Source # | |||||
Defined in Grisette.Internal.SymPrim.SymInteger Methods con :: Integer -> SymInteger Source # conView :: SymInteger -> Maybe Integer Source # sym :: Symbol -> SymInteger Source # ssym :: Identifier -> SymInteger Source # isym :: Identifier -> Int -> SymInteger Source # | |||||
SymFromIntegral SymInteger SymAlgReal Source # | |||||
Defined in Grisette.Internal.Core.Data.Class.SymFromIntegral Methods | |||||
SymFromIntegral SymInteger SymInteger Source # | |||||
Defined in Grisette.Internal.Core.Data.Class.SymFromIntegral Methods | |||||
ToCon SymInteger SymInteger Source # | |||||
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.ToCon Methods toCon :: SymInteger -> Maybe SymInteger Source # | |||||
ToCon SymInteger Integer Source # | |||||
ToSym SymInteger SymInteger Source # | |||||
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.ToSym Methods toSym :: SymInteger -> SymInteger Source # | |||||
ToSym Integer SymInteger Source # | |||||
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.ToSym Methods toSym :: Integer -> SymInteger Source # | |||||
LinkedRep Integer SymInteger Source # | |||||
Defined in Grisette.Internal.SymPrim.SymInteger Methods underlyingTerm :: SymInteger -> Term Integer Source # | |||||
Lift SymInteger Source # | |||||
Defined in Grisette.Internal.SymPrim.SymInteger Methods lift :: Quote m => SymInteger -> m Exp # liftTyped :: forall (m :: Type -> Type). Quote m => SymInteger -> Code m SymInteger # | |||||
(MonadError ArithException m, TryMerge m) => SafeLinearArith ArithException SymInteger m Source # | |||||
Defined in Grisette.Internal.Core.Data.Class.SafeLinearArith Methods safeAdd :: SymInteger -> SymInteger -> m SymInteger Source # safeNeg :: SymInteger -> m SymInteger Source # safeSub :: SymInteger -> SymInteger -> m SymInteger Source # | |||||
(MonadUnion m, MonadError ArithException m) => SafeDiv ArithException SymInteger m Source # | |||||
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.SafeDiv Methods safeDiv :: SymInteger -> SymInteger -> m SymInteger Source # safeMod :: SymInteger -> SymInteger -> m SymInteger Source # safeDivMod :: SymInteger -> SymInteger -> m (SymInteger, SymInteger) Source # safeQuot :: SymInteger -> SymInteger -> m SymInteger Source # safeRem :: SymInteger -> SymInteger -> m SymInteger Source # safeQuotRem :: SymInteger -> SymInteger -> m (SymInteger, SymInteger) Source # | |||||
UnifiedFromIntegral 'S SymInteger SymAlgReal Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedFromIntegral Methods withBaseFromIntegral :: (If (IsConMode 'S) (Integral SymInteger, Num SymAlgReal) (SymFromIntegral SymInteger SymAlgReal) => r) -> r Source # | |||||
UnifiedFromIntegral 'S SymInteger SymInteger Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedFromIntegral Methods withBaseFromIntegral :: (If (IsConMode 'S) (Integral SymInteger, Num SymInteger) (SymFromIntegral SymInteger SymInteger) => r) -> r Source # | |||||
UnifiedSolvable 'S SymInteger Integer Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedSolvable Methods withBaseSolvable :: (If (IsConMode 'S) (SymInteger ~ Integer) (Solvable Integer SymInteger) => r) -> r Source # | |||||
(MonadError ArithException m, UnifiedBranching 'S m) => UnifiedSafeDiv 'S ArithException SymInteger m Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedSafeDiv Methods withBaseSafeDiv :: (SafeDiv ArithException SymInteger m => r) -> r Source # | |||||
(MonadError ArithException m, UnifiedBranching 'S m) => UnifiedSafeLinearArith 'S ArithException SymInteger m Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedSafeLinearArith Methods withBaseSafeLinearArith :: (SafeLinearArith ArithException SymInteger m => r) -> r Source # | |||||
(MonadError NotRepresentableFPError m, UnifiedBranching 'S m, ValidFP eb sb) => UnifiedSafeFromFP 'S NotRepresentableFPError SymInteger (SymFP eb sb) SymFPRoundingMode m Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedSafeFromFP Methods withBaseSafeFromFP :: (SafeFromFP NotRepresentableFPError SymInteger (SymFP eb sb) SymFPRoundingMode m => r) -> r Source # | |||||
(KnownNat n, 1 <= n) => UnifiedFromIntegral 'S SymInteger (SymIntN n) Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedFromIntegral Methods withBaseFromIntegral :: (If (IsConMode 'S) (Integral SymInteger, Num (SymIntN n)) (SymFromIntegral SymInteger (SymIntN n)) => r) -> r Source # | |||||
(KnownNat n, 1 <= n) => UnifiedFromIntegral 'S SymInteger (SymWordN n) Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedFromIntegral Methods withBaseFromIntegral :: (If (IsConMode 'S) (Integral SymInteger, Num (SymWordN n)) (SymFromIntegral SymInteger (SymWordN n)) => r) -> r Source # | |||||
ValidFP eb sb => UnifiedFromIntegral 'S SymInteger (SymFP eb sb) Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedFromIntegral Methods withBaseFromIntegral :: (If (IsConMode 'S) (Integral SymInteger, Num (SymFP eb sb)) (SymFromIntegral SymInteger (SymFP eb sb)) => r) -> r Source # | |||||
(MonadError NotRepresentableFPError m, MonadUnion m, ValidFP eb sb) => SafeFromFP NotRepresentableFPError SymInteger (SymFP eb sb) SymFPRoundingMode m Source # | |||||
Defined in Grisette.Internal.Core.Data.Class.SafeFromFP Methods safeFromFP :: SymFPRoundingMode -> SymFP eb sb -> m SymInteger Source # | |||||
(KnownNat n, 1 <= n) => SymFromIntegral SymInteger (SymIntN n) Source # | |||||
Defined in Grisette.Internal.Core.Data.Class.SymFromIntegral Methods symFromIntegral :: SymInteger -> SymIntN n Source # | |||||
(KnownNat n, 1 <= n) => SymFromIntegral SymInteger (SymWordN n) Source # | |||||
Defined in Grisette.Internal.Core.Data.Class.SymFromIntegral Methods symFromIntegral :: SymInteger -> SymWordN n Source # | |||||
(KnownNat n', 1 <= n') => UnifiedFromIntegral 'S (SymIntN n') SymInteger Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedFromIntegral Methods withBaseFromIntegral :: (If (IsConMode 'S) (Integral (SymIntN n'), Num SymInteger) (SymFromIntegral (SymIntN n') SymInteger) => r) -> r Source # | |||||
(KnownNat n', 1 <= n') => UnifiedFromIntegral 'S (SymWordN n') SymInteger Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedFromIntegral Methods withBaseFromIntegral :: (If (IsConMode 'S) (Integral (SymWordN n'), Num SymInteger) (SymFromIntegral (SymWordN n') SymInteger) => r) -> r Source # | |||||
ValidFP eb sb => SymFromIntegral SymInteger (SymFP eb sb) Source # | |||||
Defined in Grisette.Internal.Core.Data.Class.SymFromIntegral Methods symFromIntegral :: SymInteger -> SymFP eb sb Source # | |||||
ValidFP eb sb => IEEEFPConvertible SymInteger (SymFP eb sb) SymFPRoundingMode Source # | |||||
Defined in Grisette.Internal.SymPrim.SymFP Methods fromFPOr :: SymInteger -> SymFPRoundingMode -> SymFP eb sb -> SymInteger Source # toFP :: SymFPRoundingMode -> SymInteger -> SymFP eb sb Source # | |||||
(KnownNat n, 1 <= n) => SymFromIntegral (SymIntN n) SymInteger Source # | |||||
Defined in Grisette.Internal.Core.Data.Class.SymFromIntegral Methods symFromIntegral :: SymIntN n -> SymInteger Source # | |||||
(KnownNat n, 1 <= n) => SymFromIntegral (SymWordN n) SymInteger Source # | |||||
Defined in Grisette.Internal.Core.Data.Class.SymFromIntegral Methods symFromIntegral :: SymWordN n -> SymInteger Source # | |||||
ToSym (Union Integer) SymInteger Source # | |||||
type Rep SymInteger Source # | |||||
Defined in Grisette.Internal.SymPrim.SymInteger type Rep SymInteger = D1 ('MetaData "SymInteger" "Grisette.Internal.SymPrim.SymInteger" "grisette-0.13.0.1-LKOkrwJaCqLLaF4eMpvbe4" 'True) (C1 ('MetaCons "SymInteger" 'PrefixI 'True) (S1 ('MetaSel ('Just "underlyingIntegerTerm") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Term Integer)))) | |||||
type FunType SymInteger Source # | |||||
Defined in Grisette.Internal.SymPrim.SymInteger | |||||
type ConType SymInteger Source # | |||||
Defined in Grisette.Internal.SymPrim.SymInteger | |||||
type ConType SymInteger Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedRep | |||||
type SymType SymInteger Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedRep |
type SymIntegerKey = AsKey SymInteger Source #
SymInteger
type with identity equality.
Symbolic bit-vector types
newtype SymWordN (n :: Nat) Source #
Symbolic unsigned bit vector type. Indexed with the bit width. Signedness affects the semantics of the operations, including comparison/extension, etc.
>>>
"a" + 5 :: SymWordN 5
(+ 0b00101 a)>>>
sizedBVConcat (con 0b101 :: SymWordN 3) (con 0b110 :: SymWordN 3)
0b101110>>>
sizedBVExt (Proxy @6) (con 0b101 :: SymWordN 3)
0b000101>>>
(8 :: SymWordN 4) .< (7 :: SymWordN 4)
false
More operations are available. Please refer to Grisette.Core for more information.
Instances
SizedBV SymWordN Source # | |||||
Defined in Grisette.Internal.SymPrim.SymBV Methods sizedBVConcat :: forall (l :: Nat) (r :: Nat). (KnownNat l, KnownNat r, 1 <= l, 1 <= r) => SymWordN l -> SymWordN r -> SymWordN (l + r) Source # sizedBVZext :: forall (l :: Nat) (r :: Nat) proxy. (KnownNat l, KnownNat r, 1 <= l, KnownNat r, l <= r) => proxy r -> SymWordN l -> SymWordN r Source # sizedBVSext :: forall (l :: Nat) (r :: Nat) proxy. (KnownNat l, KnownNat r, 1 <= l, KnownNat r, l <= r) => proxy r -> SymWordN l -> SymWordN r Source # sizedBVExt :: forall (l :: Nat) (r :: Nat) proxy. (KnownNat l, KnownNat r, 1 <= l, KnownNat r, l <= r) => proxy r -> SymWordN l -> SymWordN r Source # sizedBVSelect :: forall (n :: Nat) (ix :: Nat) (w :: Nat) p q. (KnownNat n, KnownNat ix, KnownNat w, 1 <= n, 1 <= w, (ix + w) <= n) => p ix -> q w -> SymWordN n -> SymWordN w Source # sizedBVFromIntegral :: forall a (n :: Nat). (Integral a, KnownNat n, 1 <= n) => a -> SymWordN n Source # | |||||
UnifiedFiniteBits 'S SomeSymWordN Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedFiniteBits Methods withBaseFiniteBits :: (If (IsConMode 'S) (FiniteBits SomeSymWordN, FromBits SomeSymWordN) (SymFiniteBits SomeSymWordN) => r) -> r Source # | |||||
(KnownNat n, 1 <= n) => UnifiedBVImpl 'S SymWordN SymIntN n (SymWordN n) (SymIntN n) Source # | |||||
(KnownNat n, 1 <= n) => UnifiedFromIntegral 'S SymInteger (SymWordN n) Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedFromIntegral Methods withBaseFromIntegral :: (If (IsConMode 'S) (Integral SymInteger, Num (SymWordN n)) (SymFromIntegral SymInteger (SymWordN n)) => r) -> r Source # | |||||
(MonadError ArithException m, UnifiedBranching 'S m, KnownNat n, 1 <= n) => UnifiedSafeDiv 'S ArithException (SymWordN n) m Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedSafeDiv Methods withBaseSafeDiv :: (SafeDiv ArithException (SymWordN n) m => r) -> r Source # | |||||
(MonadError ArithException m, UnifiedBranching 'S m, KnownNat n, 1 <= n) => UnifiedSafeLinearArith 'S ArithException (SymWordN n) m Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedSafeLinearArith Methods withBaseSafeLinearArith :: (SafeLinearArith ArithException (SymWordN n) m => r) -> r Source # | |||||
(MonadError ArithException m, UnifiedBranching 'S m, KnownNat n, 1 <= n) => UnifiedSafeSymRotate 'S ArithException (SymWordN n) m Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedSafeSymRotate Methods withBaseSafeSymRotate :: (SafeSymRotate ArithException (SymWordN n) m => r) -> r Source # | |||||
(MonadError ArithException m, UnifiedBranching 'S m, KnownNat n, 1 <= n) => UnifiedSafeSymShift 'S ArithException (SymWordN n) m Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedSafeSymShift Methods withBaseSafeSymShift :: (SafeSymShift ArithException (SymWordN n) m => r) -> r Source # | |||||
(MonadError NotRepresentableFPError m, UnifiedBranching 'S m, ValidFP eb sb, KnownNat n, 1 <= n) => UnifiedSafeFromFP 'S NotRepresentableFPError (SymWordN n) (SymFP eb sb) SymFPRoundingMode m Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedSafeFromFP Methods withBaseSafeFromFP :: (SafeFromFP NotRepresentableFPError (SymWordN n) (SymFP eb sb) SymFPRoundingMode m => r) -> r Source # | |||||
(MonadError NotRepresentableFPError m, UnifiedBranching 'S m, ValidFP eb sb, KnownNat n, 1 <= n, n ~ (eb + sb)) => UnifiedSafeBitCast 'S NotRepresentableFPError (SymFP eb sb) (SymWordN n) m Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedSafeBitCast Methods withBaseSafeBitCast :: (SafeBitCast NotRepresentableFPError (SymFP eb sb) (SymWordN n) m => r) -> r Source # | |||||
BitCast SymBool (SymWordN 1) Source # | |||||
(KnownNat n, 1 <= n) => GenSym () (SymWordN n) Source # | |||||
Defined in Grisette.Internal.Core.Data.Class.GenSym | |||||
(KnownNat n, 1 <= n) => GenSymSimple () (SymWordN n) Source # | |||||
Defined in Grisette.Internal.Core.Data.Class.GenSym Methods simpleFresh :: MonadFresh m => () -> m (SymWordN n) Source # | |||||
(KnownNat n, 1 <= n) => SymFromIntegral SymInteger (SymWordN n) Source # | |||||
Defined in Grisette.Internal.Core.Data.Class.SymFromIntegral Methods symFromIntegral :: SymInteger -> SymWordN n Source # | |||||
ToSym Word16 (SymWordN 16) Source # | |||||
ToSym Word32 (SymWordN 32) Source # | |||||
ToSym Word64 (SymWordN 64) Source # | |||||
ToSym Word8 (SymWordN 8) Source # | |||||
ToSym Word (SymWordN 64) Source # | |||||
(KnownNat n, 1 <= n) => UnifiedFiniteBits 'S (SymWordN n) Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedFiniteBits Methods withBaseFiniteBits :: (If (IsConMode 'S) (FiniteBits (SymWordN n), FromBits (SymWordN n)) (SymFiniteBits (SymWordN n)) => r) -> r Source # | |||||
Lift (SymWordN n :: Type) Source # | |||||
(MonadError ArithException m, MonadUnion m, KnownNat n, 1 <= n) => SafeLinearArith ArithException (SymWordN n) m Source # | |||||
(MonadError ArithException m, TryMerge m, KnownNat n, 1 <= n) => SafeSymRotate ArithException (SymWordN n) m Source # | |||||
(MonadError ArithException m, MonadUnion m, KnownNat n, 1 <= n) => SafeSymShift ArithException (SymWordN n) m Source # | |||||
(MonadError ArithException m, MonadUnion m, KnownNat n, 1 <= n) => SafeDiv ArithException (SymWordN n) m Source # | |||||
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.SafeDiv Methods safeDiv :: SymWordN n -> SymWordN n -> m (SymWordN n) Source # safeMod :: SymWordN n -> SymWordN n -> m (SymWordN n) Source # safeDivMod :: SymWordN n -> SymWordN n -> m (SymWordN n, SymWordN n) Source # safeQuot :: SymWordN n -> SymWordN n -> m (SymWordN n) Source # safeRem :: SymWordN n -> SymWordN n -> m (SymWordN n) Source # safeQuotRem :: SymWordN n -> SymWordN n -> m (SymWordN n, SymWordN n) Source # | |||||
(KnownNat n', 1 <= n') => UnifiedFromIntegral 'S (SymWordN n') SymAlgReal Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedFromIntegral Methods withBaseFromIntegral :: (If (IsConMode 'S) (Integral (SymWordN n'), Num SymAlgReal) (SymFromIntegral (SymWordN n') SymAlgReal) => r) -> r Source # | |||||
(KnownNat n', 1 <= n') => UnifiedFromIntegral 'S (SymWordN n') SymInteger Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedFromIntegral Methods withBaseFromIntegral :: (If (IsConMode 'S) (Integral (SymWordN n'), Num SymInteger) (SymFromIntegral (SymWordN n') SymInteger) => r) -> r Source # | |||||
(KnownNat n', 1 <= n', KnownNat n, 1 <= n) => UnifiedFromIntegral 'S (SymIntN n') (SymWordN n) Source # | |||||
(KnownNat n', 1 <= n', KnownNat n, 1 <= n) => UnifiedFromIntegral 'S (SymWordN n') (SymIntN n) Source # | |||||
(KnownNat n', 1 <= n', KnownNat n, 1 <= n) => UnifiedFromIntegral 'S (SymWordN n') (SymWordN n) Source # | |||||
(KnownNat n, 1 <= n) => UnifiedSolvable 'S (SymWordN n) (WordN n) Source # | |||||
(KnownNat n', 1 <= n', ValidFP eb sb) => UnifiedFromIntegral 'S (SymWordN n') (SymFP eb sb) Source # | |||||
(MonadError NotRepresentableFPError m, MonadUnion m, ValidFP eb sb, KnownNat n, 1 <= n) => SafeFromFP NotRepresentableFPError (SymWordN n) (SymFP eb sb) SymFPRoundingMode m Source # | |||||
Defined in Grisette.Internal.Core.Data.Class.SafeFromFP Methods safeFromFP :: SymFPRoundingMode -> SymFP eb sb -> m (SymWordN n) Source # | |||||
(MonadError (Either SomeBVException ArithException) m, UnifiedBranching 'S m) => UnifiedSafeDiv 'S (Either SomeBVException ArithException) SomeSymWordN m Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedSafeDiv Methods withBaseSafeDiv :: (SafeDiv (Either SomeBVException ArithException) SomeSymWordN m => r) -> r Source # | |||||
(MonadError (Either SomeBVException ArithException) m, UnifiedBranching 'S m) => UnifiedSafeLinearArith 'S (Either SomeBVException ArithException) SomeSymWordN m Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedSafeLinearArith Methods withBaseSafeLinearArith :: (SafeLinearArith (Either SomeBVException ArithException) SomeSymWordN m => r) -> r Source # | |||||
(MonadError (Either SomeBVException ArithException) m, UnifiedBranching 'S m) => UnifiedSafeSymRotate 'S (Either SomeBVException ArithException) SomeSymWordN m Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedSafeSymRotate Methods withBaseSafeSymRotate :: (SafeSymRotate (Either SomeBVException ArithException) SomeSymWordN m => r) -> r Source # | |||||
(MonadError (Either SomeBVException ArithException) m, UnifiedBranching 'S m) => UnifiedSafeSymShift 'S (Either SomeBVException ArithException) SomeSymWordN m Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedSafeSymShift Methods withBaseSafeSymShift :: (SafeSymShift (Either SomeBVException ArithException) SomeSymWordN m => r) -> r Source # | |||||
(ValidFP eb sb, r ~ (eb + sb), KnownNat r, 1 <= r, MonadUnion m, MonadError NotRepresentableFPError m) => SafeBitCast NotRepresentableFPError (SymFP eb sb) (SymWordN r) m Source # | |||||
Defined in Grisette.Internal.Core.Data.Class.SafeBitCast Methods safeBitCast :: SymFP eb sb -> m (SymWordN r) Source # | |||||
(KnownNat n, 1 <= n) => Binary (SymWordN n) Source # | |||||
(KnownNat n, 1 <= n) => Serial (SymWordN n) Source # | |||||
Defined in Grisette.Internal.SymPrim.SymBV | |||||
(KnownNat n, 1 <= n) => Serialize (SymWordN n) Source # | |||||
NFData (SymWordN n) Source # | |||||
Defined in Grisette.Internal.SymPrim.SymBV | |||||
(KnownNat n, 1 <= n) => Bits (SymWordN n) Source # | |||||
Defined in Grisette.Internal.SymPrim.SymBV Methods (.&.) :: SymWordN n -> SymWordN n -> SymWordN n # (.|.) :: SymWordN n -> SymWordN n -> SymWordN n # xor :: SymWordN n -> SymWordN n -> SymWordN n # complement :: SymWordN n -> SymWordN n # shift :: SymWordN n -> Int -> SymWordN n # rotate :: SymWordN n -> Int -> SymWordN n # setBit :: SymWordN n -> Int -> SymWordN n # clearBit :: SymWordN n -> Int -> SymWordN n # complementBit :: SymWordN n -> Int -> SymWordN n # testBit :: SymWordN n -> Int -> Bool # bitSizeMaybe :: SymWordN n -> Maybe Int # bitSize :: SymWordN n -> Int # isSigned :: SymWordN n -> Bool # shiftL :: SymWordN n -> Int -> SymWordN n # unsafeShiftL :: SymWordN n -> Int -> SymWordN n # shiftR :: SymWordN n -> Int -> SymWordN n # unsafeShiftR :: SymWordN n -> Int -> SymWordN n # rotateL :: SymWordN n -> Int -> SymWordN n # | |||||
(KnownNat n, 1 <= n) => FiniteBits (SymWordN n) Source # | |||||
Defined in Grisette.Internal.SymPrim.SymBV Methods finiteBitSize :: SymWordN n -> Int # countLeadingZeros :: SymWordN n -> Int # countTrailingZeros :: SymWordN n -> Int # | |||||
(KnownNat n, 1 <= n) => IsString (SymWordN n) Source # | |||||
Defined in Grisette.Internal.SymPrim.SymBV Methods fromString :: String -> SymWordN n # | |||||
(KnownNat n, 1 <= n) => Enum (SymWordN n) Source # | |||||
Defined in Grisette.Internal.SymPrim.SymBV Methods succ :: SymWordN n -> SymWordN n # pred :: SymWordN n -> SymWordN n # fromEnum :: SymWordN n -> Int # enumFrom :: SymWordN n -> [SymWordN n] # enumFromThen :: SymWordN n -> SymWordN n -> [SymWordN n] # enumFromTo :: SymWordN n -> SymWordN n -> [SymWordN n] # enumFromThenTo :: SymWordN n -> SymWordN n -> SymWordN n -> [SymWordN n] # | |||||
Generic (SymWordN n) Source # | |||||
Defined in Grisette.Internal.SymPrim.SymBV Associated Types
| |||||
(KnownNat n, 1 <= n) => Num (SymWordN n) Source # | |||||
Defined in Grisette.Internal.SymPrim.SymBV | |||||
(KnownNat n, 1 <= n) => Integral (SymWordN n) Source # | The functions are total and will not throw errors. The result is considered undefined if the divisor is 0. It is the responsibility of the caller to ensure that the divisor is not
zero with the symbolic constraints, or use the | ||||
Defined in Grisette.Internal.SymPrim.SymBV Methods quot :: SymWordN n -> SymWordN n -> SymWordN n # rem :: SymWordN n -> SymWordN n -> SymWordN n # div :: SymWordN n -> SymWordN n -> SymWordN n # mod :: SymWordN n -> SymWordN n -> SymWordN n # quotRem :: SymWordN n -> SymWordN n -> (SymWordN n, SymWordN n) # divMod :: SymWordN n -> SymWordN n -> (SymWordN n, SymWordN n) # | |||||
(KnownNat n, 1 <= n) => Real (SymWordN n) Source # | |||||
Defined in Grisette.Internal.SymPrim.SymBV Methods toRational :: SymWordN n -> Rational # | |||||
(KnownNat n, 1 <= n) => Show (SymWordN n) Source # | |||||
(KnownNat n, 1 <= n) => Eq (SymWordN n) Source # | This will crash the program.
If you want to use the type as keys in hash maps based on term equality, say
memo table, you should use | ||||
(KnownNat n, 1 <= n) => Ord (SymWordN n) Source # | |||||
Defined in Grisette.Internal.SymPrim.SymBV | |||||
(KnownNat n, 1 <= n) => KeyEq (SymWordN n) Source # | |||||
(KnownNat n, 1 <= n) => KeyHashable (SymWordN n) Source # | |||||
Defined in Grisette.Internal.SymPrim.SymBV | |||||
(KnownNat n, 1 <= n) => Apply (SymWordN n) Source # | |||||
(KnownNat n, 1 <= n) => ITEOp (SymWordN n) Source # | |||||
SymFiniteBits (SomeBV SymWordN) Source # | |||||
(KnownNat n, 1 <= n) => SymFiniteBits (SymWordN n) Source # | |||||
(KnownNat n, 1 <= n) => SymRotate (SymWordN n) Source # | |||||
(KnownNat n, 1 <= n) => SymShift (SymWordN n) Source # | |||||
(KnownNat n, 1 <= n) => EvalSym (SymWordN n) Source # | |||||
(KnownNat n, 1 <= n) => ExtractSym (SymWordN n) Source # | |||||
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.ExtractSym Methods extractSym :: SymWordN n -> AnySymbolSet Source # extractSymMaybe :: forall (knd :: SymbolKind). IsSymbolKind knd => SymWordN n -> Maybe (SymbolSet knd) Source # | |||||
(KnownNat n, 1 <= n) => Mergeable (SymWordN n) Source # | |||||
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.Mergeable Methods rootStrategy :: MergingStrategy (SymWordN n) Source # sortIndices :: SymWordN n -> [DynamicSortedIdx] Source # | |||||
(KnownNat n, 1 <= n) => PPrint (SymWordN n) Source # | |||||
(KnownNat n, 1 <= n) => DivOr (SymWordN n) Source # | |||||
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.SafeDiv Methods divOr :: SymWordN n -> SymWordN n -> SymWordN n -> SymWordN n Source # modOr :: SymWordN n -> SymWordN n -> SymWordN n -> SymWordN n Source # divModOr :: (SymWordN n, SymWordN n) -> SymWordN n -> SymWordN n -> (SymWordN n, SymWordN n) Source # quotOr :: SymWordN n -> SymWordN n -> SymWordN n -> SymWordN n Source # remOr :: SymWordN n -> SymWordN n -> SymWordN n -> SymWordN n Source # quotRemOr :: (SymWordN n, SymWordN n) -> SymWordN n -> SymWordN n -> (SymWordN n, SymWordN n) Source # | |||||
(KnownNat n, 1 <= n) => SimpleMergeable (SymWordN n) Source # | |||||
(KnownNat n, 1 <= n) => SubstSym (SymWordN n) Source # | |||||
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.SubstSym Methods substSym :: forall cb sb (knd :: SymbolKind). (LinkedRep cb sb, IsSymbolKind knd) => TypedSymbol knd cb -> sb -> SymWordN n -> SymWordN n Source # | |||||
(KnownNat n, 1 <= n) => SymEq (SymWordN n) Source # | |||||
(KnownNat n, 1 <= n) => SymOrd (SymWordN n) Source # | |||||
(KnownNat n, 1 <= n) => AllSyms (SymWordN n) Source # | |||||
(KnownNat n, 1 <= n) => ConRep (SymWordN n) Source # | |||||
Defined in Grisette.Internal.SymPrim.SymBV | |||||
(KnownNat n, 1 <= n) => UnifiedConRep (SymWordN n) Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedRep | |||||
(KnownNat n, 1 <= n) => UnifiedSymRep (SymWordN n) Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedRep | |||||
BitCast (SymWordN 1) SymBool Source # | |||||
(KnownNat n, 1 <= n) => SymFromIntegral (SymWordN n) SymAlgReal Source # | |||||
Defined in Grisette.Internal.Core.Data.Class.SymFromIntegral Methods symFromIntegral :: SymWordN n -> SymAlgReal Source # | |||||
(KnownNat n, 1 <= n) => SymFromIntegral (SymWordN n) SymInteger Source # | |||||
Defined in Grisette.Internal.Core.Data.Class.SymFromIntegral Methods symFromIntegral :: SymWordN n -> SymInteger Source # | |||||
ToCon (SymWordN 8) Word8 Source # | |||||
ToCon (SymWordN 16) Word16 Source # | |||||
ToCon (SymWordN 32) Word32 Source # | |||||
ToCon (SymWordN 64) Word64 Source # | |||||
ToCon (SymWordN 64) Word Source # | |||||
(KnownNat n, 1 <= n) => BitCast (SymIntN n) (SymWordN n) Source # | |||||
(KnownNat n, 1 <= n) => BitCast (SymWordN n) (SymIntN n) Source # | |||||
(KnownNat n, 1 <= n) => GenSym (SymWordN n) (SymWordN n) Source # | |||||
Defined in Grisette.Internal.Core.Data.Class.GenSym | |||||
(KnownNat n, 1 <= n) => GenSymSimple (SymWordN n) (SymWordN n) Source # | |||||
Defined in Grisette.Internal.Core.Data.Class.GenSym Methods simpleFresh :: MonadFresh m => SymWordN n -> m (SymWordN n) Source # | |||||
(KnownNat n, 1 <= n) => SignConversion (SymWordN n) (SymIntN n) Source # | |||||
(KnownNat n, 1 <= n) => Solvable (WordN n) (SymWordN n) Source # | |||||
(KnownNat n, KnownNat m, 1 <= n, 1 <= m) => SymFromIntegral (SymIntN n) (SymWordN m) Source # | |||||
Defined in Grisette.Internal.Core.Data.Class.SymFromIntegral Methods symFromIntegral :: SymIntN n -> SymWordN m Source # | |||||
(KnownNat n, KnownNat m, 1 <= n, 1 <= m) => SymFromIntegral (SymWordN n) (SymIntN m) Source # | |||||
Defined in Grisette.Internal.Core.Data.Class.SymFromIntegral Methods symFromIntegral :: SymWordN n -> SymIntN m Source # | |||||
(KnownNat n, KnownNat m, 1 <= n, 1 <= m) => SymFromIntegral (SymWordN n) (SymWordN m) Source # | |||||
Defined in Grisette.Internal.Core.Data.Class.SymFromIntegral Methods symFromIntegral :: SymWordN n -> SymWordN m Source # | |||||
(KnownNat n, 1 <= n) => ToCon (SymWordN n) (WordN n) Source # | |||||
ToCon (SymWordN n) (SymWordN n) Source # | |||||
(KnownNat n, 1 <= n) => ToSym (Union (WordN n)) (SymWordN n) Source # | |||||
(KnownNat n, 1 <= n) => ToSym (WordN n) (SymWordN n) Source # | |||||
(KnownNat n, 1 <= n) => ToSym (SymWordN n) (SymWordN n) Source # | |||||
(KnownNat n, 1 <= n) => LinkedRep (WordN n) (SymWordN n) Source # | |||||
(ValidFP eb sb, r ~ (eb + sb)) => BitCast (SymWordN r) (SymFP eb sb) Source # | |||||
(KnownNat n, 1 <= n, ValidFP eb sb) => SymFromIntegral (SymWordN n) (SymFP eb sb) Source # | |||||
Defined in Grisette.Internal.Core.Data.Class.SymFromIntegral Methods symFromIntegral :: SymWordN n -> SymFP eb sb Source # | |||||
(ValidFP eb sb, KnownNat n, 1 <= n) => IEEEFPConvertible (SymWordN n) (SymFP eb sb) SymFPRoundingMode Source # | |||||
Defined in Grisette.Internal.SymPrim.SymFP | |||||
(ValidFP eb sb, r ~ (eb + sb)) => BitCastCanonical (SymFP eb sb) (SymWordN r) Source # | |||||
Defined in Grisette.Internal.SymPrim.SymFP Methods bitCastCanonicalValue :: proxy (SymFP eb sb) -> SymWordN r Source # | |||||
(ValidFP eb sb, r ~ (eb + sb)) => BitCastOr (SymFP eb sb) (SymWordN r) Source # | |||||
type Rep (SymWordN n) Source # | |||||
Defined in Grisette.Internal.SymPrim.SymBV type Rep (SymWordN n) = D1 ('MetaData "SymWordN" "Grisette.Internal.SymPrim.SymBV" "grisette-0.13.0.1-LKOkrwJaCqLLaF4eMpvbe4" 'True) (C1 ('MetaCons "SymWordN" 'PrefixI 'True) (S1 ('MetaSel ('Just "underlyingWordNTerm") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Term (WordN n))))) | |||||
type FunType (SymWordN n) Source # | |||||
Defined in Grisette.Internal.SymPrim.SymBV | |||||
type ConType (SymWordN n) Source # | |||||
Defined in Grisette.Internal.SymPrim.SymBV | |||||
type ConType (SymWordN n) Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedRep | |||||
type SymType (SymWordN n) Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedRep |
type SymWordN8Key = SymWordNKey 8 Source #
SymWordN
8@ type with identity equality.
type SymWordN16 = SymWordN 16 Source #
Symbolic 16-bit unsigned bit-vector.
type SymWordN16Key = SymWordNKey 16 Source #
SymWordN
16@ type with identity equality.
type SymWordN32 = SymWordN 32 Source #
Symbolic 32-bit unsigned bit-vector.
type SymWordN32Key = SymWordNKey 32 Source #
SymWordN
32@ type with identity equality.
type SymWordN64 = SymWordN 64 Source #
Symbolic 64-bit unsigned bit-vector.
type SymWordN64Key = SymWordNKey 64 Source #
SymWordN
64@ type with identity equality.
newtype SymIntN (n :: Nat) Source #
Symbolic signed bit vector type. Indexed with the bit width. Signedness affects the semantics of the operations, including comparison/extension, etc.
>>>
"a" + 5 :: SymIntN 5
(+ 0b00101 a)>>>
sizedBVConcat (con 0b101 :: SymIntN 3) (con 0b110 :: SymIntN 3)
0b101110>>>
sizedBVExt (Proxy @6) (con 0b101 :: SymIntN 3)
0b111101>>>
(8 :: SymIntN 4) .< (7 :: SymIntN 4)
true
More operations are available. Please refer to Grisette.Core for more information.
Instances
SizedBV SymIntN Source # | |||||
Defined in Grisette.Internal.SymPrim.SymBV Methods sizedBVConcat :: forall (l :: Nat) (r :: Nat). (KnownNat l, KnownNat r, 1 <= l, 1 <= r) => SymIntN l -> SymIntN r -> SymIntN (l + r) Source # sizedBVZext :: forall (l :: Nat) (r :: Nat) proxy. (KnownNat l, KnownNat r, 1 <= l, KnownNat r, l <= r) => proxy r -> SymIntN l -> SymIntN r Source # sizedBVSext :: forall (l :: Nat) (r :: Nat) proxy. (KnownNat l, KnownNat r, 1 <= l, KnownNat r, l <= r) => proxy r -> SymIntN l -> SymIntN r Source # sizedBVExt :: forall (l :: Nat) (r :: Nat) proxy. (KnownNat l, KnownNat r, 1 <= l, KnownNat r, l <= r) => proxy r -> SymIntN l -> SymIntN r Source # sizedBVSelect :: forall (n :: Nat) (ix :: Nat) (w :: Nat) p q. (KnownNat n, KnownNat ix, KnownNat w, 1 <= n, 1 <= w, (ix + w) <= n) => p ix -> q w -> SymIntN n -> SymIntN w Source # sizedBVFromIntegral :: forall a (n :: Nat). (Integral a, KnownNat n, 1 <= n) => a -> SymIntN n Source # | |||||
UnifiedFiniteBits 'S SomeSymIntN Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedFiniteBits Methods withBaseFiniteBits :: (If (IsConMode 'S) (FiniteBits SomeSymIntN, FromBits SomeSymIntN) (SymFiniteBits SomeSymIntN) => r) -> r Source # | |||||
(KnownNat n, 1 <= n) => UnifiedBVImpl 'S SymWordN SymIntN n (SymWordN n) (SymIntN n) Source # | |||||
(KnownNat n, 1 <= n) => UnifiedFromIntegral 'S SymInteger (SymIntN n) Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedFromIntegral Methods withBaseFromIntegral :: (If (IsConMode 'S) (Integral SymInteger, Num (SymIntN n)) (SymFromIntegral SymInteger (SymIntN n)) => r) -> r Source # | |||||
(MonadError ArithException m, UnifiedBranching 'S m, KnownNat n, 1 <= n) => UnifiedSafeDiv 'S ArithException (SymIntN n) m Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedSafeDiv Methods withBaseSafeDiv :: (SafeDiv ArithException (SymIntN n) m => r) -> r Source # | |||||
(MonadError ArithException m, UnifiedBranching 'S m, KnownNat n, 1 <= n) => UnifiedSafeLinearArith 'S ArithException (SymIntN n) m Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedSafeLinearArith Methods withBaseSafeLinearArith :: (SafeLinearArith ArithException (SymIntN n) m => r) -> r Source # | |||||
(MonadError ArithException m, UnifiedBranching 'S m, KnownNat n, 1 <= n) => UnifiedSafeSymRotate 'S ArithException (SymIntN n) m Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedSafeSymRotate Methods withBaseSafeSymRotate :: (SafeSymRotate ArithException (SymIntN n) m => r) -> r Source # | |||||
(MonadError ArithException m, UnifiedBranching 'S m, KnownNat n, 1 <= n) => UnifiedSafeSymShift 'S ArithException (SymIntN n) m Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedSafeSymShift Methods withBaseSafeSymShift :: (SafeSymShift ArithException (SymIntN n) m => r) -> r Source # | |||||
(MonadError NotRepresentableFPError m, UnifiedBranching 'S m, ValidFP eb sb, KnownNat n, 1 <= n) => UnifiedSafeFromFP 'S NotRepresentableFPError (SymIntN n) (SymFP eb sb) SymFPRoundingMode m Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedSafeFromFP Methods withBaseSafeFromFP :: (SafeFromFP NotRepresentableFPError (SymIntN n) (SymFP eb sb) SymFPRoundingMode m => r) -> r Source # | |||||
(MonadError NotRepresentableFPError m, UnifiedBranching 'S m, ValidFP eb sb, KnownNat n, 1 <= n, n ~ (eb + sb)) => UnifiedSafeBitCast 'S NotRepresentableFPError (SymFP eb sb) (SymIntN n) m Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedSafeBitCast Methods withBaseSafeBitCast :: (SafeBitCast NotRepresentableFPError (SymFP eb sb) (SymIntN n) m => r) -> r Source # | |||||
BitCast SymBool (SymIntN 1) Source # | |||||
(KnownNat n, 1 <= n) => GenSym () (SymIntN n) Source # | |||||
Defined in Grisette.Internal.Core.Data.Class.GenSym | |||||
(KnownNat n, 1 <= n) => GenSymSimple () (SymIntN n) Source # | |||||
Defined in Grisette.Internal.Core.Data.Class.GenSym Methods simpleFresh :: MonadFresh m => () -> m (SymIntN n) Source # | |||||
(KnownNat n, 1 <= n) => SymFromIntegral SymInteger (SymIntN n) Source # | |||||
Defined in Grisette.Internal.Core.Data.Class.SymFromIntegral Methods symFromIntegral :: SymInteger -> SymIntN n Source # | |||||
ToSym Int16 (SymIntN 16) Source # | |||||
ToSym Int32 (SymIntN 32) Source # | |||||
ToSym Int64 (SymIntN 64) Source # | |||||
ToSym Int8 (SymIntN 8) Source # | |||||
ToSym Int (SymIntN 64) Source # | |||||
(KnownNat n, 1 <= n) => UnifiedFiniteBits 'S (SymIntN n) Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedFiniteBits Methods withBaseFiniteBits :: (If (IsConMode 'S) (FiniteBits (SymIntN n), FromBits (SymIntN n)) (SymFiniteBits (SymIntN n)) => r) -> r Source # | |||||
Lift (SymIntN n :: Type) Source # | |||||
(MonadError ArithException m, MonadUnion m, KnownNat n, 1 <= n) => SafeLinearArith ArithException (SymIntN n) m Source # | |||||
(MonadError ArithException m, MonadUnion m, KnownNat n, 1 <= n) => SafeSymRotate ArithException (SymIntN n) m Source # | |||||
(MonadError ArithException m, MonadUnion m, KnownNat n, 1 <= n) => SafeSymShift ArithException (SymIntN n) m Source # | |||||
(MonadError ArithException m, MonadUnion m, KnownNat n, 1 <= n) => SafeDiv ArithException (SymIntN n) m Source # | |||||
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.SafeDiv Methods safeDiv :: SymIntN n -> SymIntN n -> m (SymIntN n) Source # safeMod :: SymIntN n -> SymIntN n -> m (SymIntN n) Source # safeDivMod :: SymIntN n -> SymIntN n -> m (SymIntN n, SymIntN n) Source # safeQuot :: SymIntN n -> SymIntN n -> m (SymIntN n) Source # safeRem :: SymIntN n -> SymIntN n -> m (SymIntN n) Source # safeQuotRem :: SymIntN n -> SymIntN n -> m (SymIntN n, SymIntN n) Source # | |||||
(KnownNat n', 1 <= n') => UnifiedFromIntegral 'S (SymIntN n') SymAlgReal Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedFromIntegral Methods withBaseFromIntegral :: (If (IsConMode 'S) (Integral (SymIntN n'), Num SymAlgReal) (SymFromIntegral (SymIntN n') SymAlgReal) => r) -> r Source # | |||||
(KnownNat n', 1 <= n') => UnifiedFromIntegral 'S (SymIntN n') SymInteger Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedFromIntegral Methods withBaseFromIntegral :: (If (IsConMode 'S) (Integral (SymIntN n'), Num SymInteger) (SymFromIntegral (SymIntN n') SymInteger) => r) -> r Source # | |||||
(KnownNat n', 1 <= n', KnownNat n, 1 <= n) => UnifiedFromIntegral 'S (SymIntN n') (SymIntN n) Source # | |||||
(KnownNat n', 1 <= n', KnownNat n, 1 <= n) => UnifiedFromIntegral 'S (SymIntN n') (SymWordN n) Source # | |||||
(KnownNat n', 1 <= n', KnownNat n, 1 <= n) => UnifiedFromIntegral 'S (SymWordN n') (SymIntN n) Source # | |||||
(KnownNat n, 1 <= n) => UnifiedSolvable 'S (SymIntN n) (IntN n) Source # | |||||
(KnownNat n', 1 <= n', ValidFP eb sb) => UnifiedFromIntegral 'S (SymIntN n') (SymFP eb sb) Source # | |||||
(MonadError NotRepresentableFPError m, MonadUnion m, ValidFP eb sb, KnownNat n, 1 <= n) => SafeFromFP NotRepresentableFPError (SymIntN n) (SymFP eb sb) SymFPRoundingMode m Source # | |||||
Defined in Grisette.Internal.Core.Data.Class.SafeFromFP Methods safeFromFP :: SymFPRoundingMode -> SymFP eb sb -> m (SymIntN n) Source # | |||||
(MonadError (Either SomeBVException ArithException) m, UnifiedBranching 'S m) => UnifiedSafeDiv 'S (Either SomeBVException ArithException) SomeSymIntN m Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedSafeDiv Methods withBaseSafeDiv :: (SafeDiv (Either SomeBVException ArithException) SomeSymIntN m => r) -> r Source # | |||||
(MonadError (Either SomeBVException ArithException) m, UnifiedBranching 'S m) => UnifiedSafeLinearArith 'S (Either SomeBVException ArithException) SomeSymIntN m Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedSafeLinearArith Methods withBaseSafeLinearArith :: (SafeLinearArith (Either SomeBVException ArithException) SomeSymIntN m => r) -> r Source # | |||||
(MonadError (Either SomeBVException ArithException) m, UnifiedBranching 'S m) => UnifiedSafeSymRotate 'S (Either SomeBVException ArithException) SomeSymIntN m Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedSafeSymRotate Methods withBaseSafeSymRotate :: (SafeSymRotate (Either SomeBVException ArithException) SomeSymIntN m => r) -> r Source # | |||||
(MonadError (Either SomeBVException ArithException) m, UnifiedBranching 'S m) => UnifiedSafeSymShift 'S (Either SomeBVException ArithException) SomeSymIntN m Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedSafeSymShift Methods withBaseSafeSymShift :: (SafeSymShift (Either SomeBVException ArithException) SomeSymIntN m => r) -> r Source # | |||||
(ValidFP eb sb, r ~ (eb + sb), KnownNat r, 1 <= r, MonadUnion m, MonadError NotRepresentableFPError m) => SafeBitCast NotRepresentableFPError (SymFP eb sb) (SymIntN r) m Source # | |||||
Defined in Grisette.Internal.Core.Data.Class.SafeBitCast Methods safeBitCast :: SymFP eb sb -> m (SymIntN r) Source # | |||||
(KnownNat n, 1 <= n) => Binary (SymIntN n) Source # | |||||
(KnownNat n, 1 <= n) => Serial (SymIntN n) Source # | |||||
Defined in Grisette.Internal.SymPrim.SymBV | |||||
(KnownNat n, 1 <= n) => Serialize (SymIntN n) Source # | |||||
NFData (SymIntN n) Source # | |||||
Defined in Grisette.Internal.SymPrim.SymBV | |||||
(KnownNat n, 1 <= n) => Bits (SymIntN n) Source # | |||||
Defined in Grisette.Internal.SymPrim.SymBV Methods (.&.) :: SymIntN n -> SymIntN n -> SymIntN n # (.|.) :: SymIntN n -> SymIntN n -> SymIntN n # xor :: SymIntN n -> SymIntN n -> SymIntN n # complement :: SymIntN n -> SymIntN n # shift :: SymIntN n -> Int -> SymIntN n # rotate :: SymIntN n -> Int -> SymIntN n # setBit :: SymIntN n -> Int -> SymIntN n # clearBit :: SymIntN n -> Int -> SymIntN n # complementBit :: SymIntN n -> Int -> SymIntN n # testBit :: SymIntN n -> Int -> Bool # bitSizeMaybe :: SymIntN n -> Maybe Int # isSigned :: SymIntN n -> Bool # shiftL :: SymIntN n -> Int -> SymIntN n # unsafeShiftL :: SymIntN n -> Int -> SymIntN n # shiftR :: SymIntN n -> Int -> SymIntN n # unsafeShiftR :: SymIntN n -> Int -> SymIntN n # rotateL :: SymIntN n -> Int -> SymIntN n # | |||||
(KnownNat n, 1 <= n) => FiniteBits (SymIntN n) Source # | |||||
Defined in Grisette.Internal.SymPrim.SymBV Methods finiteBitSize :: SymIntN n -> Int # countLeadingZeros :: SymIntN n -> Int # countTrailingZeros :: SymIntN n -> Int # | |||||
(KnownNat n, 1 <= n) => IsString (SymIntN n) Source # | |||||
Defined in Grisette.Internal.SymPrim.SymBV Methods fromString :: String -> SymIntN n # | |||||
(KnownNat n, 1 <= n) => Bounded (SymIntN n) Source # | |||||
(KnownNat n, 1 <= n) => Enum (SymIntN n) Source # | |||||
Defined in Grisette.Internal.SymPrim.SymBV Methods succ :: SymIntN n -> SymIntN n # pred :: SymIntN n -> SymIntN n # fromEnum :: SymIntN n -> Int # enumFrom :: SymIntN n -> [SymIntN n] # enumFromThen :: SymIntN n -> SymIntN n -> [SymIntN n] # enumFromTo :: SymIntN n -> SymIntN n -> [SymIntN n] # enumFromThenTo :: SymIntN n -> SymIntN n -> SymIntN n -> [SymIntN n] # | |||||
Generic (SymIntN n) Source # | |||||
Defined in Grisette.Internal.SymPrim.SymBV Associated Types
| |||||
(KnownNat n, 1 <= n) => Num (SymIntN n) Source # | |||||
Defined in Grisette.Internal.SymPrim.SymBV | |||||
(KnownNat n, 1 <= n) => Integral (SymIntN n) Source # | The functions are total and will not throw errors. The result is considered undefined if the divisor is 0. It is the responsibility of the caller to ensure that the divisor is not
zero with the symbolic constraints, or use the | ||||
Defined in Grisette.Internal.SymPrim.SymBV Methods quot :: SymIntN n -> SymIntN n -> SymIntN n # rem :: SymIntN n -> SymIntN n -> SymIntN n # div :: SymIntN n -> SymIntN n -> SymIntN n # mod :: SymIntN n -> SymIntN n -> SymIntN n # quotRem :: SymIntN n -> SymIntN n -> (SymIntN n, SymIntN n) # divMod :: SymIntN n -> SymIntN n -> (SymIntN n, SymIntN n) # | |||||
(KnownNat n, 1 <= n) => Real (SymIntN n) Source # | |||||
Defined in Grisette.Internal.SymPrim.SymBV Methods toRational :: SymIntN n -> Rational # | |||||
(KnownNat n, 1 <= n) => Show (SymIntN n) Source # | |||||
(KnownNat n, 1 <= n) => Eq (SymIntN n) Source # | |||||
(KnownNat n, 1 <= n) => Ord (SymIntN n) Source # | |||||
(KnownNat n, 1 <= n) => KeyEq (SymIntN n) Source # | |||||
(KnownNat n, 1 <= n) => KeyHashable (SymIntN n) Source # | |||||
Defined in Grisette.Internal.SymPrim.SymBV | |||||
(KnownNat n, 1 <= n) => Apply (SymIntN n) Source # | |||||
(KnownNat n, 1 <= n) => ITEOp (SymIntN n) Source # | |||||
SymFiniteBits (SomeBV SymIntN) Source # | |||||
(KnownNat n, 1 <= n) => SymFiniteBits (SymIntN n) Source # | |||||
(KnownNat n, 1 <= n) => SymRotate (SymIntN n) Source # | |||||
(KnownNat n, 1 <= n) => SymShift (SymIntN n) Source # | |||||
(KnownNat n, 1 <= n) => EvalSym (SymIntN n) Source # | |||||
(KnownNat n, 1 <= n) => ExtractSym (SymIntN n) Source # | |||||
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.ExtractSym Methods extractSym :: SymIntN n -> AnySymbolSet Source # extractSymMaybe :: forall (knd :: SymbolKind). IsSymbolKind knd => SymIntN n -> Maybe (SymbolSet knd) Source # | |||||
(KnownNat n, 1 <= n) => Mergeable (SymIntN n) Source # | |||||
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.Mergeable Methods rootStrategy :: MergingStrategy (SymIntN n) Source # sortIndices :: SymIntN n -> [DynamicSortedIdx] Source # | |||||
(KnownNat n, 1 <= n) => PPrint (SymIntN n) Source # | |||||
(KnownNat n, 1 <= n) => DivOr (SymIntN n) Source # | |||||
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.SafeDiv Methods divOr :: SymIntN n -> SymIntN n -> SymIntN n -> SymIntN n Source # modOr :: SymIntN n -> SymIntN n -> SymIntN n -> SymIntN n Source # divModOr :: (SymIntN n, SymIntN n) -> SymIntN n -> SymIntN n -> (SymIntN n, SymIntN n) Source # quotOr :: SymIntN n -> SymIntN n -> SymIntN n -> SymIntN n Source # remOr :: SymIntN n -> SymIntN n -> SymIntN n -> SymIntN n Source # quotRemOr :: (SymIntN n, SymIntN n) -> SymIntN n -> SymIntN n -> (SymIntN n, SymIntN n) Source # | |||||
(KnownNat n, 1 <= n) => SimpleMergeable (SymIntN n) Source # | |||||
(KnownNat n, 1 <= n) => SubstSym (SymIntN n) Source # | |||||
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.SubstSym Methods substSym :: forall cb sb (knd :: SymbolKind). (LinkedRep cb sb, IsSymbolKind knd) => TypedSymbol knd cb -> sb -> SymIntN n -> SymIntN n Source # | |||||
(KnownNat n, 1 <= n) => SymEq (SymIntN n) Source # | |||||
(KnownNat n, 1 <= n) => SymOrd (SymIntN n) Source # | |||||
(KnownNat n, 1 <= n) => AllSyms (SymIntN n) Source # | |||||
(KnownNat n, 1 <= n) => ConRep (SymIntN n) Source # | |||||
Defined in Grisette.Internal.SymPrim.SymBV | |||||
(KnownNat n, 1 <= n) => UnifiedConRep (SymIntN n) Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedRep | |||||
(KnownNat n, 1 <= n) => UnifiedSymRep (SymIntN n) Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedRep | |||||
BitCast (SymIntN 1) SymBool Source # | |||||
(KnownNat n, 1 <= n) => SymFromIntegral (SymIntN n) SymAlgReal Source # | |||||
Defined in Grisette.Internal.Core.Data.Class.SymFromIntegral Methods symFromIntegral :: SymIntN n -> SymAlgReal Source # | |||||
(KnownNat n, 1 <= n) => SymFromIntegral (SymIntN n) SymInteger Source # | |||||
Defined in Grisette.Internal.Core.Data.Class.SymFromIntegral Methods symFromIntegral :: SymIntN n -> SymInteger Source # | |||||
ToCon (SymIntN 8) Int8 Source # | |||||
ToCon (SymIntN 16) Int16 Source # | |||||
ToCon (SymIntN 32) Int32 Source # | |||||
ToCon (SymIntN 64) Int64 Source # | |||||
ToCon (SymIntN 64) Int Source # | |||||
(KnownNat n, 1 <= n) => BitCast (SymIntN n) (SymWordN n) Source # | |||||
(KnownNat n, 1 <= n) => BitCast (SymWordN n) (SymIntN n) Source # | |||||
(KnownNat n, 1 <= n) => GenSym (SymIntN n) (SymIntN n) Source # | |||||
Defined in Grisette.Internal.Core.Data.Class.GenSym | |||||
(KnownNat n, 1 <= n) => GenSymSimple (SymIntN n) (SymIntN n) Source # | |||||
Defined in Grisette.Internal.Core.Data.Class.GenSym Methods simpleFresh :: MonadFresh m => SymIntN n -> m (SymIntN n) Source # | |||||
(KnownNat n, 1 <= n) => SignConversion (SymWordN n) (SymIntN n) Source # | |||||
(KnownNat n, 1 <= n) => Solvable (IntN n) (SymIntN n) Source # | |||||
(KnownNat n, KnownNat m, 1 <= n, 1 <= m) => SymFromIntegral (SymIntN n) (SymIntN m) Source # | |||||
Defined in Grisette.Internal.Core.Data.Class.SymFromIntegral Methods symFromIntegral :: SymIntN n -> SymIntN m Source # | |||||
(KnownNat n, KnownNat m, 1 <= n, 1 <= m) => SymFromIntegral (SymIntN n) (SymWordN m) Source # | |||||
Defined in Grisette.Internal.Core.Data.Class.SymFromIntegral Methods symFromIntegral :: SymIntN n -> SymWordN m Source # | |||||
(KnownNat n, KnownNat m, 1 <= n, 1 <= m) => SymFromIntegral (SymWordN n) (SymIntN m) Source # | |||||
Defined in Grisette.Internal.Core.Data.Class.SymFromIntegral Methods symFromIntegral :: SymWordN n -> SymIntN m Source # | |||||
(KnownNat n, 1 <= n) => ToCon (SymIntN n) (IntN n) Source # | |||||
ToCon (SymIntN n) (SymIntN n) Source # | |||||
(KnownNat n, 1 <= n) => ToSym (Union (IntN n)) (SymIntN n) Source # | |||||
(KnownNat n, 1 <= n) => ToSym (IntN n) (SymIntN n) Source # | |||||
(KnownNat n, 1 <= n) => ToSym (SymIntN n) (SymIntN n) Source # | |||||
(KnownNat n, 1 <= n) => LinkedRep (IntN n) (SymIntN n) Source # | |||||
(ValidFP eb sb, r ~ (eb + sb)) => BitCast (SymIntN r) (SymFP eb sb) Source # | |||||
(KnownNat n, 1 <= n, ValidFP eb sb) => SymFromIntegral (SymIntN n) (SymFP eb sb) Source # | |||||
Defined in Grisette.Internal.Core.Data.Class.SymFromIntegral Methods symFromIntegral :: SymIntN n -> SymFP eb sb Source # | |||||
(ValidFP eb sb, KnownNat n, 1 <= n) => IEEEFPConvertible (SymIntN n) (SymFP eb sb) SymFPRoundingMode Source # | |||||
Defined in Grisette.Internal.SymPrim.SymFP | |||||
(ValidFP eb sb, r ~ (eb + sb)) => BitCastCanonical (SymFP eb sb) (SymIntN r) Source # | |||||
Defined in Grisette.Internal.SymPrim.SymFP Methods bitCastCanonicalValue :: proxy (SymFP eb sb) -> SymIntN r Source # | |||||
(ValidFP eb sb, r ~ (eb + sb)) => BitCastOr (SymFP eb sb) (SymIntN r) Source # | |||||
type Rep (SymIntN n) Source # | |||||
Defined in Grisette.Internal.SymPrim.SymBV | |||||
type FunType (SymIntN n) Source # | |||||
Defined in Grisette.Internal.SymPrim.SymBV | |||||
type ConType (SymIntN n) Source # | |||||
Defined in Grisette.Internal.SymPrim.SymBV | |||||
type ConType (SymIntN n) Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedRep | |||||
type SymType (SymIntN n) Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedRep |
type SymIntN8Key = SymIntNKey 8 Source #
type with identity equality.SymIntN
8
type SymIntN16Key = SymIntNKey 16 Source #
type with identity equality.SymIntN
16
type SymIntN32Key = SymIntNKey 32 Source #
type with identity equality.SymIntN
32
type SymIntN64Key = SymIntNKey 64 Source #
type with identity equality.SymIntN
64
type SomeSymIntNKey = SomeBVKey SymIntN Source #
SomeSymIntN
with identity equality.
type SomeSymWordN = SomeBV SymWordN Source #
Type synonym for SomeBV
for symbolic unsigned bitvectors.
type SomeSymWordNKey = SomeBVKey SymWordN Source #
SomeSymWordN
with identity equality.
pattern SomeSymIntN :: forall (n :: Nat). () => (KnownNat n, 1 <= n) => SymIntN n -> SomeSymIntN Source #
Pattern synonym for SomeBV
for symbolic signed bitvectors.
pattern SomeSymWordN :: forall (n :: Nat). () => (KnownNat n, 1 <= n) => SymWordN n -> SomeSymWordN Source #
Pattern synonym for SomeBV
for symbolic unsigned bitvectors.
pattern SomeSymIntNKey :: forall (n :: Nat). () => (KnownNat n, 1 <= n) => SymIntN n -> SomeSymIntNKey Source #
pattern SomeSymWordNKey :: forall (n :: Nat). () => (KnownNat n, 1 <= n) => SymWordN n -> SomeSymWordNKey Source #
Symbolic floating point
newtype SymFP (eb :: Nat) (sb :: Nat) Source #
Symbolic IEEE 754 floating-point number with eb
exponent bits and sb
significand bits.
>>>
"a" + 2.0 :: SymFP 11 53
(+ a 2.0)>>>
fpAdd rne "a" 2.0 :: SymFP 11 53
(fp.add rne a 2.0)
More operations are available. Please refer to Grisette.Core for more information.
Instances
ToCon SymFP32 Float Source # | |||||||||
ToCon SymFP64 Double Source # | |||||||||
ToSym Double SymFP64 Source # | |||||||||
ToSym Float SymFP32 Source # | |||||||||
ValidFP eb sb => UnifiedFPImpl 'S SymFP eb sb (SymFP eb sb) SymFPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.Internal.Impl.Unified.UnifiedFP Associated Types
| |||||||||
(MonadError NotRepresentableFPError m, UnifiedBranching 'S m, ValidFP eb sb) => UnifiedSafeFromFP 'S NotRepresentableFPError SymAlgReal (SymFP eb sb) SymFPRoundingMode m Source # | |||||||||
Defined in Grisette.Internal.Unified.Class.UnifiedSafeFromFP Methods withBaseSafeFromFP :: (SafeFromFP NotRepresentableFPError SymAlgReal (SymFP eb sb) SymFPRoundingMode m => r) -> r Source # | |||||||||
(MonadError NotRepresentableFPError m, UnifiedBranching 'S m, ValidFP eb sb) => UnifiedSafeFromFP 'S NotRepresentableFPError SymInteger (SymFP eb sb) SymFPRoundingMode m Source # | |||||||||
Defined in Grisette.Internal.Unified.Class.UnifiedSafeFromFP Methods withBaseSafeFromFP :: (SafeFromFP NotRepresentableFPError SymInteger (SymFP eb sb) SymFPRoundingMode m => r) -> r Source # | |||||||||
(MonadError NotRepresentableFPError m, UnifiedBranching 'S m, ValidFP eb sb, KnownNat n, 1 <= n) => UnifiedSafeFromFP 'S NotRepresentableFPError (SymIntN n) (SymFP eb sb) SymFPRoundingMode m Source # | |||||||||
Defined in Grisette.Internal.Unified.Class.UnifiedSafeFromFP Methods withBaseSafeFromFP :: (SafeFromFP NotRepresentableFPError (SymIntN n) (SymFP eb sb) SymFPRoundingMode m => r) -> r Source # | |||||||||
(MonadError NotRepresentableFPError m, UnifiedBranching 'S m, ValidFP eb sb, KnownNat n, 1 <= n) => UnifiedSafeFromFP 'S NotRepresentableFPError (SymWordN n) (SymFP eb sb) SymFPRoundingMode m Source # | |||||||||
Defined in Grisette.Internal.Unified.Class.UnifiedSafeFromFP Methods withBaseSafeFromFP :: (SafeFromFP NotRepresentableFPError (SymWordN n) (SymFP eb sb) SymFPRoundingMode m => r) -> r Source # | |||||||||
ValidFP eb sb => UnifiedFromIntegral 'S SymInteger (SymFP eb sb) Source # | |||||||||
Defined in Grisette.Internal.Unified.Class.UnifiedFromIntegral Methods withBaseFromIntegral :: (If (IsConMode 'S) (Integral SymInteger, Num (SymFP eb sb)) (SymFromIntegral SymInteger (SymFP eb sb)) => r) -> r Source # | |||||||||
(MonadError NotRepresentableFPError m, MonadUnion m, ValidFP eb sb) => SafeFromFP NotRepresentableFPError SymAlgReal (SymFP eb sb) SymFPRoundingMode m Source # | |||||||||
Defined in Grisette.Internal.Core.Data.Class.SafeFromFP Methods safeFromFP :: SymFPRoundingMode -> SymFP eb sb -> m SymAlgReal Source # | |||||||||
(MonadError NotRepresentableFPError m, MonadUnion m, ValidFP eb sb) => SafeFromFP NotRepresentableFPError SymInteger (SymFP eb sb) SymFPRoundingMode m Source # | |||||||||
Defined in Grisette.Internal.Core.Data.Class.SafeFromFP Methods safeFromFP :: SymFPRoundingMode -> SymFP eb sb -> m SymInteger Source # | |||||||||
(MonadError NotRepresentableFPError m, UnifiedBranching 'S m, ValidFP eb sb, KnownNat n, 1 <= n, n ~ (eb + sb)) => UnifiedSafeBitCast 'S NotRepresentableFPError (SymFP eb sb) (SymIntN n) m Source # | |||||||||
Defined in Grisette.Internal.Unified.Class.UnifiedSafeBitCast Methods withBaseSafeBitCast :: (SafeBitCast NotRepresentableFPError (SymFP eb sb) (SymIntN n) m => r) -> r Source # | |||||||||
(MonadError NotRepresentableFPError m, UnifiedBranching 'S m, ValidFP eb sb, KnownNat n, 1 <= n, n ~ (eb + sb)) => UnifiedSafeBitCast 'S NotRepresentableFPError (SymFP eb sb) (SymWordN n) m Source # | |||||||||
Defined in Grisette.Internal.Unified.Class.UnifiedSafeBitCast Methods withBaseSafeBitCast :: (SafeBitCast NotRepresentableFPError (SymFP eb sb) (SymWordN n) m => r) -> r Source # | |||||||||
(KnownNat n', 1 <= n', ValidFP eb sb) => UnifiedFromIntegral 'S (SymIntN n') (SymFP eb sb) Source # | |||||||||
(KnownNat n', 1 <= n', ValidFP eb sb) => UnifiedFromIntegral 'S (SymWordN n') (SymFP eb sb) Source # | |||||||||
(MonadError NotRepresentableFPError m, MonadUnion m, ValidFP eb sb, KnownNat n, 1 <= n) => SafeFromFP NotRepresentableFPError (SymIntN n) (SymFP eb sb) SymFPRoundingMode m Source # | |||||||||
Defined in Grisette.Internal.Core.Data.Class.SafeFromFP Methods safeFromFP :: SymFPRoundingMode -> SymFP eb sb -> m (SymIntN n) Source # | |||||||||
(MonadError NotRepresentableFPError m, MonadUnion m, ValidFP eb sb, KnownNat n, 1 <= n) => SafeFromFP NotRepresentableFPError (SymWordN n) (SymFP eb sb) SymFPRoundingMode m Source # | |||||||||
Defined in Grisette.Internal.Core.Data.Class.SafeFromFP Methods safeFromFP :: SymFPRoundingMode -> SymFP eb sb -> m (SymWordN n) Source # | |||||||||
ValidFP eb sb => GenSym () (SymFP eb sb) Source # | |||||||||
Defined in Grisette.Internal.Core.Data.Class.GenSym | |||||||||
ValidFP eb sb => GenSymSimple () (SymFP eb sb) Source # | |||||||||
Defined in Grisette.Internal.Core.Data.Class.GenSym Methods simpleFresh :: MonadFresh m => () -> m (SymFP eb sb) Source # | |||||||||
ValidFP eb sb => SymFromIntegral SymInteger (SymFP eb sb) Source # | |||||||||
Defined in Grisette.Internal.Core.Data.Class.SymFromIntegral Methods symFromIntegral :: SymInteger -> SymFP eb sb Source # | |||||||||
Lift (SymFP eb sb :: Type) Source # | |||||||||
ValidFP eb sb => IEEEFPConvertible SymAlgReal (SymFP eb sb) SymFPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.SymPrim.SymFP Methods fromFPOr :: SymAlgReal -> SymFPRoundingMode -> SymFP eb sb -> SymAlgReal Source # toFP :: SymFPRoundingMode -> SymAlgReal -> SymFP eb sb Source # | |||||||||
ValidFP eb sb => IEEEFPConvertible SymInteger (SymFP eb sb) SymFPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.SymPrim.SymFP Methods fromFPOr :: SymInteger -> SymFPRoundingMode -> SymFP eb sb -> SymInteger Source # toFP :: SymFPRoundingMode -> SymInteger -> SymFP eb sb Source # | |||||||||
ValidFP eb sb => IEEEFPToAlgReal SymAlgReal (SymFP eb sb) SymFPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.SymPrim.SymFP Methods fpToAlgReal :: SymAlgReal -> SymFP eb sb -> SymAlgReal Source # | |||||||||
(ValidFP eb sb, r ~ (eb + sb), KnownNat r, 1 <= r, MonadUnion m, MonadError NotRepresentableFPError m) => SafeBitCast NotRepresentableFPError (SymFP eb sb) (SymIntN r) m Source # | |||||||||
Defined in Grisette.Internal.Core.Data.Class.SafeBitCast Methods safeBitCast :: SymFP eb sb -> m (SymIntN r) Source # | |||||||||
(ValidFP eb sb, r ~ (eb + sb), KnownNat r, 1 <= r, MonadUnion m, MonadError NotRepresentableFPError m) => SafeBitCast NotRepresentableFPError (SymFP eb sb) (SymWordN r) m Source # | |||||||||
Defined in Grisette.Internal.Core.Data.Class.SafeBitCast Methods safeBitCast :: SymFP eb sb -> m (SymWordN r) Source # | |||||||||
ValidFP eb sb => UnifiedSolvable 'S (SymFP eb sb) (FP eb sb) Source # | |||||||||
(ValidFP eb sb, r ~ (eb + sb)) => BitCast (SymIntN r) (SymFP eb sb) Source # | |||||||||
(ValidFP eb sb, r ~ (eb + sb)) => BitCast (SymWordN r) (SymFP eb sb) Source # | |||||||||
(KnownNat n, 1 <= n, ValidFP eb sb) => SymFromIntegral (SymIntN n) (SymFP eb sb) Source # | |||||||||
Defined in Grisette.Internal.Core.Data.Class.SymFromIntegral Methods symFromIntegral :: SymIntN n -> SymFP eb sb Source # | |||||||||
(KnownNat n, 1 <= n, ValidFP eb sb) => SymFromIntegral (SymWordN n) (SymFP eb sb) Source # | |||||||||
Defined in Grisette.Internal.Core.Data.Class.SymFromIntegral Methods symFromIntegral :: SymWordN n -> SymFP eb sb Source # | |||||||||
(ValidFP eb sb, KnownNat n, 1 <= n) => IEEEFPConvertible (SymIntN n) (SymFP eb sb) SymFPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.SymPrim.SymFP | |||||||||
(ValidFP eb sb, KnownNat n, 1 <= n) => IEEEFPConvertible (SymWordN n) (SymFP eb sb) SymFPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.SymPrim.SymFP | |||||||||
ValidFP eb sb => Binary (SymFP eb sb) Source # | |||||||||
ValidFP eb sb => Serial (SymFP eb sb) Source # | |||||||||
Defined in Grisette.Internal.SymPrim.SymFP | |||||||||
ValidFP eb sb => Serialize (SymFP eb sb) Source # | |||||||||
NFData (SymFP eb sb) Source # | |||||||||
Defined in Grisette.Internal.SymPrim.SymFP | |||||||||
ValidFP eb sb => IsString (SymFP eb sb) Source # | |||||||||
Defined in Grisette.Internal.SymPrim.SymFP Methods fromString :: String -> SymFP eb sb # | |||||||||
ValidFP eb sb => Floating (SymFP eb sb) Source # | |||||||||
Defined in Grisette.Internal.SymPrim.SymFP Methods exp :: SymFP eb sb -> SymFP eb sb # log :: SymFP eb sb -> SymFP eb sb # sqrt :: SymFP eb sb -> SymFP eb sb # (**) :: SymFP eb sb -> SymFP eb sb -> SymFP eb sb # logBase :: SymFP eb sb -> SymFP eb sb -> SymFP eb sb # sin :: SymFP eb sb -> SymFP eb sb # cos :: SymFP eb sb -> SymFP eb sb # tan :: SymFP eb sb -> SymFP eb sb # asin :: SymFP eb sb -> SymFP eb sb # acos :: SymFP eb sb -> SymFP eb sb # atan :: SymFP eb sb -> SymFP eb sb # sinh :: SymFP eb sb -> SymFP eb sb # cosh :: SymFP eb sb -> SymFP eb sb # tanh :: SymFP eb sb -> SymFP eb sb # asinh :: SymFP eb sb -> SymFP eb sb # acosh :: SymFP eb sb -> SymFP eb sb # atanh :: SymFP eb sb -> SymFP eb sb # log1p :: SymFP eb sb -> SymFP eb sb # expm1 :: SymFP eb sb -> SymFP eb sb # | |||||||||
Generic (SymFP eb sb) Source # | |||||||||
Defined in Grisette.Internal.SymPrim.SymFP Associated Types
| |||||||||
ValidFP eb sb => Num (SymFP eb sb) Source # | |||||||||
Defined in Grisette.Internal.SymPrim.SymFP Methods (+) :: SymFP eb sb -> SymFP eb sb -> SymFP eb sb # (-) :: SymFP eb sb -> SymFP eb sb -> SymFP eb sb # (*) :: SymFP eb sb -> SymFP eb sb -> SymFP eb sb # negate :: SymFP eb sb -> SymFP eb sb # abs :: SymFP eb sb -> SymFP eb sb # signum :: SymFP eb sb -> SymFP eb sb # fromInteger :: Integer -> SymFP eb sb # | |||||||||
ValidFP eb sb => Fractional (SymFP eb sb) Source # | |||||||||
ValidFP eb sb => Show (SymFP eb sb) Source # | |||||||||
ValidFP eb sb => Eq (SymFP eb sb) Source # | This will crash the program.
If you want to use the type as keys in hash maps based on term equality, say
memo table, you should use If you want symbolic version of the equality operator, use
| ||||||||
ValidFP eb sb => KeyEq (SymFP eb sb) Source # | |||||||||
ValidFP eb sb => KeyHashable (SymFP eb sb) Source # | |||||||||
Defined in Grisette.Internal.SymPrim.SymFP | |||||||||
ValidFP eb sb => Apply (SymFP eb sb) Source # | |||||||||
ValidFP eb sb => IEEEFPConstants (SymFP eb sb) Source # | |||||||||
Defined in Grisette.Internal.SymPrim.SymFP Methods fpPositiveInfinite :: SymFP eb sb Source # fpNegativeInfinite :: SymFP eb sb Source # fpNegativeZero :: SymFP eb sb Source # fpPositiveZero :: SymFP eb sb Source # fpMinNormalized :: SymFP eb sb Source # fpMinSubnormal :: SymFP eb sb Source # fpMaxNormalized :: SymFP eb sb Source # fpMaxSubnormal :: SymFP eb sb Source # | |||||||||
ValidFP eb sb => IEEEFPOp (SymFP eb sb) Source # | |||||||||
Defined in Grisette.Internal.SymPrim.SymFP Methods fpAbs :: SymFP eb sb -> SymFP eb sb Source # fpNeg :: SymFP eb sb -> SymFP eb sb Source # fpRem :: SymFP eb sb -> SymFP eb sb -> SymFP eb sb Source # fpMinimum :: SymFP eb sb -> SymFP eb sb -> SymFP eb sb Source # fpMinimumNumber :: SymFP eb sb -> SymFP eb sb -> SymFP eb sb Source # fpMaximum :: SymFP eb sb -> SymFP eb sb -> SymFP eb sb Source # fpMaximumNumber :: SymFP eb sb -> SymFP eb sb -> SymFP eb sb Source # | |||||||||
ValidFP eb sb => ITEOp (SymFP eb sb) Source # | |||||||||
ValidFP eb sb => SymIEEEFPTraits (SymFP eb sb) Source # | |||||||||
Defined in Grisette.Internal.SymPrim.SymFP Methods symFpIsNaN :: SymFP eb sb -> SymBool Source # symFpIsPositive :: SymFP eb sb -> SymBool Source # symFpIsNegative :: SymFP eb sb -> SymBool Source # symFpIsPositiveInfinite :: SymFP eb sb -> SymBool Source # symFpIsNegativeInfinite :: SymFP eb sb -> SymBool Source # symFpIsInfinite :: SymFP eb sb -> SymBool Source # symFpIsPositiveZero :: SymFP eb sb -> SymBool Source # symFpIsNegativeZero :: SymFP eb sb -> SymBool Source # symFpIsZero :: SymFP eb sb -> SymBool Source # symFpIsNormal :: SymFP eb sb -> SymBool Source # symFpIsSubnormal :: SymFP eb sb -> SymBool Source # symFpIsPoint :: SymFP eb sb -> SymBool Source # | |||||||||
ValidFP eb sb => EvalSym (SymFP eb sb) Source # | |||||||||
ValidFP eb fb => ExtractSym (SymFP eb fb) Source # | |||||||||
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.ExtractSym Methods extractSym :: SymFP eb fb -> AnySymbolSet Source # extractSymMaybe :: forall (knd :: SymbolKind). IsSymbolKind knd => SymFP eb fb -> Maybe (SymbolSet knd) Source # | |||||||||
ValidFP eb sb => Mergeable (SymFP eb sb) Source # | |||||||||
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.Mergeable Methods rootStrategy :: MergingStrategy (SymFP eb sb) Source # sortIndices :: SymFP eb sb -> [DynamicSortedIdx] Source # | |||||||||
ValidFP eb sb => PPrint (SymFP eb sb) Source # | |||||||||
ValidFP eb sb => SimpleMergeable (SymFP eb sb) Source # | |||||||||
ValidFP eb sb => SubstSym (SymFP eb sb) Source # | |||||||||
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.SubstSym Methods substSym :: forall cb sb0 (knd :: SymbolKind). (LinkedRep cb sb0, IsSymbolKind knd) => TypedSymbol knd cb -> sb0 -> SymFP eb sb -> SymFP eb sb Source # | |||||||||
ValidFP eb sb => SymEq (SymFP eb sb) Source # | |||||||||
ValidFP eb sb => SymOrd (SymFP eb sb) Source # | |||||||||
ValidFP eb sb => AllSyms (SymFP eb sb) Source # | |||||||||
ConRep (SymFP eb sb) Source # | |||||||||
Defined in Grisette.Internal.SymPrim.SymFP | |||||||||
ValidFP eb sb => UnifiedConRep (SymFP eb sb) Source # | |||||||||
Defined in Grisette.Internal.Unified.Class.UnifiedRep | |||||||||
ValidFP eb sb => UnifiedSymRep (SymFP eb sb) Source # | |||||||||
Defined in Grisette.Internal.Unified.Class.UnifiedRep | |||||||||
ValidFP eb sb => Hashable (SymFP eb sb) Source # | This will crash the program.
If you want to use the type as keys in hash maps based on term equality, say
memo table, you should use | ||||||||
Defined in Grisette.Internal.SymPrim.SymFP | |||||||||
ValidFP eb sb => IEEEFPRoundingOp (SymFP eb sb) SymFPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.SymPrim.SymFP Methods fpAdd :: SymFPRoundingMode -> SymFP eb sb -> SymFP eb sb -> SymFP eb sb Source # fpSub :: SymFPRoundingMode -> SymFP eb sb -> SymFP eb sb -> SymFP eb sb Source # fpMul :: SymFPRoundingMode -> SymFP eb sb -> SymFP eb sb -> SymFP eb sb Source # fpDiv :: SymFPRoundingMode -> SymFP eb sb -> SymFP eb sb -> SymFP eb sb Source # fpFMA :: SymFPRoundingMode -> SymFP eb sb -> SymFP eb sb -> SymFP eb sb -> SymFP eb sb Source # fpSqrt :: SymFPRoundingMode -> SymFP eb sb -> SymFP eb sb Source # fpRoundToIntegral :: SymFPRoundingMode -> SymFP eb sb -> SymFP eb sb Source # | |||||||||
(ValidFP eb sb, r ~ (eb + sb)) => BitCastCanonical (SymFP eb sb) (SymIntN r) Source # | |||||||||
Defined in Grisette.Internal.SymPrim.SymFP Methods bitCastCanonicalValue :: proxy (SymFP eb sb) -> SymIntN r Source # | |||||||||
(ValidFP eb sb, r ~ (eb + sb)) => BitCastCanonical (SymFP eb sb) (SymWordN r) Source # | |||||||||
Defined in Grisette.Internal.SymPrim.SymFP Methods bitCastCanonicalValue :: proxy (SymFP eb sb) -> SymWordN r Source # | |||||||||
(ValidFP eb sb, r ~ (eb + sb)) => BitCastOr (SymFP eb sb) (SymIntN r) Source # | |||||||||
(ValidFP eb sb, r ~ (eb + sb)) => BitCastOr (SymFP eb sb) (SymWordN r) Source # | |||||||||
ValidFP eb sb => GenSym (SymFP eb sb) (SymFP eb sb) Source # | |||||||||
Defined in Grisette.Internal.Core.Data.Class.GenSym | |||||||||
ValidFP eb sb => GenSymSimple (SymFP eb sb) (SymFP eb sb) Source # | |||||||||
Defined in Grisette.Internal.Core.Data.Class.GenSym Methods simpleFresh :: MonadFresh m => SymFP eb sb -> m (SymFP eb sb) Source # | |||||||||
ValidFP eb sb => Solvable (FP eb sb) (SymFP eb sb) Source # | |||||||||
ValidFP eb sb => ToCon (SymFP eb sb) (FP eb sb) Source # | |||||||||
ValidFP eb sb => ToCon (SymFP eb sb) (SymFP eb sb) Source # | |||||||||
ValidFP eb sb => ToSym (FP eb sb) (SymFP eb sb) Source # | |||||||||
ValidFP eb sb => ToSym (SymFP eb sb) (SymFP eb sb) Source # | |||||||||
ValidFP eb sb => LinkedRep (FP eb sb) (SymFP eb sb) Source # | |||||||||
(ValidFP eb sb, ValidFP eb' sb') => IEEEFPConvertible (SymFP eb' sb') (SymFP eb sb) SymFPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.SymPrim.SymFP | |||||||||
type Rep (SymFP eb sb) Source # | |||||||||
Defined in Grisette.Internal.SymPrim.SymFP | |||||||||
type FunType (SymFP eb sb) Source # | |||||||||
Defined in Grisette.Internal.SymPrim.SymFP | |||||||||
type ConType (SymFP eb sb) Source # | |||||||||
Defined in Grisette.Internal.SymPrim.SymFP | |||||||||
type ConType (SymFP eb sb) Source # | |||||||||
Defined in Grisette.Internal.Unified.Class.UnifiedRep | |||||||||
type SymType (SymFP eb sb) Source # | |||||||||
Defined in Grisette.Internal.Unified.Class.UnifiedRep |
type SymFPKey (eb :: Nat) (sb :: Nat) = AsKey (SymFP eb sb) Source #
SymFP
type with identity equality.
newtype SymFPRoundingMode Source #
Symbolic floating-point rounding mode.
Constructors
SymFPRoundingMode (Term FPRoundingMode) |
Instances
NFData SymFPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.SymPrim.SymFP Methods rnf :: SymFPRoundingMode -> () # | |||||||||
IsString SymFPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.SymPrim.SymFP Methods fromString :: String -> SymFPRoundingMode # | |||||||||
Generic SymFPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.SymPrim.SymFP Associated Types
Methods from :: SymFPRoundingMode -> Rep SymFPRoundingMode x # to :: Rep SymFPRoundingMode x -> SymFPRoundingMode # | |||||||||
Show SymFPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.SymPrim.SymFP Methods showsPrec :: Int -> SymFPRoundingMode -> ShowS # show :: SymFPRoundingMode -> String # showList :: [SymFPRoundingMode] -> ShowS # | |||||||||
Eq SymFPRoundingMode Source # | This will crash the program.
If you want to use the type as keys in hash maps based on term equality, say
memo table, you should use | ||||||||
Defined in Grisette.Internal.SymPrim.SymFP Methods (==) :: SymFPRoundingMode -> SymFPRoundingMode -> Bool # (/=) :: SymFPRoundingMode -> SymFPRoundingMode -> Bool # | |||||||||
KeyEq SymFPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.SymPrim.SymFP Methods keyEq :: SymFPRoundingMode -> SymFPRoundingMode -> Bool Source # | |||||||||
KeyHashable SymFPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.SymPrim.SymFP Methods keyHashWithSalt :: Int -> SymFPRoundingMode -> Int Source # | |||||||||
Apply SymFPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.SymPrim.SymFP Associated Types
Methods apply :: SymFPRoundingMode -> FunType SymFPRoundingMode Source # | |||||||||
IEEEFPRoundingMode SymFPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.SymPrim.SymFP Methods rne :: SymFPRoundingMode Source # rna :: SymFPRoundingMode Source # rtp :: SymFPRoundingMode Source # | |||||||||
ITEOp SymFPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.Core.Data.Class.ITEOp Methods symIte :: SymBool -> SymFPRoundingMode -> SymFPRoundingMode -> SymFPRoundingMode Source # | |||||||||
EvalSym SymFPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.EvalSym Methods evalSym :: Bool -> Model -> SymFPRoundingMode -> SymFPRoundingMode Source # | |||||||||
ExtractSym SymFPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.ExtractSym Methods extractSym :: SymFPRoundingMode -> AnySymbolSet Source # extractSymMaybe :: forall (knd :: SymbolKind). IsSymbolKind knd => SymFPRoundingMode -> Maybe (SymbolSet knd) Source # | |||||||||
Mergeable SymFPRoundingMode Source # | |||||||||
PPrint SymFPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint Methods pformat :: SymFPRoundingMode -> Doc ann Source # pformatPrec :: Int -> SymFPRoundingMode -> Doc ann Source # pformatList :: [SymFPRoundingMode] -> Doc ann Source # | |||||||||
SimpleMergeable SymFPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.SimpleMergeable Methods mrgIte :: SymBool -> SymFPRoundingMode -> SymFPRoundingMode -> SymFPRoundingMode Source # | |||||||||
SubstSym SymFPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.SubstSym Methods substSym :: forall cb sb (knd :: SymbolKind). (LinkedRep cb sb, IsSymbolKind knd) => TypedSymbol knd cb -> sb -> SymFPRoundingMode -> SymFPRoundingMode Source # | |||||||||
SymEq SymFPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.SymEq Methods (.==) :: SymFPRoundingMode -> SymFPRoundingMode -> SymBool Source # (./=) :: SymFPRoundingMode -> SymFPRoundingMode -> SymBool Source # symDistinct :: [SymFPRoundingMode] -> SymBool Source # | |||||||||
SymOrd SymFPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.SymOrd Methods (.<) :: SymFPRoundingMode -> SymFPRoundingMode -> SymBool Source # (.<=) :: SymFPRoundingMode -> SymFPRoundingMode -> SymBool Source # (.>) :: SymFPRoundingMode -> SymFPRoundingMode -> SymBool Source # (.>=) :: SymFPRoundingMode -> SymFPRoundingMode -> SymBool Source # symCompare :: SymFPRoundingMode -> SymFPRoundingMode -> Union Ordering Source # | |||||||||
AllSyms SymFPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.SymPrim.SymFP | |||||||||
ConRep SymFPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.SymPrim.SymFP Associated Types
| |||||||||
GenSym SymFPRoundingMode SymFPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.Core.Data.Class.GenSym Methods fresh :: MonadFresh m => SymFPRoundingMode -> m (Union SymFPRoundingMode) Source # | |||||||||
GenSym () SymFPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.Core.Data.Class.GenSym Methods fresh :: MonadFresh m => () -> m (Union SymFPRoundingMode) Source # | |||||||||
GenSymSimple SymFPRoundingMode SymFPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.Core.Data.Class.GenSym Methods simpleFresh :: MonadFresh m => SymFPRoundingMode -> m SymFPRoundingMode Source # | |||||||||
GenSymSimple () SymFPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.Core.Data.Class.GenSym Methods simpleFresh :: MonadFresh m => () -> m SymFPRoundingMode Source # | |||||||||
Solvable FPRoundingMode SymFPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.SymPrim.SymFP Methods con :: FPRoundingMode -> SymFPRoundingMode Source # conView :: SymFPRoundingMode -> Maybe FPRoundingMode Source # sym :: Symbol -> SymFPRoundingMode Source # ssym :: Identifier -> SymFPRoundingMode Source # isym :: Identifier -> Int -> SymFPRoundingMode Source # | |||||||||
ToCon SymFPRoundingMode FPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.ToCon Methods | |||||||||
ToCon SymFPRoundingMode SymFPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.ToCon Methods toCon :: SymFPRoundingMode -> Maybe SymFPRoundingMode Source # | |||||||||
ToSym FPRoundingMode SymFPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.ToSym Methods | |||||||||
ToSym SymFPRoundingMode SymFPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.ToSym Methods | |||||||||
LinkedRep FPRoundingMode SymFPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.SymPrim.SymFP Methods underlyingTerm :: SymFPRoundingMode -> Term FPRoundingMode Source # wrapTerm :: Term FPRoundingMode -> SymFPRoundingMode Source # | |||||||||
Lift SymFPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.SymPrim.SymFP Methods lift :: Quote m => SymFPRoundingMode -> m Exp # liftTyped :: forall (m :: Type -> Type). Quote m => SymFPRoundingMode -> Code m SymFPRoundingMode # | |||||||||
ValidFP eb sb => UnifiedFPImpl 'S SymFP eb sb (SymFP eb sb) SymFPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.Internal.Impl.Unified.UnifiedFP Associated Types
| |||||||||
(MonadError NotRepresentableFPError m, UnifiedBranching 'S m, ValidFP eb sb) => UnifiedSafeFromFP 'S NotRepresentableFPError SymAlgReal (SymFP eb sb) SymFPRoundingMode m Source # | |||||||||
Defined in Grisette.Internal.Unified.Class.UnifiedSafeFromFP Methods withBaseSafeFromFP :: (SafeFromFP NotRepresentableFPError SymAlgReal (SymFP eb sb) SymFPRoundingMode m => r) -> r Source # | |||||||||
(MonadError NotRepresentableFPError m, UnifiedBranching 'S m, ValidFP eb sb) => UnifiedSafeFromFP 'S NotRepresentableFPError SymInteger (SymFP eb sb) SymFPRoundingMode m Source # | |||||||||
Defined in Grisette.Internal.Unified.Class.UnifiedSafeFromFP Methods withBaseSafeFromFP :: (SafeFromFP NotRepresentableFPError SymInteger (SymFP eb sb) SymFPRoundingMode m => r) -> r Source # | |||||||||
(MonadError NotRepresentableFPError m, UnifiedBranching 'S m, ValidFP eb sb, KnownNat n, 1 <= n) => UnifiedSafeFromFP 'S NotRepresentableFPError (SymIntN n) (SymFP eb sb) SymFPRoundingMode m Source # | |||||||||
Defined in Grisette.Internal.Unified.Class.UnifiedSafeFromFP Methods withBaseSafeFromFP :: (SafeFromFP NotRepresentableFPError (SymIntN n) (SymFP eb sb) SymFPRoundingMode m => r) -> r Source # | |||||||||
(MonadError NotRepresentableFPError m, UnifiedBranching 'S m, ValidFP eb sb, KnownNat n, 1 <= n) => UnifiedSafeFromFP 'S NotRepresentableFPError (SymWordN n) (SymFP eb sb) SymFPRoundingMode m Source # | |||||||||
Defined in Grisette.Internal.Unified.Class.UnifiedSafeFromFP Methods withBaseSafeFromFP :: (SafeFromFP NotRepresentableFPError (SymWordN n) (SymFP eb sb) SymFPRoundingMode m => r) -> r Source # | |||||||||
(MonadError NotRepresentableFPError m, MonadUnion m, ValidFP eb sb) => SafeFromFP NotRepresentableFPError SymAlgReal (SymFP eb sb) SymFPRoundingMode m Source # | |||||||||
Defined in Grisette.Internal.Core.Data.Class.SafeFromFP Methods safeFromFP :: SymFPRoundingMode -> SymFP eb sb -> m SymAlgReal Source # | |||||||||
(MonadError NotRepresentableFPError m, MonadUnion m, ValidFP eb sb) => SafeFromFP NotRepresentableFPError SymInteger (SymFP eb sb) SymFPRoundingMode m Source # | |||||||||
Defined in Grisette.Internal.Core.Data.Class.SafeFromFP Methods safeFromFP :: SymFPRoundingMode -> SymFP eb sb -> m SymInteger Source # | |||||||||
(MonadError NotRepresentableFPError m, MonadUnion m, ValidFP eb sb, KnownNat n, 1 <= n) => SafeFromFP NotRepresentableFPError (SymIntN n) (SymFP eb sb) SymFPRoundingMode m Source # | |||||||||
Defined in Grisette.Internal.Core.Data.Class.SafeFromFP Methods safeFromFP :: SymFPRoundingMode -> SymFP eb sb -> m (SymIntN n) Source # | |||||||||
(MonadError NotRepresentableFPError m, MonadUnion m, ValidFP eb sb, KnownNat n, 1 <= n) => SafeFromFP NotRepresentableFPError (SymWordN n) (SymFP eb sb) SymFPRoundingMode m Source # | |||||||||
Defined in Grisette.Internal.Core.Data.Class.SafeFromFP Methods safeFromFP :: SymFPRoundingMode -> SymFP eb sb -> m (SymWordN n) Source # | |||||||||
ValidFP eb sb => IEEEFPConvertible SymAlgReal (SymFP eb sb) SymFPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.SymPrim.SymFP Methods fromFPOr :: SymAlgReal -> SymFPRoundingMode -> SymFP eb sb -> SymAlgReal Source # toFP :: SymFPRoundingMode -> SymAlgReal -> SymFP eb sb Source # | |||||||||
ValidFP eb sb => IEEEFPConvertible SymInteger (SymFP eb sb) SymFPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.SymPrim.SymFP Methods fromFPOr :: SymInteger -> SymFPRoundingMode -> SymFP eb sb -> SymInteger Source # toFP :: SymFPRoundingMode -> SymInteger -> SymFP eb sb Source # | |||||||||
ValidFP eb sb => IEEEFPToAlgReal SymAlgReal (SymFP eb sb) SymFPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.SymPrim.SymFP Methods fpToAlgReal :: SymAlgReal -> SymFP eb sb -> SymAlgReal Source # | |||||||||
(ValidFP eb sb, KnownNat n, 1 <= n) => IEEEFPConvertible (SymIntN n) (SymFP eb sb) SymFPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.SymPrim.SymFP | |||||||||
(ValidFP eb sb, KnownNat n, 1 <= n) => IEEEFPConvertible (SymWordN n) (SymFP eb sb) SymFPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.SymPrim.SymFP | |||||||||
ValidFP eb sb => IEEEFPRoundingOp (SymFP eb sb) SymFPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.SymPrim.SymFP Methods fpAdd :: SymFPRoundingMode -> SymFP eb sb -> SymFP eb sb -> SymFP eb sb Source # fpSub :: SymFPRoundingMode -> SymFP eb sb -> SymFP eb sb -> SymFP eb sb Source # fpMul :: SymFPRoundingMode -> SymFP eb sb -> SymFP eb sb -> SymFP eb sb Source # fpDiv :: SymFPRoundingMode -> SymFP eb sb -> SymFP eb sb -> SymFP eb sb Source # fpFMA :: SymFPRoundingMode -> SymFP eb sb -> SymFP eb sb -> SymFP eb sb -> SymFP eb sb Source # fpSqrt :: SymFPRoundingMode -> SymFP eb sb -> SymFP eb sb Source # fpRoundToIntegral :: SymFPRoundingMode -> SymFP eb sb -> SymFP eb sb Source # | |||||||||
(ValidFP eb sb, ValidFP eb' sb') => IEEEFPConvertible (SymFP eb' sb') (SymFP eb sb) SymFPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.SymPrim.SymFP | |||||||||
type Rep SymFPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.SymPrim.SymFP type Rep SymFPRoundingMode = D1 ('MetaData "SymFPRoundingMode" "Grisette.Internal.SymPrim.SymFP" "grisette-0.13.0.1-LKOkrwJaCqLLaF4eMpvbe4" 'True) (C1 ('MetaCons "SymFPRoundingMode" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Term FPRoundingMode)))) | |||||||||
type FunType SymFPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.SymPrim.SymFP | |||||||||
type ConType SymFPRoundingMode Source # | |||||||||
Defined in Grisette.Internal.SymPrim.SymFP |
type SymFPRoundingModeKey = AsKey SymFPRoundingMode Source #
SymFPRoundingMode
type with identity equality.
type SymFP16Key = SymFPKey 5 11 Source #
type with identity equality.SymFP
16
type SymFP32Key = SymFPKey 8 24 Source #
type with identity equality.SymFP
32
type SymFP64Key = SymFPKey 11 53 Source #
type with identity equality.SymFP
64
Symbolic algebraic real numbers
newtype SymAlgReal Source #
Symbolic representation of algebraic real numbers.
Constructors
SymAlgReal (Term AlgReal) |
Instances
Binary SymAlgReal Source # | |||||
Defined in Grisette.Internal.SymPrim.SymAlgReal | |||||
Serial SymAlgReal Source # | |||||
Defined in Grisette.Internal.SymPrim.SymAlgReal | |||||
Serialize SymAlgReal Source # | |||||
Defined in Grisette.Internal.SymPrim.SymAlgReal | |||||
NFData SymAlgReal Source # | |||||
Defined in Grisette.Internal.SymPrim.SymAlgReal Methods rnf :: SymAlgReal -> () # | |||||
IsString SymAlgReal Source # | |||||
Defined in Grisette.Internal.SymPrim.SymAlgReal Methods fromString :: String -> SymAlgReal # | |||||
Floating SymAlgReal Source # | The functions are total and will not throw errors. The result for It is the responsibility of the caller to ensure that the base is not 1
with the symbolic constraints, or use the | ||||
Defined in Grisette.Internal.SymPrim.SymAlgReal Methods pi :: SymAlgReal # exp :: SymAlgReal -> SymAlgReal # log :: SymAlgReal -> SymAlgReal # sqrt :: SymAlgReal -> SymAlgReal # (**) :: SymAlgReal -> SymAlgReal -> SymAlgReal # logBase :: SymAlgReal -> SymAlgReal -> SymAlgReal # sin :: SymAlgReal -> SymAlgReal # cos :: SymAlgReal -> SymAlgReal # tan :: SymAlgReal -> SymAlgReal # asin :: SymAlgReal -> SymAlgReal # acos :: SymAlgReal -> SymAlgReal # atan :: SymAlgReal -> SymAlgReal # sinh :: SymAlgReal -> SymAlgReal # cosh :: SymAlgReal -> SymAlgReal # tanh :: SymAlgReal -> SymAlgReal # asinh :: SymAlgReal -> SymAlgReal # acosh :: SymAlgReal -> SymAlgReal # atanh :: SymAlgReal -> SymAlgReal # log1p :: SymAlgReal -> SymAlgReal # expm1 :: SymAlgReal -> SymAlgReal # log1pexp :: SymAlgReal -> SymAlgReal # log1mexp :: SymAlgReal -> SymAlgReal # | |||||
Generic SymAlgReal Source # | |||||
Defined in Grisette.Internal.SymPrim.SymAlgReal Associated Types
| |||||
Num SymAlgReal Source # | |||||
Defined in Grisette.Internal.SymPrim.SymAlgReal Methods (+) :: SymAlgReal -> SymAlgReal -> SymAlgReal # (-) :: SymAlgReal -> SymAlgReal -> SymAlgReal # (*) :: SymAlgReal -> SymAlgReal -> SymAlgReal # negate :: SymAlgReal -> SymAlgReal # abs :: SymAlgReal -> SymAlgReal # signum :: SymAlgReal -> SymAlgReal # fromInteger :: Integer -> SymAlgReal # | |||||
Fractional SymAlgReal Source # | The function is total and will not throw errors. The result is considered undefined if the divisor is 0. It is the responsibility of the caller to ensure that the divisor is not
zero with the symbolic constraints, or use the | ||||
Defined in Grisette.Internal.SymPrim.SymAlgReal Methods (/) :: SymAlgReal -> SymAlgReal -> SymAlgReal # recip :: SymAlgReal -> SymAlgReal # fromRational :: Rational -> SymAlgReal # | |||||
Real SymAlgReal Source # | |||||
Defined in Grisette.Internal.SymPrim.SymAlgReal Methods toRational :: SymAlgReal -> Rational # | |||||
Show SymAlgReal Source # | |||||
Defined in Grisette.Internal.SymPrim.SymAlgReal Methods showsPrec :: Int -> SymAlgReal -> ShowS # show :: SymAlgReal -> String # showList :: [SymAlgReal] -> ShowS # | |||||
Eq SymAlgReal Source # | This will crash the program.
If you want to use the type as keys in hash maps based on term equality, say
memo table, you should use If you want symbolic version of the equality operator, use
| ||||
Defined in Grisette.Internal.SymPrim.SymAlgReal | |||||
Ord SymAlgReal Source # | This will crash the program.
If you want symbolic version of the comparison operators, use
| ||||
Defined in Grisette.Internal.SymPrim.SymAlgReal Methods compare :: SymAlgReal -> SymAlgReal -> Ordering # (<) :: SymAlgReal -> SymAlgReal -> Bool # (<=) :: SymAlgReal -> SymAlgReal -> Bool # (>) :: SymAlgReal -> SymAlgReal -> Bool # (>=) :: SymAlgReal -> SymAlgReal -> Bool # max :: SymAlgReal -> SymAlgReal -> SymAlgReal # min :: SymAlgReal -> SymAlgReal -> SymAlgReal # | |||||
KeyEq SymAlgReal Source # | |||||
Defined in Grisette.Internal.SymPrim.SymAlgReal Methods keyEq :: SymAlgReal -> SymAlgReal -> Bool Source # | |||||
KeyHashable SymAlgReal Source # | |||||
Defined in Grisette.Internal.SymPrim.SymAlgReal Methods keyHashWithSalt :: Int -> SymAlgReal -> Int Source # | |||||
Apply SymAlgReal Source # | |||||
Defined in Grisette.Internal.SymPrim.SymAlgReal Associated Types
Methods apply :: SymAlgReal -> FunType SymAlgReal Source # | |||||
ITEOp SymAlgReal Source # | |||||
Defined in Grisette.Internal.Core.Data.Class.ITEOp Methods symIte :: SymBool -> SymAlgReal -> SymAlgReal -> SymAlgReal Source # | |||||
FdivOr SymAlgReal Source # | |||||
Defined in Grisette.Internal.Core.Data.Class.SafeFdiv Methods fdivOr :: SymAlgReal -> SymAlgReal -> SymAlgReal -> SymAlgReal Source # recipOr :: SymAlgReal -> SymAlgReal -> SymAlgReal Source # | |||||
LogBaseOr SymAlgReal Source # | |||||
Defined in Grisette.Internal.Core.Data.Class.SafeLogBase Methods logBaseOr :: SymAlgReal -> SymAlgReal -> SymAlgReal -> SymAlgReal Source # | |||||
EvalSym SymAlgReal Source # | |||||
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.EvalSym Methods evalSym :: Bool -> Model -> SymAlgReal -> SymAlgReal Source # | |||||
ExtractSym SymAlgReal Source # | |||||
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.ExtractSym Methods extractSym :: SymAlgReal -> AnySymbolSet Source # extractSymMaybe :: forall (knd :: SymbolKind). IsSymbolKind knd => SymAlgReal -> Maybe (SymbolSet knd) Source # | |||||
Mergeable SymAlgReal Source # | |||||
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.Mergeable Methods rootStrategy :: MergingStrategy SymAlgReal Source # sortIndices :: SymAlgReal -> [DynamicSortedIdx] Source # | |||||
PPrint SymAlgReal Source # | |||||
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint Methods pformat :: SymAlgReal -> Doc ann Source # pformatPrec :: Int -> SymAlgReal -> Doc ann Source # pformatList :: [SymAlgReal] -> Doc ann Source # | |||||
SimpleMergeable SymAlgReal Source # | |||||
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.SimpleMergeable Methods mrgIte :: SymBool -> SymAlgReal -> SymAlgReal -> SymAlgReal Source # | |||||
SubstSym SymAlgReal Source # | |||||
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.SubstSym Methods substSym :: forall cb sb (knd :: SymbolKind). (LinkedRep cb sb, IsSymbolKind knd) => TypedSymbol knd cb -> sb -> SymAlgReal -> SymAlgReal Source # | |||||
SymEq SymAlgReal Source # | |||||
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.SymEq Methods (.==) :: SymAlgReal -> SymAlgReal -> SymBool Source # (./=) :: SymAlgReal -> SymAlgReal -> SymBool Source # symDistinct :: [SymAlgReal] -> SymBool Source # | |||||
SymOrd SymAlgReal Source # | |||||
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.SymOrd Methods (.<) :: SymAlgReal -> SymAlgReal -> SymBool Source # (.<=) :: SymAlgReal -> SymAlgReal -> SymBool Source # (.>) :: SymAlgReal -> SymAlgReal -> SymBool Source # (.>=) :: SymAlgReal -> SymAlgReal -> SymBool Source # symCompare :: SymAlgReal -> SymAlgReal -> Union Ordering Source # | |||||
AllSyms SymAlgReal Source # | |||||
Defined in Grisette.Internal.SymPrim.SymAlgReal | |||||
ConRep SymAlgReal Source # | |||||
Defined in Grisette.Internal.SymPrim.SymAlgReal Associated Types
| |||||
UnifiedConRep SymAlgReal Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedRep Associated Types
| |||||
UnifiedSymRep SymAlgReal Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedRep Associated Types
| |||||
GenSym SymAlgReal SymAlgReal Source # | |||||
Defined in Grisette.Internal.Core.Data.Class.GenSym Methods fresh :: MonadFresh m => SymAlgReal -> m (Union SymAlgReal) Source # | |||||
GenSym () SymAlgReal Source # | |||||
Defined in Grisette.Internal.Core.Data.Class.GenSym Methods fresh :: MonadFresh m => () -> m (Union SymAlgReal) Source # | |||||
GenSymSimple SymAlgReal SymAlgReal Source # | |||||
Defined in Grisette.Internal.Core.Data.Class.GenSym Methods simpleFresh :: MonadFresh m => SymAlgReal -> m SymAlgReal Source # | |||||
GenSymSimple () SymAlgReal Source # | |||||
Defined in Grisette.Internal.Core.Data.Class.GenSym Methods simpleFresh :: MonadFresh m => () -> m SymAlgReal Source # | |||||
Solvable AlgReal SymAlgReal Source # | |||||
Defined in Grisette.Internal.SymPrim.SymAlgReal Methods con :: AlgReal -> SymAlgReal Source # conView :: SymAlgReal -> Maybe AlgReal Source # sym :: Symbol -> SymAlgReal Source # ssym :: Identifier -> SymAlgReal Source # isym :: Identifier -> Int -> SymAlgReal Source # | |||||
SymFromIntegral SymInteger SymAlgReal Source # | |||||
Defined in Grisette.Internal.Core.Data.Class.SymFromIntegral Methods | |||||
ToCon SymAlgReal Rational Source # | |||||
ToCon SymAlgReal AlgReal Source # | |||||
ToCon SymAlgReal SymAlgReal Source # | |||||
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.ToCon Methods toCon :: SymAlgReal -> Maybe SymAlgReal Source # | |||||
ToSym Rational SymAlgReal Source # | |||||
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.ToSym Methods toSym :: Rational -> SymAlgReal Source # | |||||
ToSym AlgReal SymAlgReal Source # | |||||
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.ToSym Methods toSym :: AlgReal -> SymAlgReal Source # | |||||
ToSym SymAlgReal SymAlgReal Source # | |||||
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.ToSym Methods toSym :: SymAlgReal -> SymAlgReal Source # | |||||
LinkedRep AlgReal SymAlgReal Source # | |||||
Defined in Grisette.Internal.SymPrim.SymAlgReal Methods underlyingTerm :: SymAlgReal -> Term AlgReal Source # | |||||
Lift SymAlgReal Source # | |||||
Defined in Grisette.Internal.SymPrim.SymAlgReal Methods lift :: Quote m => SymAlgReal -> m Exp # liftTyped :: forall (m :: Type -> Type). Quote m => SymAlgReal -> Code m SymAlgReal # | |||||
(MonadError ArithException m, MonadUnion m) => SafeFdiv ArithException SymAlgReal m Source # | |||||
Defined in Grisette.Internal.Core.Data.Class.SafeFdiv Methods safeFdiv :: SymAlgReal -> SymAlgReal -> m SymAlgReal Source # safeRecip :: SymAlgReal -> m SymAlgReal Source # | |||||
(MonadError ArithException m, MonadUnion m) => SafeLogBase ArithException SymAlgReal m Source # | |||||
Defined in Grisette.Internal.Core.Data.Class.SafeLogBase Methods safeLogBase :: SymAlgReal -> SymAlgReal -> m SymAlgReal Source # | |||||
UnifiedFromIntegral 'S SymInteger SymAlgReal Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedFromIntegral Methods withBaseFromIntegral :: (If (IsConMode 'S) (Integral SymInteger, Num SymAlgReal) (SymFromIntegral SymInteger SymAlgReal) => r) -> r Source # | |||||
UnifiedSolvable 'S SymAlgReal AlgReal Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedSolvable Methods withBaseSolvable :: (If (IsConMode 'S) (SymAlgReal ~ AlgReal) (Solvable AlgReal SymAlgReal) => r) -> r Source # | |||||
(MonadError ArithException m, UnifiedBranching 'S m) => UnifiedSafeFdiv 'S ArithException SymAlgReal m Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedSafeFdiv Methods withBaseUnifiedSafeFdiv :: (SafeFdiv ArithException SymAlgReal m => r) -> r Source # | |||||
(MonadError NotRepresentableFPError m, UnifiedBranching 'S m, ValidFP eb sb) => UnifiedSafeFromFP 'S NotRepresentableFPError SymAlgReal (SymFP eb sb) SymFPRoundingMode m Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedSafeFromFP Methods withBaseSafeFromFP :: (SafeFromFP NotRepresentableFPError SymAlgReal (SymFP eb sb) SymFPRoundingMode m => r) -> r Source # | |||||
(MonadError NotRepresentableFPError m, MonadUnion m, ValidFP eb sb) => SafeFromFP NotRepresentableFPError SymAlgReal (SymFP eb sb) SymFPRoundingMode m Source # | |||||
Defined in Grisette.Internal.Core.Data.Class.SafeFromFP Methods safeFromFP :: SymFPRoundingMode -> SymFP eb sb -> m SymAlgReal Source # | |||||
(KnownNat n', 1 <= n') => UnifiedFromIntegral 'S (SymIntN n') SymAlgReal Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedFromIntegral Methods withBaseFromIntegral :: (If (IsConMode 'S) (Integral (SymIntN n'), Num SymAlgReal) (SymFromIntegral (SymIntN n') SymAlgReal) => r) -> r Source # | |||||
(KnownNat n', 1 <= n') => UnifiedFromIntegral 'S (SymWordN n') SymAlgReal Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedFromIntegral Methods withBaseFromIntegral :: (If (IsConMode 'S) (Integral (SymWordN n'), Num SymAlgReal) (SymFromIntegral (SymWordN n') SymAlgReal) => r) -> r Source # | |||||
ValidFP eb sb => IEEEFPConvertible SymAlgReal (SymFP eb sb) SymFPRoundingMode Source # | |||||
Defined in Grisette.Internal.SymPrim.SymFP Methods fromFPOr :: SymAlgReal -> SymFPRoundingMode -> SymFP eb sb -> SymAlgReal Source # toFP :: SymFPRoundingMode -> SymAlgReal -> SymFP eb sb Source # | |||||
ValidFP eb sb => IEEEFPToAlgReal SymAlgReal (SymFP eb sb) SymFPRoundingMode Source # | |||||
Defined in Grisette.Internal.SymPrim.SymFP Methods fpToAlgReal :: SymAlgReal -> SymFP eb sb -> SymAlgReal Source # | |||||
(KnownNat n, 1 <= n) => SymFromIntegral (SymIntN n) SymAlgReal Source # | |||||
Defined in Grisette.Internal.Core.Data.Class.SymFromIntegral Methods symFromIntegral :: SymIntN n -> SymAlgReal Source # | |||||
(KnownNat n, 1 <= n) => SymFromIntegral (SymWordN n) SymAlgReal Source # | |||||
Defined in Grisette.Internal.Core.Data.Class.SymFromIntegral Methods symFromIntegral :: SymWordN n -> SymAlgReal Source # | |||||
type Rep SymAlgReal Source # | |||||
Defined in Grisette.Internal.SymPrim.SymAlgReal type Rep SymAlgReal = D1 ('MetaData "SymAlgReal" "Grisette.Internal.SymPrim.SymAlgReal" "grisette-0.13.0.1-LKOkrwJaCqLLaF4eMpvbe4" 'True) (C1 ('MetaCons "SymAlgReal" 'PrefixI 'True) (S1 ('MetaSel ('Just "underlyingAlgRealTerm") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Term AlgReal)))) | |||||
type FunType SymAlgReal Source # | |||||
Defined in Grisette.Internal.SymPrim.SymAlgReal | |||||
type ConType SymAlgReal Source # | |||||
Defined in Grisette.Internal.SymPrim.SymAlgReal | |||||
type ConType SymAlgReal Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedRep | |||||
type SymType SymAlgReal Source # | |||||
Defined in Grisette.Internal.Unified.Class.UnifiedRep |
type SymAlgRealKey = AsKey SymAlgReal Source #
SymAlgReal
type with identity equality.
Symbolic function, possibly uninterpreted
data sa =~> sb where infixr 0 Source #
Symbolic tabular function type.
>>>
f' = "f" :: SymInteger =~> SymInteger
>>>
f = (f' #)
>>>
f 1
(apply f 1)
>>>
f' = con (TabularFun [(1, 2), (2, 3)] 4) :: SymInteger =~> SymInteger
>>>
f = (f' #)
>>>
f 1
2>>>
f 2
3>>>
f 3
4>>>
f "b"
(ite (= b 1) 2 (ite (= b 2) 3 4))
Constructors
SymTabularFun :: forall ca sa cb sb. (LinkedRep ca sa, LinkedRep cb sb, SupportedPrim (ca =-> cb), SupportedNonFuncPrim ca) => Term (ca =-> cb) -> sa =~> sb |
Instances
(SupportedPrim (ca =-> cb), SupportedNonFuncPrim ca, LinkedRep ca sa, LinkedRep cb sb) => GenSym () (sa =~> sb) Source # | |
Defined in Grisette.Internal.Core.Data.Class.GenSym | |
(SupportedPrim (ca =-> cb), SupportedNonFuncPrim ca, LinkedRep ca sa, LinkedRep cb sb) => GenSymSimple () (sa =~> sb) Source # | |
Defined in Grisette.Internal.Core.Data.Class.GenSym Methods simpleFresh :: MonadFresh m => () -> m (sa =~> sb) Source # | |
Lift (sa =~> sb :: Type) Source # | |
(SupportedPrim (ca =-> cb), SupportedNonFuncPrim ca, LinkedRep ca sa, LinkedRep cb sb) => ToSym (Union (ca =-> cb)) (sa =~> sb) Source # | |
(LinkedRep ca sa, LinkedRep cb sb, SupportedPrim (ca =-> cb), SupportedNonFuncPrim ca) => Binary (sa =~> sb) Source # | |
(LinkedRep ca sa, LinkedRep cb sb, SupportedPrim (ca =-> cb), SupportedNonFuncPrim ca) => Serial (sa =~> sb) Source # | |
Defined in Grisette.Internal.SymPrim.SymTabularFun | |
(LinkedRep ca sa, LinkedRep cb sb, SupportedPrim (ca =-> cb), SupportedNonFuncPrim ca) => Serialize (sa =~> sb) Source # | |
NFData (sa =~> sb) Source # | |
Defined in Grisette.Internal.SymPrim.SymTabularFun | |
(SupportedPrim (ca =-> cb), LinkedRep ca sa, LinkedRep cb sb, SupportedNonFuncPrim ca) => IsString (sa =~> sb) Source # | |
Defined in Grisette.Internal.SymPrim.SymTabularFun Methods fromString :: String -> sa =~> sb # | |
Show (sa =~> sb) Source # | |
Eq (sa =~> sb) Source # | This will crash the program.
If you want to use the type as keys in hash maps based on term equality, say
memo table, you should use |
KeyEq (sa =~> sb) Source # | |
KeyHashable (sa =~> sb) Source # | |
Defined in Grisette.Internal.SymPrim.SymTabularFun | |
Apply st => Apply (sa =~> st) Source # | |
ITEOp (sa =~> sb) Source # | |
EvalSym (sa =~> sb) Source # | |
ExtractSym (sa =~> sb) Source # | |
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.ExtractSym Methods extractSym :: (sa =~> sb) -> AnySymbolSet Source # extractSymMaybe :: forall (knd :: SymbolKind). IsSymbolKind knd => (sa =~> sb) -> Maybe (SymbolSet knd) Source # | |
Mergeable (sa =~> sb) Source # | |
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.Mergeable Methods rootStrategy :: MergingStrategy (sa =~> sb) Source # sortIndices :: (sa =~> sb) -> [DynamicSortedIdx] Source # | |
PPrint (sa =~> sb) Source # | |
SimpleMergeable (sa =~> sb) Source # | |
SubstSym (sa =~> sb) Source # | |
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.SubstSym Methods substSym :: forall cb sb0 (knd :: SymbolKind). (LinkedRep cb sb0, IsSymbolKind knd) => TypedSymbol knd cb -> sb0 -> (sa =~> sb) -> sa =~> sb Source # | |
AllSyms (sa =~> sb) Source # | |
(ConRep a, ConRep b) => ConRep (a =~> b) Source # | |
Defined in Grisette.Internal.SymPrim.SymTabularFun | |
Function (sa =~> sb) sa sb Source # | |
Defined in Grisette.Internal.SymPrim.SymTabularFun | |
GenSym (sa =~> sb) (sa =~> sb) Source # | |
Defined in Grisette.Internal.Core.Data.Class.GenSym | |
GenSymSimple (sa =~> sb) (sa =~> sb) Source # | |
Defined in Grisette.Internal.Core.Data.Class.GenSym Methods simpleFresh :: MonadFresh m => (sa =~> sb) -> m (sa =~> sb) Source # | |
(LinkedRep ca sa, LinkedRep cb sb, SupportedPrim (ca =-> cb), SupportedNonFuncPrim ca) => Solvable (ca =-> cb) (sa =~> sb) Source # | |
ToCon (a =~> b) (a =~> b) Source # | |
(LinkedRep ca sa, LinkedRep cb sb) => ToCon (sa =~> sb) (ca =-> cb) Source # | |
(SupportedPrim (ca =-> cb), LinkedRep ca sa, LinkedRep cb sb) => ToSym (sa =~> sb) (sa =~> sb) Source # | |
(SupportedPrim (ca =-> cb), SupportedNonFuncPrim ca, LinkedRep ca sa, LinkedRep cb sb) => ToSym (ca =-> cb) (sa =~> sb) Source # | |
(LinkedRep ca sa, LinkedRep cb sb, SupportedPrim (ca =-> cb), SupportedNonFuncPrim ca) => LinkedRep (ca =-> cb) (sa =~> sb) Source # | |
type FunType (sa =~> st) Source # | |
Defined in Grisette.Internal.SymPrim.SymTabularFun | |
type ConType (a =~> b) Source # | |
data sa -~> sb where infixr 0 Source #
Symbolic general function type.
>>>
f' = "f" :: SymInteger -~> SymInteger
>>>
f = (f' #)
>>>
f 1
(apply f 1)
>>>
f' = con ("a" --> "a" + 1) :: SymInteger -~> SymInteger
>>>
f'
\(arg@0 :: Integer) -> (+ 1 arg@0)>>>
f = (f' #)
>>>
f 1
2>>>
f 2
3>>>
f 3
4>>>
f "b"
(+ 1 b)
Constructors
SymGeneralFun :: forall ca sa cb sb. (LinkedRep ca sa, LinkedRep cb sb, SupportedPrim (ca --> cb), SupportedNonFuncPrim ca) => Term (ca --> cb) -> sa -~> sb |
Instances
(SupportedPrim (ca --> cb), SupportedNonFuncPrim ca, LinkedRep ca sa, LinkedRep cb sb) => GenSym () (sa -~> sb) Source # | |
Defined in Grisette.Internal.Core.Data.Class.GenSym | |
(SupportedPrim (ca --> cb), SupportedNonFuncPrim ca, LinkedRep ca sa, LinkedRep cb sb) => GenSymSimple () (sa -~> sb) Source # | |
Defined in Grisette.Internal.Core.Data.Class.GenSym Methods simpleFresh :: MonadFresh m => () -> m (sa -~> sb) Source # | |
Lift (sa -~> sb :: Type) Source # | |
(SupportedPrim (ca --> cb), SupportedNonFuncPrim ca, LinkedRep ca sa, LinkedRep cb sb) => ToSym (Union (ca --> cb)) (sa -~> sb) Source # | |
(LinkedRep ca sa, LinkedRep cb sb, SupportedPrim (ca --> cb), SupportedNonFuncPrim ca) => Binary (sa -~> sb) Source # | |
(LinkedRep ca sa, LinkedRep cb sb, SupportedPrim (ca --> cb), SupportedNonFuncPrim ca) => Serial (sa -~> sb) Source # | |
Defined in Grisette.Internal.SymPrim.SymGeneralFun | |
(LinkedRep ca sa, LinkedRep cb sb, SupportedPrim (ca --> cb), SupportedNonFuncPrim ca) => Serialize (sa -~> sb) Source # | |
NFData (sa -~> sb) Source # | |
Defined in Grisette.Internal.SymPrim.SymGeneralFun | |
(SupportedPrim (ca --> cb), SupportedNonFuncPrim ca, LinkedRep ca sa, LinkedRep cb sb) => IsString (sa -~> sb) Source # | |
Defined in Grisette.Internal.SymPrim.SymGeneralFun Methods fromString :: String -> sa -~> sb # | |
Show (sa -~> sb) Source # | |
Eq (sa -~> sb) Source # | This will crash the program.
If you want to use the type as keys in hash maps based on term equality, say
memo table, you should use |
KeyEq (sa -~> sb) Source # | |
KeyHashable (sa -~> sb) Source # | |
Defined in Grisette.Internal.SymPrim.SymGeneralFun | |
Apply st => Apply (sa -~> st) Source # | |
ITEOp (sa -~> sb) Source # | |
EvalSym (sa -~> sb) Source # | |
ExtractSym (sa -~> sb) Source # | |
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.ExtractSym Methods extractSym :: (sa -~> sb) -> AnySymbolSet Source # extractSymMaybe :: forall (knd :: SymbolKind). IsSymbolKind knd => (sa -~> sb) -> Maybe (SymbolSet knd) Source # | |
Mergeable (sa -~> sb) Source # | |
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.Mergeable Methods rootStrategy :: MergingStrategy (sa -~> sb) Source # sortIndices :: (sa -~> sb) -> [DynamicSortedIdx] Source # | |
PPrint (sa -~> sb) Source # | |
SimpleMergeable (sa -~> sb) Source # | |
SubstSym (sa -~> sb) Source # | |
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.SubstSym Methods substSym :: forall cb sb0 (knd :: SymbolKind). (LinkedRep cb sb0, IsSymbolKind knd) => TypedSymbol knd cb -> sb0 -> (sa -~> sb) -> sa -~> sb Source # | |
AllSyms (sa -~> sb) Source # | |
(ConRep a, ConRep b) => ConRep (a -~> b) Source # | |
Defined in Grisette.Internal.SymPrim.SymGeneralFun | |
Function (sa -~> sb) sa sb Source # | |
Defined in Grisette.Internal.SymPrim.SymGeneralFun | |
GenSym (sa -~> sb) (sa -~> sb) Source # | |
Defined in Grisette.Internal.Core.Data.Class.GenSym | |
GenSymSimple (sa -~> sb) (sa -~> sb) Source # | |
Defined in Grisette.Internal.Core.Data.Class.GenSym Methods simpleFresh :: MonadFresh m => (sa -~> sb) -> m (sa -~> sb) Source # | |
(SupportedNonFuncPrim ca, LinkedRep ca sa, LinkedRep cb sb, SupportedPrim (ca --> cb)) => Solvable (ca --> cb) (sa -~> sb) Source # | |
ToCon (a -~> b) (a -~> b) Source # | |
(LinkedRep ca sa, LinkedRep cb sb) => ToCon (sa -~> sb) (ca --> cb) Source # | |
(SupportedPrim (ca --> cb), SupportedNonFuncPrim ca, LinkedRep ca sa, LinkedRep cb sb) => ToSym (ca --> cb) (sa -~> sb) Source # | |
(SupportedPrim (ca --> cb), LinkedRep ca sa, LinkedRep cb sb) => ToSym (sa -~> sb) (sa -~> sb) Source # | |
(LinkedRep ca sa, LinkedRep cb sb, SupportedPrim cb, SupportedPrim (ca --> cb), SupportedNonFuncPrim ca) => LinkedRep (ca --> cb) (sa -~> sb) Source # | |
type FunType (sa -~> st) Source # | |
Defined in Grisette.Internal.SymPrim.SymGeneralFun | |
type ConType (a -~> b) Source # | |
Shared constraints
type Prim a = (Show a, Binary a, Serial a, Serialize a, NFData a, Eq a, EvalSym a, ExtractSym a, Mergeable a, PPrint a, SubstSym a, SymEq a, SymOrd a, AllSyms a, KeyEq a, KeyHashable a, Lift a, Typeable a) Source #
A type that is used as a constraint for all the primitive types (including concrete primitives) in Grisette.
type SymPrim a = (Prim a, ITEOp a, GenSymSimple a a) Source #
A type that is used as a constraint for all the symbolic primitive types in Grisette.
type BasicSymPrim a = (SymPrim a, SimpleMergeable a, GenSymSimple () a, Solvable (ConType a) a, ConRep a, LinkedRep (ConType a) a, ToCon a (ConType a), ToSym (ConType a) a, Apply a, a ~ FunType a, SupportedNonFuncPrim (ConType a)) Source #
A type that is used as a constraint for all the basic symbolic primitive types in Grisette.
SomeSymWordN
is not considered as a basic symbolic
primitive type.
Quantifiers
forallSet :: ConstantSymbolSet -> SymBool -> SymBool Source #
Forall quantifier over a set of constant symbols. Quantifier over functions is not supported.
>>>
let xsym = "x" :: TypedConstantSymbol Integer
>>>
let ysym = "y" :: TypedConstantSymbol Integer
>>>
let x = "x" :: SymInteger
>>>
let y = "y" :: SymInteger
>>>
forallSet (buildSymbolSet [xsym, ysym]) (x .== y)
(forall x :: Integer (forall y :: Integer (= x y)))
Only available with SBV 10.1.0 or later.
forallSym :: (HasCallStack, ExtractSym a) => a -> SymBool -> SymBool Source #
Forall quantifier over all symbolic constants in a value. Quantifier over functions is not supported.
>>>
let a = ["x", "y"] :: [SymInteger]
>>>
forallSym a $ sum a .== 0
(forall x :: Integer (forall y :: Integer (= (+ x y) 0)))
Only available with sbv 10.1.0 or later.
forallFresh :: (HasCallStack, ExtractSym v, MonadFresh m, GenSym spec v, TryMerge m) => spec -> (v -> FreshT Union SymBool) -> m SymBool Source #
Forall quantifier over symbolic constants in a freshly generated value. Quantifier over functions is not supported.
>>>
:{
x :: Fresh SymBool x = forallFresh () $ \(a :: SymBool) -> existsFresh () $ \(b :: SymBool) -> mrgReturn $ a .== b :}
>>>
runFresh x "x"
(forall x@0 :: Bool (exists x@1 :: Bool (= x@0 x@1)))
Only available with sbv 10.1.0 or later.
existsSet :: ConstantSymbolSet -> SymBool -> SymBool Source #
Exists quantifier over a set of constant symbols. Quantifier over functions is not supported.
>>>
let xsym = "x" :: TypedConstantSymbol Integer
>>>
let ysym = "y" :: TypedConstantSymbol Integer
>>>
let x = "x" :: SymInteger
>>>
let y = "y" :: SymInteger
>>>
existsSet (buildSymbolSet [xsym, ysym]) (x .== y)
(exists x :: Integer (exists y :: Integer (= x y)))
Only available with SBV 10.1.0 or later.
existsSym :: (HasCallStack, ExtractSym a) => a -> SymBool -> SymBool Source #
Exists quantifier over all symbolic constants in a value. Quantifier over functions is not supported.
>>>
let a = ["x", "y"] :: [SymInteger]
>>>
existsSym a $ sum a .== 0
(exists x :: Integer (exists y :: Integer (= (+ x y) 0)))
Only available with sbv 10.1.0 or later.
existsFresh :: (HasCallStack, ExtractSym v, MonadFresh m, GenSym spec v, TryMerge m) => spec -> (v -> FreshT Union SymBool) -> m SymBool Source #
Exists quantifier over symbolic constants in a freshly generated value. Quantifier over functions is not supported.
>>>
:{
x :: Fresh SymBool x = forallFresh () $ \(a :: SymBool) -> existsFresh () $ \(b :: SymBool) -> mrgReturn $ a .== b :}
>>>
runFresh x "x"
(forall x@0 :: Bool (exists x@1 :: Bool (= x@0 x@1)))
Only available with sbv 10.1.0 or later.
Basic constraints
class (Lift t, NFData t, Typeable t, SupportedPrimConstraint t, SBVRep t) => SupportedPrim t Source #
Indicates that a type is supported, can be represented as a symbolic term, and can be lowered to an SBV term.
Minimal complete definition
defaultValue, pevalITETerm, pevalEqTerm, pevalDistinctTerm, conSBVTerm, symSBVName, symSBVTerm, parseSMTModelResult, castTypedSymbol, funcDummyConstraint
Instances
SupportedPrim AlgReal Source # | |
Defined in Grisette.Internal.SymPrim.Prim.Internal.Term Methods primTypeRep :: TypeRep AlgReal Source # sameCon :: AlgReal -> AlgReal -> Bool Source # hashConWithSalt :: Int -> AlgReal -> Int Source # pformatCon :: AlgReal -> String Source # defaultValue :: AlgReal Source # pevalITETerm :: Term Bool -> Term AlgReal -> Term AlgReal -> Term AlgReal Source # pevalEqTerm :: Term AlgReal -> Term AlgReal -> Term Bool Source # pevalDistinctTerm :: NonEmpty (Term AlgReal) -> Term Bool Source # conSBVTerm :: AlgReal -> SBVType AlgReal Source # symSBVName :: TypedSymbol 'AnyKind AlgReal -> Int -> String Source # symSBVTerm :: SBVFreshMonad m => String -> m (SBVType AlgReal) Source # withPrim :: ((PrimConstraint AlgReal, SMTDefinable (SBVType AlgReal), Mergeable (SBVType AlgReal), Typeable (SBVType AlgReal)) => a) -> a Source # sbvIte :: SBV Bool -> SBVType AlgReal -> SBVType AlgReal -> SBVType AlgReal Source # sbvEq :: SBVType AlgReal -> SBVType AlgReal -> SBV Bool Source # sbvDistinct :: NonEmpty (SBVType AlgReal) -> SBV Bool Source # parseSMTModelResult :: Int -> ([([CV], CV)], CV) -> AlgReal Source # castTypedSymbol :: forall (knd' :: SymbolKind) (knd :: SymbolKind). IsSymbolKind knd' => TypedSymbol knd AlgReal -> Maybe (TypedSymbol knd' AlgReal) Source # | |
SupportedPrim FPRoundingMode Source # | |
Defined in Grisette.Internal.SymPrim.Prim.Internal.Term Methods primTypeRep :: TypeRep FPRoundingMode Source # sameCon :: FPRoundingMode -> FPRoundingMode -> Bool Source # hashConWithSalt :: Int -> FPRoundingMode -> Int Source # pformatCon :: FPRoundingMode -> String Source # defaultValue :: FPRoundingMode Source # pevalITETerm :: Term Bool -> Term FPRoundingMode -> Term FPRoundingMode -> Term FPRoundingMode Source # pevalEqTerm :: Term FPRoundingMode -> Term FPRoundingMode -> Term Bool Source # pevalDistinctTerm :: NonEmpty (Term FPRoundingMode) -> Term Bool Source # conSBVTerm :: FPRoundingMode -> SBVType FPRoundingMode Source # symSBVName :: TypedSymbol 'AnyKind FPRoundingMode -> Int -> String Source # symSBVTerm :: SBVFreshMonad m => String -> m (SBVType FPRoundingMode) Source # withPrim :: ((PrimConstraint FPRoundingMode, SMTDefinable (SBVType FPRoundingMode), Mergeable (SBVType FPRoundingMode), Typeable (SBVType FPRoundingMode)) => a) -> a Source # sbvIte :: SBV Bool -> SBVType FPRoundingMode -> SBVType FPRoundingMode -> SBVType FPRoundingMode Source # sbvEq :: SBVType FPRoundingMode -> SBVType FPRoundingMode -> SBV Bool Source # sbvDistinct :: NonEmpty (SBVType FPRoundingMode) -> SBV Bool Source # parseSMTModelResult :: Int -> ([([CV], CV)], CV) -> FPRoundingMode Source # castTypedSymbol :: forall (knd' :: SymbolKind) (knd :: SymbolKind). IsSymbolKind knd' => TypedSymbol knd FPRoundingMode -> Maybe (TypedSymbol knd' FPRoundingMode) Source # funcDummyConstraint :: SBVType FPRoundingMode -> SBV Bool Source # | |
SupportedPrim Integer Source # | |
Defined in Grisette.Internal.SymPrim.Prim.Internal.Term Methods primTypeRep :: TypeRep Integer Source # sameCon :: Integer -> Integer -> Bool Source # hashConWithSalt :: Int -> Integer -> Int Source # pformatCon :: Integer -> String Source # defaultValue :: Integer Source # pevalITETerm :: Term Bool -> Term Integer -> Term Integer -> Term Integer Source # pevalEqTerm :: Term Integer -> Term Integer -> Term Bool Source # pevalDistinctTerm :: NonEmpty (Term Integer) -> Term Bool Source # conSBVTerm :: Integer -> SBVType Integer Source # symSBVName :: TypedSymbol 'AnyKind Integer -> Int -> String Source # symSBVTerm :: SBVFreshMonad m => String -> m (SBVType Integer) Source # withPrim :: ((PrimConstraint Integer, SMTDefinable (SBVType Integer), Mergeable (SBVType Integer), Typeable (SBVType Integer)) => a) -> a Source # sbvIte :: SBV Bool -> SBVType Integer -> SBVType Integer -> SBVType Integer Source # sbvEq :: SBVType Integer -> SBVType Integer -> SBV Bool Source # sbvDistinct :: NonEmpty (SBVType Integer) -> SBV Bool Source # parseSMTModelResult :: Int -> ([([CV], CV)], CV) -> Integer Source # castTypedSymbol :: forall (knd' :: SymbolKind) (knd :: SymbolKind). IsSymbolKind knd' => TypedSymbol knd Integer -> Maybe (TypedSymbol knd' Integer) Source # | |
SupportedPrim Bool Source # | |
Defined in Grisette.Internal.SymPrim.Prim.Internal.Term Methods primTypeRep :: TypeRep Bool Source # sameCon :: Bool -> Bool -> Bool Source # hashConWithSalt :: Int -> Bool -> Int Source # pformatCon :: Bool -> String Source # defaultValue :: Bool Source # pevalITETerm :: Term Bool -> Term Bool -> Term Bool -> Term Bool Source # pevalEqTerm :: Term Bool -> Term Bool -> Term Bool Source # pevalDistinctTerm :: NonEmpty (Term Bool) -> Term Bool Source # conSBVTerm :: Bool -> SBVType Bool Source # symSBVName :: TypedSymbol 'AnyKind Bool -> Int -> String Source # symSBVTerm :: SBVFreshMonad m => String -> m (SBVType Bool) Source # withPrim :: ((PrimConstraint Bool, SMTDefinable (SBVType Bool), Mergeable (SBVType Bool), Typeable (SBVType Bool)) => a) -> a Source # sbvIte :: SBV Bool -> SBVType Bool -> SBVType Bool -> SBVType Bool Source # sbvEq :: SBVType Bool -> SBVType Bool -> SBV Bool Source # sbvDistinct :: NonEmpty (SBVType Bool) -> SBV Bool Source # parseSMTModelResult :: Int -> ([([CV], CV)], CV) -> Bool Source # castTypedSymbol :: forall (knd' :: SymbolKind) (knd :: SymbolKind). IsSymbolKind knd' => TypedSymbol knd Bool -> Maybe (TypedSymbol knd' Bool) Source # | |
(KnownNat w, 1 <= w) => SupportedPrim (IntN w) Source # | |
Defined in Grisette.Internal.SymPrim.Prim.Internal.Term Methods primTypeRep :: TypeRep (IntN w) Source # sameCon :: IntN w -> IntN w -> Bool Source # hashConWithSalt :: Int -> IntN w -> Int Source # pformatCon :: IntN w -> String Source # defaultValue :: IntN w Source # pevalITETerm :: Term Bool -> Term (IntN w) -> Term (IntN w) -> Term (IntN w) Source # pevalEqTerm :: Term (IntN w) -> Term (IntN w) -> Term Bool Source # pevalDistinctTerm :: NonEmpty (Term (IntN w)) -> Term Bool Source # conSBVTerm :: IntN w -> SBVType (IntN w) Source # symSBVName :: TypedSymbol 'AnyKind (IntN w) -> Int -> String Source # symSBVTerm :: SBVFreshMonad m => String -> m (SBVType (IntN w)) Source # withPrim :: ((PrimConstraint (IntN w), SMTDefinable (SBVType (IntN w)), Mergeable (SBVType (IntN w)), Typeable (SBVType (IntN w))) => a) -> a Source # sbvIte :: SBV Bool -> SBVType (IntN w) -> SBVType (IntN w) -> SBVType (IntN w) Source # sbvEq :: SBVType (IntN w) -> SBVType (IntN w) -> SBV Bool Source # sbvDistinct :: NonEmpty (SBVType (IntN w)) -> SBV Bool Source # parseSMTModelResult :: Int -> ([([CV], CV)], CV) -> IntN w Source # castTypedSymbol :: forall (knd' :: SymbolKind) (knd :: SymbolKind). IsSymbolKind knd' => TypedSymbol knd (IntN w) -> Maybe (TypedSymbol knd' (IntN w)) Source # funcDummyConstraint :: SBVType (IntN w) -> SBV Bool Source # | |
(KnownNat w, 1 <= w) => SupportedPrim (WordN w) Source # | |
Defined in Grisette.Internal.SymPrim.Prim.Internal.Term Methods primTypeRep :: TypeRep (WordN w) Source # sameCon :: WordN w -> WordN w -> Bool Source # hashConWithSalt :: Int -> WordN w -> Int Source # pformatCon :: WordN w -> String Source # defaultValue :: WordN w Source # pevalITETerm :: Term Bool -> Term (WordN w) -> Term (WordN w) -> Term (WordN w) Source # pevalEqTerm :: Term (WordN w) -> Term (WordN w) -> Term Bool Source # pevalDistinctTerm :: NonEmpty (Term (WordN w)) -> Term Bool Source # conSBVTerm :: WordN w -> SBVType (WordN w) Source # symSBVName :: TypedSymbol 'AnyKind (WordN w) -> Int -> String Source # symSBVTerm :: SBVFreshMonad m => String -> m (SBVType (WordN w)) Source # withPrim :: ((PrimConstraint (WordN w), SMTDefinable (SBVType (WordN w)), Mergeable (SBVType (WordN w)), Typeable (SBVType (WordN w))) => a) -> a Source # sbvIte :: SBV Bool -> SBVType (WordN w) -> SBVType (WordN w) -> SBVType (WordN w) Source # sbvEq :: SBVType (WordN w) -> SBVType (WordN w) -> SBV Bool Source # sbvDistinct :: NonEmpty (SBVType (WordN w)) -> SBV Bool Source # parseSMTModelResult :: Int -> ([([CV], CV)], CV) -> WordN w Source # castTypedSymbol :: forall (knd' :: SymbolKind) (knd :: SymbolKind). IsSymbolKind knd' => TypedSymbol knd (WordN w) -> Maybe (TypedSymbol knd' (WordN w)) Source # funcDummyConstraint :: SBVType (WordN w) -> SBV Bool Source # | |
ValidFP eb sb => SupportedPrim (FP eb sb) Source # | |
Defined in Grisette.Internal.SymPrim.Prim.Internal.Term Methods primTypeRep :: TypeRep (FP eb sb) Source # sameCon :: FP eb sb -> FP eb sb -> Bool Source # hashConWithSalt :: Int -> FP eb sb -> Int Source # pformatCon :: FP eb sb -> String Source # defaultValue :: FP eb sb Source # pevalITETerm :: Term Bool -> Term (FP eb sb) -> Term (FP eb sb) -> Term (FP eb sb) Source # pevalEqTerm :: Term (FP eb sb) -> Term (FP eb sb) -> Term Bool Source # pevalDistinctTerm :: NonEmpty (Term (FP eb sb)) -> Term Bool Source # conSBVTerm :: FP eb sb -> SBVType (FP eb sb) Source # symSBVName :: TypedSymbol 'AnyKind (FP eb sb) -> Int -> String Source # symSBVTerm :: SBVFreshMonad m => String -> m (SBVType (FP eb sb)) Source # withPrim :: ((PrimConstraint (FP eb sb), SMTDefinable (SBVType (FP eb sb)), Mergeable (SBVType (FP eb sb)), Typeable (SBVType (FP eb sb))) => a) -> a Source # sbvIte :: SBV Bool -> SBVType (FP eb sb) -> SBVType (FP eb sb) -> SBVType (FP eb sb) Source # sbvEq :: SBVType (FP eb sb) -> SBVType (FP eb sb) -> SBV Bool Source # sbvDistinct :: NonEmpty (SBVType (FP eb sb)) -> SBV Bool Source # parseSMTModelResult :: Int -> ([([CV], CV)], CV) -> FP eb sb Source # castTypedSymbol :: forall (knd' :: SymbolKind) (knd :: SymbolKind). IsSymbolKind knd' => TypedSymbol knd (FP eb sb) -> Maybe (TypedSymbol knd' (FP eb sb)) Source # funcDummyConstraint :: SBVType (FP eb sb) -> SBV Bool Source # | |
(SupportedNonFuncPrim a0, SupportedNonFuncPrim a1, SupportedNonFuncPrim a2, SupportedNonFuncPrim a3, SupportedNonFuncPrim a4, SupportedNonFuncPrim a5, SupportedNonFuncPrim a6, SupportedNonFuncPrim a7) => SupportedPrim (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7))))))) Source # | |
Defined in Grisette.Internal.SymPrim.GeneralFun Methods primTypeRep :: TypeRep (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7))))))) Source # sameCon :: (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7))))))) -> (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7))))))) -> Bool Source # hashConWithSalt :: Int -> (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7))))))) -> Int Source # pformatCon :: (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7))))))) -> String Source # defaultValue :: a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7)))))) Source # pevalITETerm :: Term Bool -> Term (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7))))))) -> Term (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7))))))) -> Term (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7))))))) Source # pevalEqTerm :: Term (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7))))))) -> Term (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7))))))) -> Term Bool Source # pevalDistinctTerm :: NonEmpty (Term (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7)))))))) -> Term Bool Source # conSBVTerm :: (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7))))))) -> SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7))))))) Source # symSBVName :: TypedSymbol 'AnyKind (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7))))))) -> Int -> String Source # symSBVTerm :: SBVFreshMonad m => String -> m (SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7)))))))) Source # withPrim :: ((PrimConstraint (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7))))))), SMTDefinable (SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7)))))))), Mergeable (SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7)))))))), Typeable (SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7))))))))) => a) -> a Source # sbvIte :: SBV Bool -> SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7))))))) -> SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7))))))) -> SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7))))))) Source # sbvEq :: SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7))))))) -> SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7))))))) -> SBV Bool Source # sbvDistinct :: NonEmpty (SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7)))))))) -> SBV Bool Source # parseSMTModelResult :: Int -> ([([CV], CV)], CV) -> a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7)))))) Source # castTypedSymbol :: forall (knd' :: SymbolKind) (knd :: SymbolKind). IsSymbolKind knd' => TypedSymbol knd (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7))))))) -> Maybe (TypedSymbol knd' (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7)))))))) Source # funcDummyConstraint :: SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7))))))) -> SBV Bool Source # | |
(SupportedNonFuncPrim a0, SupportedNonFuncPrim a1, SupportedNonFuncPrim a2, SupportedNonFuncPrim a3, SupportedNonFuncPrim a4, SupportedNonFuncPrim a5, SupportedNonFuncPrim a6) => SupportedPrim (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6)))))) Source # | |
Defined in Grisette.Internal.SymPrim.GeneralFun Methods primTypeRep :: TypeRep (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6)))))) Source # sameCon :: (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6)))))) -> (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6)))))) -> Bool Source # hashConWithSalt :: Int -> (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6)))))) -> Int Source # pformatCon :: (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6)))))) -> String Source # defaultValue :: a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6))))) Source # pevalITETerm :: Term Bool -> Term (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6)))))) -> Term (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6)))))) -> Term (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6)))))) Source # pevalEqTerm :: Term (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6)))))) -> Term (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6)))))) -> Term Bool Source # pevalDistinctTerm :: NonEmpty (Term (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6))))))) -> Term Bool Source # conSBVTerm :: (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6)))))) -> SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6)))))) Source # symSBVName :: TypedSymbol 'AnyKind (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6)))))) -> Int -> String Source # symSBVTerm :: SBVFreshMonad m => String -> m (SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6))))))) Source # withPrim :: ((PrimConstraint (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6)))))), SMTDefinable (SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6))))))), Mergeable (SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6))))))), Typeable (SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6)))))))) => a) -> a Source # sbvIte :: SBV Bool -> SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6)))))) -> SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6)))))) -> SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6)))))) Source # sbvEq :: SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6)))))) -> SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6)))))) -> SBV Bool Source # sbvDistinct :: NonEmpty (SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6))))))) -> SBV Bool Source # parseSMTModelResult :: Int -> ([([CV], CV)], CV) -> a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6))))) Source # castTypedSymbol :: forall (knd' :: SymbolKind) (knd :: SymbolKind). IsSymbolKind knd' => TypedSymbol knd (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6)))))) -> Maybe (TypedSymbol knd' (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6))))))) Source # funcDummyConstraint :: SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6)))))) -> SBV Bool Source # | |
(SupportedNonFuncPrim a0, SupportedNonFuncPrim a1, SupportedNonFuncPrim a2, SupportedNonFuncPrim a3, SupportedNonFuncPrim a4, SupportedNonFuncPrim a5) => SupportedPrim (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5))))) Source # | |
Defined in Grisette.Internal.SymPrim.GeneralFun Methods primTypeRep :: TypeRep (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5))))) Source # sameCon :: (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5))))) -> (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5))))) -> Bool Source # hashConWithSalt :: Int -> (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5))))) -> Int Source # pformatCon :: (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5))))) -> String Source # defaultValue :: a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5)))) Source # pevalITETerm :: Term Bool -> Term (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5))))) -> Term (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5))))) -> Term (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5))))) Source # pevalEqTerm :: Term (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5))))) -> Term (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5))))) -> Term Bool Source # pevalDistinctTerm :: NonEmpty (Term (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5)))))) -> Term Bool Source # conSBVTerm :: (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5))))) -> SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5))))) Source # symSBVName :: TypedSymbol 'AnyKind (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5))))) -> Int -> String Source # symSBVTerm :: SBVFreshMonad m => String -> m (SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5)))))) Source # withPrim :: ((PrimConstraint (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5))))), SMTDefinable (SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5)))))), Mergeable (SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5)))))), Typeable (SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5))))))) => a) -> a Source # sbvIte :: SBV Bool -> SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5))))) -> SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5))))) -> SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5))))) Source # sbvEq :: SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5))))) -> SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5))))) -> SBV Bool Source # sbvDistinct :: NonEmpty (SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5)))))) -> SBV Bool Source # parseSMTModelResult :: Int -> ([([CV], CV)], CV) -> a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5)))) Source # castTypedSymbol :: forall (knd' :: SymbolKind) (knd :: SymbolKind). IsSymbolKind knd' => TypedSymbol knd (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5))))) -> Maybe (TypedSymbol knd' (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5)))))) Source # funcDummyConstraint :: SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5))))) -> SBV Bool Source # | |
(SupportedNonFuncPrim a0, SupportedNonFuncPrim a1, SupportedNonFuncPrim a2, SupportedNonFuncPrim a3, SupportedNonFuncPrim a4) => SupportedPrim (a0 --> (a1 --> (a2 --> (a3 --> a4)))) Source # | |
Defined in Grisette.Internal.SymPrim.GeneralFun Methods primTypeRep :: TypeRep (a0 --> (a1 --> (a2 --> (a3 --> a4)))) Source # sameCon :: (a0 --> (a1 --> (a2 --> (a3 --> a4)))) -> (a0 --> (a1 --> (a2 --> (a3 --> a4)))) -> Bool Source # hashConWithSalt :: Int -> (a0 --> (a1 --> (a2 --> (a3 --> a4)))) -> Int Source # pformatCon :: (a0 --> (a1 --> (a2 --> (a3 --> a4)))) -> String Source # defaultValue :: a0 --> (a1 --> (a2 --> (a3 --> a4))) Source # pevalITETerm :: Term Bool -> Term (a0 --> (a1 --> (a2 --> (a3 --> a4)))) -> Term (a0 --> (a1 --> (a2 --> (a3 --> a4)))) -> Term (a0 --> (a1 --> (a2 --> (a3 --> a4)))) Source # pevalEqTerm :: Term (a0 --> (a1 --> (a2 --> (a3 --> a4)))) -> Term (a0 --> (a1 --> (a2 --> (a3 --> a4)))) -> Term Bool Source # pevalDistinctTerm :: NonEmpty (Term (a0 --> (a1 --> (a2 --> (a3 --> a4))))) -> Term Bool Source # conSBVTerm :: (a0 --> (a1 --> (a2 --> (a3 --> a4)))) -> SBVType (a0 --> (a1 --> (a2 --> (a3 --> a4)))) Source # symSBVName :: TypedSymbol 'AnyKind (a0 --> (a1 --> (a2 --> (a3 --> a4)))) -> Int -> String Source # symSBVTerm :: SBVFreshMonad m => String -> m (SBVType (a0 --> (a1 --> (a2 --> (a3 --> a4))))) Source # withPrim :: ((PrimConstraint (a0 --> (a1 --> (a2 --> (a3 --> a4)))), SMTDefinable (SBVType (a0 --> (a1 --> (a2 --> (a3 --> a4))))), Mergeable (SBVType (a0 --> (a1 --> (a2 --> (a3 --> a4))))), Typeable (SBVType (a0 --> (a1 --> (a2 --> (a3 --> a4)))))) => a) -> a Source # sbvIte :: SBV Bool -> SBVType (a0 --> (a1 --> (a2 --> (a3 --> a4)))) -> SBVType (a0 --> (a1 --> (a2 --> (a3 --> a4)))) -> SBVType (a0 --> (a1 --> (a2 --> (a3 --> a4)))) Source # sbvEq :: SBVType (a0 --> (a1 --> (a2 --> (a3 --> a4)))) -> SBVType (a0 --> (a1 --> (a2 --> (a3 --> a4)))) -> SBV Bool Source # sbvDistinct :: NonEmpty (SBVType (a0 --> (a1 --> (a2 --> (a3 --> a4))))) -> SBV Bool Source # parseSMTModelResult :: Int -> ([([CV], CV)], CV) -> a0 --> (a1 --> (a2 --> (a3 --> a4))) Source # castTypedSymbol :: forall (knd' :: SymbolKind) (knd :: SymbolKind). IsSymbolKind knd' => TypedSymbol knd (a0 --> (a1 --> (a2 --> (a3 --> a4)))) -> Maybe (TypedSymbol knd' (a0 --> (a1 --> (a2 --> (a3 --> a4))))) Source # funcDummyConstraint :: SBVType (a0 --> (a1 --> (a2 --> (a3 --> a4)))) -> SBV Bool Source # | |
(SupportedNonFuncPrim a0, SupportedNonFuncPrim a1, SupportedNonFuncPrim a2, SupportedNonFuncPrim a3) => SupportedPrim (a0 --> (a1 --> (a2 --> a3))) Source # | |
Defined in Grisette.Internal.SymPrim.GeneralFun Methods primTypeRep :: TypeRep (a0 --> (a1 --> (a2 --> a3))) Source # sameCon :: (a0 --> (a1 --> (a2 --> a3))) -> (a0 --> (a1 --> (a2 --> a3))) -> Bool Source # hashConWithSalt :: Int -> (a0 --> (a1 --> (a2 --> a3))) -> Int Source # pformatCon :: (a0 --> (a1 --> (a2 --> a3))) -> String Source # defaultValue :: a0 --> (a1 --> (a2 --> a3)) Source # pevalITETerm :: Term Bool -> Term (a0 --> (a1 --> (a2 --> a3))) -> Term (a0 --> (a1 --> (a2 --> a3))) -> Term (a0 --> (a1 --> (a2 --> a3))) Source # pevalEqTerm :: Term (a0 --> (a1 --> (a2 --> a3))) -> Term (a0 --> (a1 --> (a2 --> a3))) -> Term Bool Source # pevalDistinctTerm :: NonEmpty (Term (a0 --> (a1 --> (a2 --> a3)))) -> Term Bool Source # conSBVTerm :: (a0 --> (a1 --> (a2 --> a3))) -> SBVType (a0 --> (a1 --> (a2 --> a3))) Source # symSBVName :: TypedSymbol 'AnyKind (a0 --> (a1 --> (a2 --> a3))) -> Int -> String Source # symSBVTerm :: SBVFreshMonad m => String -> m (SBVType (a0 --> (a1 --> (a2 --> a3)))) Source # withPrim :: ((PrimConstraint (a0 --> (a1 --> (a2 --> a3))), SMTDefinable (SBVType (a0 --> (a1 --> (a2 --> a3)))), Mergeable (SBVType (a0 --> (a1 --> (a2 --> a3)))), Typeable (SBVType (a0 --> (a1 --> (a2 --> a3))))) => a) -> a Source # sbvIte :: SBV Bool -> SBVType (a0 --> (a1 --> (a2 --> a3))) -> SBVType (a0 --> (a1 --> (a2 --> a3))) -> SBVType (a0 --> (a1 --> (a2 --> a3))) Source # sbvEq :: SBVType (a0 --> (a1 --> (a2 --> a3))) -> SBVType (a0 --> (a1 --> (a2 --> a3))) -> SBV Bool Source # sbvDistinct :: NonEmpty (SBVType (a0 --> (a1 --> (a2 --> a3)))) -> SBV Bool Source # parseSMTModelResult :: Int -> ([([CV], CV)], CV) -> a0 --> (a1 --> (a2 --> a3)) Source # castTypedSymbol :: forall (knd' :: SymbolKind) (knd :: SymbolKind). IsSymbolKind knd' => TypedSymbol knd (a0 --> (a1 --> (a2 --> a3))) -> Maybe (TypedSymbol knd' (a0 --> (a1 --> (a2 --> a3)))) Source # funcDummyConstraint :: SBVType (a0 --> (a1 --> (a2 --> a3))) -> SBV Bool Source # | |
(SupportedNonFuncPrim a0, SupportedNonFuncPrim a1, SupportedNonFuncPrim a2) => SupportedPrim (a0 --> (a1 --> a2)) Source # | |
Defined in Grisette.Internal.SymPrim.GeneralFun Methods primTypeRep :: TypeRep (a0 --> (a1 --> a2)) Source # sameCon :: (a0 --> (a1 --> a2)) -> (a0 --> (a1 --> a2)) -> Bool Source # hashConWithSalt :: Int -> (a0 --> (a1 --> a2)) -> Int Source # pformatCon :: (a0 --> (a1 --> a2)) -> String Source # defaultValue :: a0 --> (a1 --> a2) Source # pevalITETerm :: Term Bool -> Term (a0 --> (a1 --> a2)) -> Term (a0 --> (a1 --> a2)) -> Term (a0 --> (a1 --> a2)) Source # pevalEqTerm :: Term (a0 --> (a1 --> a2)) -> Term (a0 --> (a1 --> a2)) -> Term Bool Source # pevalDistinctTerm :: NonEmpty (Term (a0 --> (a1 --> a2))) -> Term Bool Source # conSBVTerm :: (a0 --> (a1 --> a2)) -> SBVType (a0 --> (a1 --> a2)) Source # symSBVName :: TypedSymbol 'AnyKind (a0 --> (a1 --> a2)) -> Int -> String Source # symSBVTerm :: SBVFreshMonad m => String -> m (SBVType (a0 --> (a1 --> a2))) Source # withPrim :: ((PrimConstraint (a0 --> (a1 --> a2)), SMTDefinable (SBVType (a0 --> (a1 --> a2))), Mergeable (SBVType (a0 --> (a1 --> a2))), Typeable (SBVType (a0 --> (a1 --> a2)))) => a) -> a Source # sbvIte :: SBV Bool -> SBVType (a0 --> (a1 --> a2)) -> SBVType (a0 --> (a1 --> a2)) -> SBVType (a0 --> (a1 --> a2)) Source # sbvEq :: SBVType (a0 --> (a1 --> a2)) -> SBVType (a0 --> (a1 --> a2)) -> SBV Bool Source # sbvDistinct :: NonEmpty (SBVType (a0 --> (a1 --> a2))) -> SBV Bool Source # parseSMTModelResult :: Int -> ([([CV], CV)], CV) -> a0 --> (a1 --> a2) Source # castTypedSymbol :: forall (knd' :: SymbolKind) (knd :: SymbolKind). IsSymbolKind knd' => TypedSymbol knd (a0 --> (a1 --> a2)) -> Maybe (TypedSymbol knd' (a0 --> (a1 --> a2))) Source # funcDummyConstraint :: SBVType (a0 --> (a1 --> a2)) -> SBV Bool Source # | |
(SupportedNonFuncPrim a0, SupportedNonFuncPrim a1) => SupportedPrim (a0 --> a1) Source # | |
Defined in Grisette.Internal.SymPrim.GeneralFun Methods primTypeRep :: TypeRep (a0 --> a1) Source # sameCon :: (a0 --> a1) -> (a0 --> a1) -> Bool Source # hashConWithSalt :: Int -> (a0 --> a1) -> Int Source # pformatCon :: (a0 --> a1) -> String Source # defaultValue :: a0 --> a1 Source # pevalITETerm :: Term Bool -> Term (a0 --> a1) -> Term (a0 --> a1) -> Term (a0 --> a1) Source # pevalEqTerm :: Term (a0 --> a1) -> Term (a0 --> a1) -> Term Bool Source # pevalDistinctTerm :: NonEmpty (Term (a0 --> a1)) -> Term Bool Source # conSBVTerm :: (a0 --> a1) -> SBVType (a0 --> a1) Source # symSBVName :: TypedSymbol 'AnyKind (a0 --> a1) -> Int -> String Source # symSBVTerm :: SBVFreshMonad m => String -> m (SBVType (a0 --> a1)) Source # withPrim :: ((PrimConstraint (a0 --> a1), SMTDefinable (SBVType (a0 --> a1)), Mergeable (SBVType (a0 --> a1)), Typeable (SBVType (a0 --> a1))) => a) -> a Source # sbvIte :: SBV Bool -> SBVType (a0 --> a1) -> SBVType (a0 --> a1) -> SBVType (a0 --> a1) Source # sbvEq :: SBVType (a0 --> a1) -> SBVType (a0 --> a1) -> SBV Bool Source # sbvDistinct :: NonEmpty (SBVType (a0 --> a1)) -> SBV Bool Source # parseSMTModelResult :: Int -> ([([CV], CV)], CV) -> a0 --> a1 Source # castTypedSymbol :: forall (knd' :: SymbolKind) (knd :: SymbolKind). IsSymbolKind knd' => TypedSymbol knd (a0 --> a1) -> Maybe (TypedSymbol knd' (a0 --> a1)) Source # funcDummyConstraint :: SBVType (a0 --> a1) -> SBV Bool Source # | |
(SupportedNonFuncPrim a0, SupportedNonFuncPrim a1, SupportedNonFuncPrim a2, SupportedNonFuncPrim a3, SupportedNonFuncPrim a4, SupportedNonFuncPrim a5, SupportedNonFuncPrim a6, SupportedNonFuncPrim a7) => SupportedPrim (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7))))))) Source # | |
Defined in Grisette.Internal.SymPrim.TabularFun Methods primTypeRep :: TypeRep (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7))))))) Source # sameCon :: (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7))))))) -> (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7))))))) -> Bool Source # hashConWithSalt :: Int -> (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7))))))) -> Int Source # pformatCon :: (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7))))))) -> String Source # defaultValue :: a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7)))))) Source # pevalITETerm :: Term Bool -> Term (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7))))))) -> Term (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7))))))) -> Term (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7))))))) Source # pevalEqTerm :: Term (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7))))))) -> Term (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7))))))) -> Term Bool Source # pevalDistinctTerm :: NonEmpty (Term (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7)))))))) -> Term Bool Source # conSBVTerm :: (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7))))))) -> SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7))))))) Source # symSBVName :: TypedSymbol 'AnyKind (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7))))))) -> Int -> String Source # symSBVTerm :: SBVFreshMonad m => String -> m (SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7)))))))) Source # withPrim :: ((PrimConstraint (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7))))))), SMTDefinable (SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7)))))))), Mergeable (SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7)))))))), Typeable (SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7))))))))) => a) -> a Source # sbvIte :: SBV Bool -> SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7))))))) -> SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7))))))) -> SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7))))))) Source # sbvEq :: SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7))))))) -> SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7))))))) -> SBV Bool Source # sbvDistinct :: NonEmpty (SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7)))))))) -> SBV Bool Source # parseSMTModelResult :: Int -> ([([CV], CV)], CV) -> a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7)))))) Source # castTypedSymbol :: forall (knd' :: SymbolKind) (knd :: SymbolKind). IsSymbolKind knd' => TypedSymbol knd (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7))))))) -> Maybe (TypedSymbol knd' (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7)))))))) Source # funcDummyConstraint :: SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7))))))) -> SBV Bool Source # | |
(SupportedNonFuncPrim a0, SupportedNonFuncPrim a1, SupportedNonFuncPrim a2, SupportedNonFuncPrim a3, SupportedNonFuncPrim a4, SupportedNonFuncPrim a5, SupportedNonFuncPrim a6) => SupportedPrim (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6)))))) Source # | |
Defined in Grisette.Internal.SymPrim.TabularFun Methods primTypeRep :: TypeRep (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6)))))) Source # sameCon :: (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6)))))) -> (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6)))))) -> Bool Source # hashConWithSalt :: Int -> (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6)))))) -> Int Source # pformatCon :: (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6)))))) -> String Source # defaultValue :: a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6))))) Source # pevalITETerm :: Term Bool -> Term (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6)))))) -> Term (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6)))))) -> Term (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6)))))) Source # pevalEqTerm :: Term (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6)))))) -> Term (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6)))))) -> Term Bool Source # pevalDistinctTerm :: NonEmpty (Term (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6))))))) -> Term Bool Source # conSBVTerm :: (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6)))))) -> SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6)))))) Source # symSBVName :: TypedSymbol 'AnyKind (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6)))))) -> Int -> String Source # symSBVTerm :: SBVFreshMonad m => String -> m (SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6))))))) Source # withPrim :: ((PrimConstraint (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6)))))), SMTDefinable (SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6))))))), Mergeable (SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6))))))), Typeable (SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6)))))))) => a) -> a Source # sbvIte :: SBV Bool -> SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6)))))) -> SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6)))))) -> SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6)))))) Source # sbvEq :: SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6)))))) -> SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6)))))) -> SBV Bool Source # sbvDistinct :: NonEmpty (SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6))))))) -> SBV Bool Source # parseSMTModelResult :: Int -> ([([CV], CV)], CV) -> a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6))))) Source # castTypedSymbol :: forall (knd' :: SymbolKind) (knd :: SymbolKind). IsSymbolKind knd' => TypedSymbol knd (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6)))))) -> Maybe (TypedSymbol knd' (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6))))))) Source # funcDummyConstraint :: SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6)))))) -> SBV Bool Source # | |
(SupportedNonFuncPrim a0, SupportedNonFuncPrim a1, SupportedNonFuncPrim a2, SupportedNonFuncPrim a3, SupportedNonFuncPrim a4, SupportedNonFuncPrim a5) => SupportedPrim (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5))))) Source # | |
Defined in Grisette.Internal.SymPrim.TabularFun Methods primTypeRep :: TypeRep (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5))))) Source # sameCon :: (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5))))) -> (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5))))) -> Bool Source # hashConWithSalt :: Int -> (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5))))) -> Int Source # pformatCon :: (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5))))) -> String Source # defaultValue :: a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5)))) Source # pevalITETerm :: Term Bool -> Term (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5))))) -> Term (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5))))) -> Term (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5))))) Source # pevalEqTerm :: Term (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5))))) -> Term (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5))))) -> Term Bool Source # pevalDistinctTerm :: NonEmpty (Term (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5)))))) -> Term Bool Source # conSBVTerm :: (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5))))) -> SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5))))) Source # symSBVName :: TypedSymbol 'AnyKind (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5))))) -> Int -> String Source # symSBVTerm :: SBVFreshMonad m => String -> m (SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5)))))) Source # withPrim :: ((PrimConstraint (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5))))), SMTDefinable (SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5)))))), Mergeable (SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5)))))), Typeable (SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5))))))) => a) -> a Source # sbvIte :: SBV Bool -> SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5))))) -> SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5))))) -> SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5))))) Source # sbvEq :: SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5))))) -> SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5))))) -> SBV Bool Source # sbvDistinct :: NonEmpty (SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5)))))) -> SBV Bool Source # parseSMTModelResult :: Int -> ([([CV], CV)], CV) -> a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5)))) Source # castTypedSymbol :: forall (knd' :: SymbolKind) (knd :: SymbolKind). IsSymbolKind knd' => TypedSymbol knd (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5))))) -> Maybe (TypedSymbol knd' (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5)))))) Source # funcDummyConstraint :: SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5))))) -> SBV Bool Source # | |
(SupportedNonFuncPrim a0, SupportedNonFuncPrim a1, SupportedNonFuncPrim a2, SupportedNonFuncPrim a3, SupportedNonFuncPrim a4) => SupportedPrim (a0 =-> (a1 =-> (a2 =-> (a3 =-> a4)))) Source # | |
Defined in Grisette.Internal.SymPrim.TabularFun Methods primTypeRep :: TypeRep (a0 =-> (a1 =-> (a2 =-> (a3 =-> a4)))) Source # sameCon :: (a0 =-> (a1 =-> (a2 =-> (a3 =-> a4)))) -> (a0 =-> (a1 =-> (a2 =-> (a3 =-> a4)))) -> Bool Source # hashConWithSalt :: Int -> (a0 =-> (a1 =-> (a2 =-> (a3 =-> a4)))) -> Int Source # pformatCon :: (a0 =-> (a1 =-> (a2 =-> (a3 =-> a4)))) -> String Source # defaultValue :: a0 =-> (a1 =-> (a2 =-> (a3 =-> a4))) Source # pevalITETerm :: Term Bool -> Term (a0 =-> (a1 =-> (a2 =-> (a3 =-> a4)))) -> Term (a0 =-> (a1 =-> (a2 =-> (a3 =-> a4)))) -> Term (a0 =-> (a1 =-> (a2 =-> (a3 =-> a4)))) Source # pevalEqTerm :: Term (a0 =-> (a1 =-> (a2 =-> (a3 =-> a4)))) -> Term (a0 =-> (a1 =-> (a2 =-> (a3 =-> a4)))) -> Term Bool Source # pevalDistinctTerm :: NonEmpty (Term (a0 =-> (a1 =-> (a2 =-> (a3 =-> a4))))) -> Term Bool Source # conSBVTerm :: (a0 =-> (a1 =-> (a2 =-> (a3 =-> a4)))) -> SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> a4)))) Source # symSBVName :: TypedSymbol 'AnyKind (a0 =-> (a1 =-> (a2 =-> (a3 =-> a4)))) -> Int -> String Source # symSBVTerm :: SBVFreshMonad m => String -> m (SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> a4))))) Source # withPrim :: ((PrimConstraint (a0 =-> (a1 =-> (a2 =-> (a3 =-> a4)))), SMTDefinable (SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> a4))))), Mergeable (SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> a4))))), Typeable (SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> a4)))))) => a) -> a Source # sbvIte :: SBV Bool -> SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> a4)))) -> SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> a4)))) -> SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> a4)))) Source # sbvEq :: SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> a4)))) -> SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> a4)))) -> SBV Bool Source # sbvDistinct :: NonEmpty (SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> a4))))) -> SBV Bool Source # parseSMTModelResult :: Int -> ([([CV], CV)], CV) -> a0 =-> (a1 =-> (a2 =-> (a3 =-> a4))) Source # castTypedSymbol :: forall (knd' :: SymbolKind) (knd :: SymbolKind). IsSymbolKind knd' => TypedSymbol knd (a0 =-> (a1 =-> (a2 =-> (a3 =-> a4)))) -> Maybe (TypedSymbol knd' (a0 =-> (a1 =-> (a2 =-> (a3 =-> a4))))) Source # funcDummyConstraint :: SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> a4)))) -> SBV Bool Source # | |
(SupportedNonFuncPrim a0, SupportedNonFuncPrim a1, SupportedNonFuncPrim a2, SupportedNonFuncPrim a3) => SupportedPrim (a0 =-> (a1 =-> (a2 =-> a3))) Source # | |
Defined in Grisette.Internal.SymPrim.TabularFun Methods primTypeRep :: TypeRep (a0 =-> (a1 =-> (a2 =-> a3))) Source # sameCon :: (a0 =-> (a1 =-> (a2 =-> a3))) -> (a0 =-> (a1 =-> (a2 =-> a3))) -> Bool Source # hashConWithSalt :: Int -> (a0 =-> (a1 =-> (a2 =-> a3))) -> Int Source # pformatCon :: (a0 =-> (a1 =-> (a2 =-> a3))) -> String Source # defaultValue :: a0 =-> (a1 =-> (a2 =-> a3)) Source # pevalITETerm :: Term Bool -> Term (a0 =-> (a1 =-> (a2 =-> a3))) -> Term (a0 =-> (a1 =-> (a2 =-> a3))) -> Term (a0 =-> (a1 =-> (a2 =-> a3))) Source # pevalEqTerm :: Term (a0 =-> (a1 =-> (a2 =-> a3))) -> Term (a0 =-> (a1 =-> (a2 =-> a3))) -> Term Bool Source # pevalDistinctTerm :: NonEmpty (Term (a0 =-> (a1 =-> (a2 =-> a3)))) -> Term Bool Source # conSBVTerm :: (a0 =-> (a1 =-> (a2 =-> a3))) -> SBVType (a0 =-> (a1 =-> (a2 =-> a3))) Source # symSBVName :: TypedSymbol 'AnyKind (a0 =-> (a1 =-> (a2 =-> a3))) -> Int -> String Source # symSBVTerm :: SBVFreshMonad m => String -> m (SBVType (a0 =-> (a1 =-> (a2 =-> a3)))) Source # withPrim :: ((PrimConstraint (a0 =-> (a1 =-> (a2 =-> a3))), SMTDefinable (SBVType (a0 =-> (a1 =-> (a2 =-> a3)))), Mergeable (SBVType (a0 =-> (a1 =-> (a2 =-> a3)))), Typeable (SBVType (a0 =-> (a1 =-> (a2 =-> a3))))) => a) -> a Source # sbvIte :: SBV Bool -> SBVType (a0 =-> (a1 =-> (a2 =-> a3))) -> SBVType (a0 =-> (a1 =-> (a2 =-> a3))) -> SBVType (a0 =-> (a1 =-> (a2 =-> a3))) Source # sbvEq :: SBVType (a0 =-> (a1 =-> (a2 =-> a3))) -> SBVType (a0 =-> (a1 =-> (a2 =-> a3))) -> SBV Bool Source # sbvDistinct :: NonEmpty (SBVType (a0 =-> (a1 =-> (a2 =-> a3)))) -> SBV Bool Source # parseSMTModelResult :: Int -> ([([CV], CV)], CV) -> a0 =-> (a1 =-> (a2 =-> a3)) Source # castTypedSymbol :: forall (knd' :: SymbolKind) (knd :: SymbolKind). IsSymbolKind knd' => TypedSymbol knd (a0 =-> (a1 =-> (a2 =-> a3))) -> Maybe (TypedSymbol knd' (a0 =-> (a1 =-> (a2 =-> a3)))) Source # funcDummyConstraint :: SBVType (a0 =-> (a1 =-> (a2 =-> a3))) -> SBV Bool Source # | |
(SupportedNonFuncPrim a0, SupportedNonFuncPrim a1, SupportedNonFuncPrim a2) => SupportedPrim (a0 =-> (a1 =-> a2)) Source # | |
Defined in Grisette.Internal.SymPrim.TabularFun Methods primTypeRep :: TypeRep (a0 =-> (a1 =-> a2)) Source # sameCon :: (a0 =-> (a1 =-> a2)) -> (a0 =-> (a1 =-> a2)) -> Bool Source # hashConWithSalt :: Int -> (a0 =-> (a1 =-> a2)) -> Int Source # pformatCon :: (a0 =-> (a1 =-> a2)) -> String Source # defaultValue :: a0 =-> (a1 =-> a2) Source # pevalITETerm :: Term Bool -> Term (a0 =-> (a1 =-> a2)) -> Term (a0 =-> (a1 =-> a2)) -> Term (a0 =-> (a1 =-> a2)) Source # pevalEqTerm :: Term (a0 =-> (a1 =-> a2)) -> Term (a0 =-> (a1 =-> a2)) -> Term Bool Source # pevalDistinctTerm :: NonEmpty (Term (a0 =-> (a1 =-> a2))) -> Term Bool Source # conSBVTerm :: (a0 =-> (a1 =-> a2)) -> SBVType (a0 =-> (a1 =-> a2)) Source # symSBVName :: TypedSymbol 'AnyKind (a0 =-> (a1 =-> a2)) -> Int -> String Source # symSBVTerm :: SBVFreshMonad m => String -> m (SBVType (a0 =-> (a1 =-> a2))) Source # withPrim :: ((PrimConstraint (a0 =-> (a1 =-> a2)), SMTDefinable (SBVType (a0 =-> (a1 =-> a2))), Mergeable (SBVType (a0 =-> (a1 =-> a2))), Typeable (SBVType (a0 =-> (a1 =-> a2)))) => a) -> a Source # sbvIte :: SBV Bool -> SBVType (a0 =-> (a1 =-> a2)) -> SBVType (a0 =-> (a1 =-> a2)) -> SBVType (a0 =-> (a1 =-> a2)) Source # sbvEq :: SBVType (a0 =-> (a1 =-> a2)) -> SBVType (a0 =-> (a1 =-> a2)) -> SBV Bool Source # sbvDistinct :: NonEmpty (SBVType (a0 =-> (a1 =-> a2))) -> SBV Bool Source # parseSMTModelResult :: Int -> ([([CV], CV)], CV) -> a0 =-> (a1 =-> a2) Source # castTypedSymbol :: forall (knd' :: SymbolKind) (knd :: SymbolKind). IsSymbolKind knd' => TypedSymbol knd (a0 =-> (a1 =-> a2)) -> Maybe (TypedSymbol knd' (a0 =-> (a1 =-> a2))) Source # funcDummyConstraint :: SBVType (a0 =-> (a1 =-> a2)) -> SBV Bool Source # | |
(SupportedNonFuncPrim a0, SupportedNonFuncPrim a1) => SupportedPrim (a0 =-> a1) Source # | |
Defined in Grisette.Internal.SymPrim.TabularFun Methods primTypeRep :: TypeRep (a0 =-> a1) Source # sameCon :: (a0 =-> a1) -> (a0 =-> a1) -> Bool Source # hashConWithSalt :: Int -> (a0 =-> a1) -> Int Source # pformatCon :: (a0 =-> a1) -> String Source # defaultValue :: a0 =-> a1 Source # pevalITETerm :: Term Bool -> Term (a0 =-> a1) -> Term (a0 =-> a1) -> Term (a0 =-> a1) Source # pevalEqTerm :: Term (a0 =-> a1) -> Term (a0 =-> a1) -> Term Bool Source # pevalDistinctTerm :: NonEmpty (Term (a0 =-> a1)) -> Term Bool Source # conSBVTerm :: (a0 =-> a1) -> SBVType (a0 =-> a1) Source # symSBVName :: TypedSymbol 'AnyKind (a0 =-> a1) -> Int -> String Source # symSBVTerm :: SBVFreshMonad m => String -> m (SBVType (a0 =-> a1)) Source # withPrim :: ((PrimConstraint (a0 =-> a1), SMTDefinable (SBVType (a0 =-> a1)), Mergeable (SBVType (a0 =-> a1)), Typeable (SBVType (a0 =-> a1))) => a) -> a Source # sbvIte :: SBV Bool -> SBVType (a0 =-> a1) -> SBVType (a0 =-> a1) -> SBVType (a0 =-> a1) Source # sbvEq :: SBVType (a0 =-> a1) -> SBVType (a0 =-> a1) -> SBV Bool Source # sbvDistinct :: NonEmpty (SBVType (a0 =-> a1)) -> SBV Bool Source # parseSMTModelResult :: Int -> ([([CV], CV)], CV) -> a0 =-> a1 Source # castTypedSymbol :: forall (knd' :: SymbolKind) (knd :: SymbolKind). IsSymbolKind knd' => TypedSymbol knd (a0 =-> a1) -> Maybe (TypedSymbol knd' (a0 =-> a1)) Source # funcDummyConstraint :: SBVType (a0 =-> a1) -> SBV Bool Source # |
class SupportedPrim con => SymRep con Source #
Type family to resolve the symbolic type associated with a concrete type.
Instances
SymRep AlgReal Source # | |||||
Defined in Grisette.Internal.SymPrim.SymAlgReal Associated Types
| |||||
SymRep FPRoundingMode Source # | |||||
Defined in Grisette.Internal.SymPrim.SymFP Associated Types
| |||||
SymRep Integer Source # | |||||
Defined in Grisette.Internal.SymPrim.SymInteger Associated Types
| |||||
SymRep Bool Source # | |||||
Defined in Grisette.Internal.SymPrim.SymBool | |||||
(KnownNat n, 1 <= n) => SymRep (IntN n) Source # | |||||
Defined in Grisette.Internal.SymPrim.SymBV | |||||
(KnownNat n, 1 <= n) => SymRep (WordN n) Source # | |||||
Defined in Grisette.Internal.SymPrim.SymBV | |||||
ValidFP eb sb => SymRep (FP eb sb) Source # | |||||
Defined in Grisette.Internal.SymPrim.SymFP | |||||
(SymRep ca, SymRep cb, SupportedPrim (ca --> cb)) => SymRep (ca --> cb) Source # | |||||
Defined in Grisette.Internal.SymPrim.SymGeneralFun | |||||
(SymRep a, SymRep b, SupportedPrim (a =-> b)) => SymRep (a =-> b) Source # | |||||
Defined in Grisette.Internal.SymPrim.SymTabularFun |
Type family to resolve the concrete type associated with a symbolic type.
Instances
ConRep SymAlgReal Source # | |||||
Defined in Grisette.Internal.SymPrim.SymAlgReal Associated Types
| |||||
ConRep SymBool Source # | |||||
Defined in Grisette.Internal.SymPrim.SymBool | |||||
ConRep SymFPRoundingMode Source # | |||||
Defined in Grisette.Internal.SymPrim.SymFP Associated Types
| |||||
ConRep SymInteger Source # | |||||
Defined in Grisette.Internal.SymPrim.SymInteger Associated Types
| |||||
ConRep a => ConRep (AsKey a) Source # | |||||
Defined in Grisette.Internal.Core.Data.Class.AsKey | |||||
(KnownNat n, 1 <= n) => ConRep (SymIntN n) Source # | |||||
Defined in Grisette.Internal.SymPrim.SymBV | |||||
(KnownNat n, 1 <= n) => ConRep (SymWordN n) Source # | |||||
Defined in Grisette.Internal.SymPrim.SymBV | |||||
ConRep (SymFP eb sb) Source # | |||||
Defined in Grisette.Internal.SymPrim.SymFP | |||||
(ConRep a, ConRep b) => ConRep (a -~> b) Source # | |||||
Defined in Grisette.Internal.SymPrim.SymGeneralFun | |||||
(ConRep a, ConRep b) => ConRep (a =~> b) Source # | |||||
Defined in Grisette.Internal.SymPrim.SymTabularFun |
class (ConRep sym, SymRep con, sym ~ SymType con, con ~ ConType sym) => LinkedRep con sym | con -> sym, sym -> con where Source #
One-to-one mapping between symbolic types and concrete types.
Instances
LinkedRep AlgReal SymAlgReal Source # | |
Defined in Grisette.Internal.SymPrim.SymAlgReal Methods underlyingTerm :: SymAlgReal -> Term AlgReal Source # | |
LinkedRep FPRoundingMode SymFPRoundingMode Source # | |
Defined in Grisette.Internal.SymPrim.SymFP Methods underlyingTerm :: SymFPRoundingMode -> Term FPRoundingMode Source # wrapTerm :: Term FPRoundingMode -> SymFPRoundingMode Source # | |
LinkedRep Integer SymInteger Source # | |
Defined in Grisette.Internal.SymPrim.SymInteger Methods underlyingTerm :: SymInteger -> Term Integer Source # | |
LinkedRep Bool SymBool Source # | |
(KnownNat n, 1 <= n) => LinkedRep (IntN n) (SymIntN n) Source # | |
(KnownNat n, 1 <= n) => LinkedRep (WordN n) (SymWordN n) Source # | |
ValidFP eb sb => LinkedRep (FP eb sb) (SymFP eb sb) Source # | |
(LinkedRep ca sa, LinkedRep cb sb, SupportedPrim cb, SupportedPrim (ca --> cb), SupportedNonFuncPrim ca) => LinkedRep (ca --> cb) (sa -~> sb) Source # | |
(LinkedRep ca sa, LinkedRep cb sb, SupportedPrim (ca =-> cb), SupportedNonFuncPrim ca) => LinkedRep (ca =-> cb) (sa =~> sb) Source # | |
Extract symbolic values
Some symbolic value with LinkedRep
constraint.
class AllSyms a where Source #
Extract all symbolic primitive values that are represented as SMT terms.
>>>
allSyms (["a" + 1 :: SymInteger, -"b"], "c" :: SymBool)
[(+ 1 a),(- b),c]
This is usually used for getting a statistical summary of the size of
a symbolic value with allSymsSize
.
Note: This type class can be derived for algebraic data types. You may
need the DerivingVia
and DerivingStrategies
extenstions.
data X = ... deriving Generic deriving AllSyms via (Default X)
Methods
allSymsS :: a -> [SomeSym] -> [SomeSym] Source #
Convert a value to a list of symbolic primitive values. It should prepend to an existing list of symbolic primitive values.
allSyms :: a -> [SomeSym] Source #
Specialized allSymsS
that prepends to an empty list.
Instances
AllSyms ByteString Source # | |
AllSyms Int16 Source # | |
AllSyms Int32 Source # | |
AllSyms Int64 Source # | |
AllSyms Int8 Source # | |
AllSyms Word16 Source # | |
AllSyms Word32 Source # | |
AllSyms Word64 Source # | |
AllSyms Word8 Source # | |
AllSyms AssertionError Source # | |
AllSyms VerificationConditions Source # | |
AllSyms AlgReal Source # | |
AllSyms FPRoundingMode Source # | |
AllSyms SymAlgReal Source # | |
Defined in Grisette.Internal.SymPrim.SymAlgReal | |
AllSyms SymBool Source # | |
AllSyms SymFPRoundingMode Source # | |
Defined in Grisette.Internal.SymPrim.SymFP | |
AllSyms SymInteger Source # | |
Defined in Grisette.Internal.SymPrim.SymInteger | |
AllSyms Text Source # | |
AllSyms Integer Source # | |
AllSyms () Source # | |
AllSyms Bool Source # | |
AllSyms Char Source # | |
AllSyms Double Source # | |
AllSyms Float Source # | |
AllSyms Int Source # | |
AllSyms Word Source # | |
(Generic a, GAllSyms Arity0 (Rep a)) => AllSyms (Default a) Source # | |
AllSyms a => AllSyms (Identity a) Source # | |
AllSyms a => AllSyms (Ratio a) Source # | |
AllSyms a => AllSyms (AsKey a) Source # | |
AllSyms a => AllSyms (Union a) Source # | |
AllSyms a => AllSyms (UnionBase a) Source # | |
(KnownNat n, 1 <= n) => AllSyms (IntN n) Source # | |
(KnownNat n, 1 <= n) => AllSyms (WordN n) Source # | |
(forall (n :: Nat). (KnownNat n, 1 <= n) => AllSyms (bv n), MaySomeBV bv) => AllSyms (SomeBV bv) Source # | |
(KnownNat n, 1 <= n) => AllSyms (SymIntN n) Source # | |
(KnownNat n, 1 <= n) => AllSyms (SymWordN n) Source # | |
AllSyms a => AllSyms (Maybe a) Source # | |
AllSyms a => AllSyms [a] Source # | |
(Generic1 f, GAllSyms Arity1 (Rep1 f), AllSyms a) => AllSyms (Default1 f a) Source # | |
(AllSyms a1, AllSyms a2) => AllSyms (Either a1 a2) Source # | |
AllSyms (Proxy a) Source # | |
(AllSyms1 f, AllSyms a) => AllSyms (AsKey1 f a) Source # | |
ValidFP eb sb => AllSyms (FP eb sb) Source # | |
ValidFP eb sb => AllSyms (SymFP eb sb) Source # | |
AllSyms (sa -~> sb) Source # | |
AllSyms (sa =~> sb) Source # | |
(AllSyms1 a1, AllSyms a2) => AllSyms (MaybeT a1 a2) Source # | |
(AllSyms a1, AllSyms a2) => AllSyms (a1, a2) Source # | |
(AllSyms a1, AllSyms1 a2, AllSyms a3) => AllSyms (ExceptT a1 a2 a3) Source # | |
(AllSyms1 m, AllSyms a) => AllSyms (IdentityT m a) Source # | |
(AllSyms a1, AllSyms1 a2, AllSyms a3) => AllSyms (WriterT a1 a2 a3) Source # | |
(AllSyms a1, AllSyms1 a2, AllSyms a3) => AllSyms (WriterT a1 a2 a3) Source # | |
(AllSyms a1, AllSyms a2, AllSyms a3) => AllSyms (a1, a2, a3) Source # | |
(AllSyms (f a), AllSyms (g a)) => AllSyms (Sum f g a) Source # | |
(AllSyms a1, AllSyms a2, AllSyms a3, AllSyms a4) => AllSyms (a1, a2, a3, a4) Source # | |
(AllSyms a1, AllSyms a2, AllSyms a3, AllSyms a4, AllSyms a5) => AllSyms (a1, a2, a3, a4, a5) Source # | |
(AllSyms a1, AllSyms a2, AllSyms a3, AllSyms a4, AllSyms a5, AllSyms a6) => AllSyms (a1, a2, a3, a4, a5, a6) Source # | |
(AllSyms a1, AllSyms a2, AllSyms a3, AllSyms a4, AllSyms a5, AllSyms a6, AllSyms a7) => AllSyms (a1, a2, a3, a4, a5, a6, a7) Source # | |
(AllSyms a1, AllSyms a2, AllSyms a3, AllSyms a4, AllSyms a5, AllSyms a6, AllSyms a7, AllSyms a8) => AllSyms (a1, a2, a3, a4, a5, a6, a7, a8) Source # | |
(AllSyms a1, AllSyms a2, AllSyms a3, AllSyms a4, AllSyms a5, AllSyms a6, AllSyms a7, AllSyms a8, AllSyms a9) => AllSyms (a1, a2, a3, a4, a5, a6, a7, a8, a9) Source # | |
(AllSyms a1, AllSyms a2, AllSyms a3, AllSyms a4, AllSyms a5, AllSyms a6, AllSyms a7, AllSyms a8, AllSyms a9, AllSyms a10) => AllSyms (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) Source # | |
(AllSyms a1, AllSyms a2, AllSyms a3, AllSyms a4, AllSyms a5, AllSyms a6, AllSyms a7, AllSyms a8, AllSyms a9, AllSyms a10, AllSyms a11) => AllSyms (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11) Source # | |
(AllSyms a1, AllSyms a2, AllSyms a3, AllSyms a4, AllSyms a5, AllSyms a6, AllSyms a7, AllSyms a8, AllSyms a9, AllSyms a10, AllSyms a11, AllSyms a12) => AllSyms (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12) Source # | |
(AllSyms a1, AllSyms a2, AllSyms a3, AllSyms a4, AllSyms a5, AllSyms a6, AllSyms a7, AllSyms a8, AllSyms a9, AllSyms a10, AllSyms a11, AllSyms a12, AllSyms a13) => AllSyms (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13) Source # | |
(AllSyms a1, AllSyms a2, AllSyms a3, AllSyms a4, AllSyms a5, AllSyms a6, AllSyms a7, AllSyms a8, AllSyms a9, AllSyms a10, AllSyms a11, AllSyms a12, AllSyms a13, AllSyms a14) => AllSyms (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14) Source # | |
(AllSyms a1, AllSyms a2, AllSyms a3, AllSyms a4, AllSyms a5, AllSyms a6, AllSyms a7, AllSyms a8, AllSyms a9, AllSyms a10, AllSyms a11, AllSyms a12, AllSyms a13, AllSyms a14, AllSyms a15) => AllSyms (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15) Source # | |
class (forall a. AllSyms a => AllSyms (f a)) => AllSyms1 (f :: Type -> Type) where Source #
Lifting of the AllSyms
class to unary type constructors.
Methods
liftAllSymsS :: (a -> [SomeSym] -> [SomeSym]) -> f a -> [SomeSym] -> [SomeSym] Source #
Lift the allSymsS
function to unary type constructors.
Instances
AllSyms1 Identity Source # | |
AllSyms1 Union Source # | |
AllSyms1 UnionBase Source # | |
AllSyms1 Maybe Source # | |
AllSyms1 [] Source # | |
(Generic1 f, GAllSyms Arity1 (Rep1 f)) => AllSyms1 (Default1 f) Source # | |
AllSyms a => AllSyms1 (Either a) Source # | |
AllSyms1 (Proxy :: Type -> Type) Source # | |
AllSyms1 f => AllSyms1 (AsKey1 f) Source # | |
AllSyms1 a => AllSyms1 (MaybeT a) Source # | |
AllSyms a => AllSyms1 ((,) a) Source # | |
(AllSyms a1, AllSyms1 a2) => AllSyms1 (ExceptT a1 a2) Source # | |
AllSyms1 m => AllSyms1 (IdentityT m) Source # | |
(AllSyms a1, AllSyms1 a2) => AllSyms1 (WriterT a1 a2) Source # | |
(AllSyms a1, AllSyms1 a2) => AllSyms1 (WriterT a1 a2) Source # | |
(AllSyms a1, AllSyms a2) => AllSyms1 ((,,) a1 a2) Source # | |
(AllSyms1 f, AllSyms1 g) => AllSyms1 (Sum f g) Source # | |
(AllSyms a1, AllSyms a2, AllSyms a3) => AllSyms1 ((,,,) a1 a2 a3) Source # | |
(AllSyms a1, AllSyms a2, AllSyms a3, AllSyms a4) => AllSyms1 ((,,,,) a1 a2 a3 a4) Source # | |
(AllSyms a1, AllSyms a2, AllSyms a3, AllSyms a4, AllSyms a5) => AllSyms1 ((,,,,,) a1 a2 a3 a4 a5) Source # | |
(AllSyms a1, AllSyms a2, AllSyms a3, AllSyms a4, AllSyms a5, AllSyms a6) => AllSyms1 ((,,,,,,) a1 a2 a3 a4 a5 a6) Source # | |
(AllSyms a1, AllSyms a2, AllSyms a3, AllSyms a4, AllSyms a5, AllSyms a6, AllSyms a7) => AllSyms1 ((,,,,,,,) a1 a2 a3 a4 a5 a6 a7) Source # | |
(AllSyms a1, AllSyms a2, AllSyms a3, AllSyms a4, AllSyms a5, AllSyms a6, AllSyms a7, AllSyms a8) => AllSyms1 ((,,,,,,,,) a1 a2 a3 a4 a5 a6 a7 a8) Source # | |
(AllSyms a1, AllSyms a2, AllSyms a3, AllSyms a4, AllSyms a5, AllSyms a6, AllSyms a7, AllSyms a8, AllSyms a9) => AllSyms1 ((,,,,,,,,,) a1 a2 a3 a4 a5 a6 a7 a8 a9) Source # | |
(AllSyms a1, AllSyms a2, AllSyms a3, AllSyms a4, AllSyms a5, AllSyms a6, AllSyms a7, AllSyms a8, AllSyms a9, AllSyms a10) => AllSyms1 ((,,,,,,,,,,) a1 a2 a3 a4 a5 a6 a7 a8 a9 a10) Source # | |
(AllSyms a1, AllSyms a2, AllSyms a3, AllSyms a4, AllSyms a5, AllSyms a6, AllSyms a7, AllSyms a8, AllSyms a9, AllSyms a10, AllSyms a11) => AllSyms1 ((,,,,,,,,,,,) a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11) Source # | |
(AllSyms a1, AllSyms a2, AllSyms a3, AllSyms a4, AllSyms a5, AllSyms a6, AllSyms a7, AllSyms a8, AllSyms a9, AllSyms a10, AllSyms a11, AllSyms a12) => AllSyms1 ((,,,,,,,,,,,,) a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12) Source # | |
(AllSyms a1, AllSyms a2, AllSyms a3, AllSyms a4, AllSyms a5, AllSyms a6, AllSyms a7, AllSyms a8, AllSyms a9, AllSyms a10, AllSyms a11, AllSyms a12, AllSyms a13) => AllSyms1 ((,,,,,,,,,,,,,) a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13) Source # | |
(AllSyms a1, AllSyms a2, AllSyms a3, AllSyms a4, AllSyms a5, AllSyms a6, AllSyms a7, AllSyms a8, AllSyms a9, AllSyms a10, AllSyms a11, AllSyms a12, AllSyms a13, AllSyms a14) => AllSyms1 ((,,,,,,,,,,,,,,) a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14) Source # | |
allSymsS1 :: (AllSyms1 f, AllSyms a) => f a -> [SomeSym] -> [SomeSym] Source #
Lift the standard allSymsS
function to unary type constructors.
class (forall a. AllSyms a => AllSyms1 (f a)) => AllSyms2 (f :: Type -> Type -> Type) where Source #
Lifting of the AllSyms
class to binary type constructors.
Methods
liftAllSymsS2 :: (a -> [SomeSym] -> [SomeSym]) -> (b -> [SomeSym] -> [SomeSym]) -> f a b -> [SomeSym] -> [SomeSym] Source #
Lift the allSymsS
function to binary type constructors.
Instances
AllSyms2 Either Source # | |
AllSyms2 (,) Source # | |
AllSyms a => AllSyms2 ((,,) a) Source # | |
(AllSyms a1, AllSyms a2) => AllSyms2 ((,,,) a1 a2) Source # | |
(AllSyms a1, AllSyms a2, AllSyms a3) => AllSyms2 ((,,,,) a1 a2 a3) Source # | |
(AllSyms a1, AllSyms a2, AllSyms a3, AllSyms a4) => AllSyms2 ((,,,,,) a1 a2 a3 a4) Source # | |
(AllSyms a1, AllSyms a2, AllSyms a3, AllSyms a4, AllSyms a5) => AllSyms2 ((,,,,,,) a1 a2 a3 a4 a5) Source # | |
(AllSyms a1, AllSyms a2, AllSyms a3, AllSyms a4, AllSyms a5, AllSyms a6) => AllSyms2 ((,,,,,,,) a1 a2 a3 a4 a5 a6) Source # | |
(AllSyms a1, AllSyms a2, AllSyms a3, AllSyms a4, AllSyms a5, AllSyms a6, AllSyms a7) => AllSyms2 ((,,,,,,,,) a1 a2 a3 a4 a5 a6 a7) Source # | |
(AllSyms a1, AllSyms a2, AllSyms a3, AllSyms a4, AllSyms a5, AllSyms a6, AllSyms a7, AllSyms a8) => AllSyms2 ((,,,,,,,,,) a1 a2 a3 a4 a5 a6 a7 a8) Source # | |
(AllSyms a1, AllSyms a2, AllSyms a3, AllSyms a4, AllSyms a5, AllSyms a6, AllSyms a7, AllSyms a8, AllSyms a9) => AllSyms2 ((,,,,,,,,,,) a1 a2 a3 a4 a5 a6 a7 a8 a9) Source # | |
(AllSyms a1, AllSyms a2, AllSyms a3, AllSyms a4, AllSyms a5, AllSyms a6, AllSyms a7, AllSyms a8, AllSyms a9, AllSyms a10) => AllSyms2 ((,,,,,,,,,,,) a1 a2 a3 a4 a5 a6 a7 a8 a9 a10) Source # | |
(AllSyms a1, AllSyms a2, AllSyms a3, AllSyms a4, AllSyms a5, AllSyms a6, AllSyms a7, AllSyms a8, AllSyms a9, AllSyms a10, AllSyms a11) => AllSyms2 ((,,,,,,,,,,,,) a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11) Source # | |
(AllSyms a1, AllSyms a2, AllSyms a3, AllSyms a4, AllSyms a5, AllSyms a6, AllSyms a7, AllSyms a8, AllSyms a9, AllSyms a10, AllSyms a11, AllSyms a12) => AllSyms2 ((,,,,,,,,,,,,,) a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12) Source # | |
(AllSyms a1, AllSyms a2, AllSyms a3, AllSyms a4, AllSyms a5, AllSyms a6, AllSyms a7, AllSyms a8, AllSyms a9, AllSyms a10, AllSyms a11, AllSyms a12, AllSyms a13) => AllSyms2 ((,,,,,,,,,,,,,,) a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13) Source # | |
allSymsS2 :: (AllSyms2 f, AllSyms a, AllSyms b) => f a b -> [SomeSym] -> [SomeSym] Source #
Lift the standard allSymsS
function to binary type constructors.
allSymsSize :: AllSyms a => a -> Int Source #
Get the total size of symbolic terms in a value. Duplicate sub-terms are counted for only once.
>>>
allSymsSize ("a" :: SymInteger, "a" + "b" :: SymInteger, ("a" + "b") * "c" :: SymInteger)
5
The 5 terms are a
, b
, (+ a b)
, c
, and (* (+ a b) c)
.
symSize :: LinkedRep con sym => sym -> Int Source #
Get the size of a symbolic term. Duplicate sub-terms are counted for only once.
>>>
symSize (1 :: SymInteger)
1>>>
symSize ("a" :: SymInteger)
1>>>
symSize ("a" + 1 :: SymInteger)
3>>>
symSize (("a" + 1) * ("a" + 1) :: SymInteger)
4
symsSize :: LinkedRep con sym => [sym] -> Int Source #
Get the sum of the sizes of a list of symbolic terms. Duplicate sub-terms are counted for only once.
>>>
symsSize [1, "a" :: SymInteger, "a" + 1 :: SymInteger]
3
Generic AllSyms
data family AllSymsArgs arity a Source #
The arguments to the generic AllSyms
function.
Instances
data AllSymsArgs Arity0 _ Source # | |
newtype AllSymsArgs Arity1 a Source # | |
class GAllSyms arity (f :: Type -> Type) where Source #
The class of types that can generically extract all symbolic primitives.
Instances
GAllSyms Arity1 Par1 Source # | |
GAllSyms arity (U1 :: Type -> Type) Source # | |
GAllSyms arity (V1 :: Type -> Type) Source # | |
AllSyms1 f => GAllSyms Arity1 (Rec1 f) Source # | |
(GAllSyms arity a, GAllSyms arity b) => GAllSyms arity (a :*: b) Source # | |
(GAllSyms arity a, GAllSyms arity b) => GAllSyms arity (a :+: b) Source # | |
AllSyms c => GAllSyms arity (K1 i c :: Type -> Type) Source # | |
(AllSyms1 f, GAllSyms Arity1 g) => GAllSyms Arity1 (f :.: g) Source # | |
GAllSyms arity a => GAllSyms arity (M1 i c a) Source # | |
genericAllSymsS :: (Generic a, GAllSyms Arity0 (Rep a)) => a -> [SomeSym] -> [SomeSym] Source #
Generic allSymsS
function.
genericLiftAllSymsS :: (Generic1 f, GAllSyms Arity1 (Rep1 f)) => (a -> [SomeSym] -> [SomeSym]) -> f a -> [SomeSym] -> [SomeSym] Source #
Generic liftAllSymsS
function.
Symbolic constant sets and models
data SymbolKind Source #
The kind of a symbol.
All symbols are AnyKind
, and all symbols other than general/tabular
functions are ConstantKind
.
Constructors
ConstantKind | |
AnyKind |
class IsSymbolKind (knd :: SymbolKind) where Source #
Decision procedure for symbol kinds.
Associated Types
type SymbolKindConstraint (knd :: SymbolKind) :: Type -> Constraint Source #
Methods
decideSymbolKind :: Either (knd :~~: 'ConstantKind) (knd :~~: 'AnyKind) Source #
withSymbolKindConstraint :: TypedSymbol knd t -> (SymbolKindConstraint knd t => a) -> a Source #
Instances
IsSymbolKind 'AnyKind Source # | |||||
Defined in Grisette.Internal.SymPrim.Prim.Internal.Term Associated Types
Methods decideSymbolKind :: Either ('AnyKind :~~: 'ConstantKind) ('AnyKind :~~: 'AnyKind) Source # withSymbolKindConstraint :: TypedSymbol 'AnyKind t -> (SymbolKindConstraint 'AnyKind t => a) -> a Source # | |||||
IsSymbolKind 'ConstantKind Source # | |||||
Defined in Grisette.Internal.SymPrim.Prim.Internal.Term Associated Types
Methods decideSymbolKind :: Either ('ConstantKind :~~: 'ConstantKind) ('ConstantKind :~~: 'AnyKind) Source # withSymbolKindConstraint :: TypedSymbol 'ConstantKind t -> (SymbolKindConstraint 'ConstantKind t => a) -> a Source # |
data TypedSymbol (knd :: SymbolKind) t where Source #
A typed symbol is a symbol that is associated with a type. Note that the same symbol bodies with different types are considered different symbols and can coexist in a term.
Simple symbols can be created with the OverloadedStrings
extension:
>>>
"a" :: TypedSymbol 'AnyKind Bool
a :: Bool
Constructors
TypedSymbol | |
Fields
|
Instances
ModelOps Model AnySymbolSet TypedAnySymbol Source # | |
Defined in Grisette.Internal.SymPrim.Prim.Model Methods emptyModel :: Model Source # isEmptyModel :: Model -> Bool Source # modelContains :: TypedAnySymbol a -> Model -> Bool Source # valueOf :: TypedAnySymbol t -> Model -> Maybe t Source # insertValue :: TypedAnySymbol t -> t -> Model -> Model Source # exceptFor :: AnySymbolSet -> Model -> Model Source # exceptFor' :: TypedAnySymbol t -> Model -> Model Source # restrictTo :: AnySymbolSet -> Model -> Model Source # | |
Lift (TypedSymbol knd t :: Type) Source # | |
Defined in Grisette.Internal.SymPrim.Prim.Internal.Term Methods lift :: Quote m => TypedSymbol knd t -> m Exp # liftTyped :: forall (m :: Type -> Type). Quote m => TypedSymbol knd t -> Code m (TypedSymbol knd t) # | |
SymbolSetOps (SymbolSet knd) (TypedSymbol knd) Source # | |
Defined in Grisette.Internal.SymPrim.Prim.Model Methods emptySet :: SymbolSet knd Source # isEmptySet :: SymbolSet knd -> Bool Source # containsSymbol :: TypedSymbol knd a -> SymbolSet knd -> Bool Source # insertSymbol :: TypedSymbol knd a -> SymbolSet knd -> SymbolSet knd Source # intersectionSet :: SymbolSet knd -> SymbolSet knd -> SymbolSet knd Source # unionSet :: SymbolSet knd -> SymbolSet knd -> SymbolSet knd Source # differenceSet :: SymbolSet knd -> SymbolSet knd -> SymbolSet knd Source # | |
SymbolSetRep (SomeTypedSymbol knd) (SymbolSet knd) (TypedSymbol knd) Source # | |
Defined in Grisette.Internal.SymPrim.Prim.Model Methods buildSymbolSet :: SomeTypedSymbol knd -> SymbolSet knd Source # | |
SymbolSetRep [SomeTypedSymbol knd] (SymbolSet knd) (TypedSymbol knd) Source # | |
Defined in Grisette.Internal.SymPrim.Prim.Model Methods buildSymbolSet :: [SomeTypedSymbol knd] -> SymbolSet knd Source # | |
SymbolSetRep [TypedSymbol knd t] (SymbolSet knd) (TypedSymbol knd) Source # | |
Defined in Grisette.Internal.SymPrim.Prim.Model Methods buildSymbolSet :: [TypedSymbol knd t] -> SymbolSet knd Source # | |
(IsSymbolKind knd, Typeable a) => Binary (TypedSymbol knd a) Source # | |
Defined in Grisette.Internal.SymPrim.Prim.Internal.Serialize Methods put :: TypedSymbol knd a -> Put # get :: Get (TypedSymbol knd a) # putList :: [TypedSymbol knd a] -> Put # | |
(IsSymbolKind knd, Typeable a) => Serial (TypedSymbol knd a) Source # | |
Defined in Grisette.Internal.SymPrim.Prim.Internal.Serialize Methods serialize :: MonadPut m => TypedSymbol knd a -> m () # deserialize :: MonadGet m => m (TypedSymbol knd a) # | |
(IsSymbolKind knd, Typeable a) => Serialize (TypedSymbol knd a) Source # | |
NFData (TypedSymbol knd t) Source # | |
Defined in Grisette.Internal.SymPrim.Prim.Internal.Term Methods rnf :: TypedSymbol knd t -> () # | |
(SupportedPrim t, SymbolKindConstraint knd t, IsSymbolKind knd) => IsString (TypedSymbol knd t) Source # | |
Defined in Grisette.Internal.SymPrim.Prim.Internal.Term Methods fromString :: String -> TypedSymbol knd t # | |
Show (TypedSymbol knd t) Source # | |
Defined in Grisette.Internal.SymPrim.Prim.Internal.Term Methods showsPrec :: Int -> TypedSymbol knd t -> ShowS # show :: TypedSymbol knd t -> String # showList :: [TypedSymbol knd t] -> ShowS # | |
Eq (TypedSymbol knd t) Source # | |
Defined in Grisette.Internal.SymPrim.Prim.Internal.Term Methods (==) :: TypedSymbol knd t -> TypedSymbol knd t -> Bool # (/=) :: TypedSymbol knd t -> TypedSymbol knd t -> Bool # | |
Ord (TypedSymbol knd t) Source # | |
Defined in Grisette.Internal.SymPrim.Prim.Internal.Term Methods compare :: TypedSymbol knd t -> TypedSymbol knd t -> Ordering # (<) :: TypedSymbol knd t -> TypedSymbol knd t -> Bool # (<=) :: TypedSymbol knd t -> TypedSymbol knd t -> Bool # (>) :: TypedSymbol knd t -> TypedSymbol knd t -> Bool # (>=) :: TypedSymbol knd t -> TypedSymbol knd t -> Bool # max :: TypedSymbol knd t -> TypedSymbol knd t -> TypedSymbol knd t # min :: TypedSymbol knd t -> TypedSymbol knd t -> TypedSymbol knd t # | |
PPrint (TypedSymbol knd t) Source # | |
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint Methods pformat :: TypedSymbol knd t -> Doc ann Source # pformatPrec :: Int -> TypedSymbol knd t -> Doc ann Source # pformatList :: [TypedSymbol knd t] -> Doc ann Source # | |
Hashable (TypedSymbol knd t) Source # | |
Defined in Grisette.Internal.SymPrim.Prim.Internal.Term | |
SymbolSetRep (TypedSymbol knd t) (SymbolSet knd) (TypedSymbol knd) Source # | |
Defined in Grisette.Internal.SymPrim.Prim.Model Methods buildSymbolSet :: TypedSymbol knd t -> SymbolSet knd Source # | |
SymbolSetRep (TypedSymbol knd a, TypedSymbol knd b) (SymbolSet knd) (TypedSymbol knd) Source # | |
Defined in Grisette.Internal.SymPrim.Prim.Model Methods buildSymbolSet :: (TypedSymbol knd a, TypedSymbol knd b) -> SymbolSet knd Source # | |
SymbolSetRep (TypedSymbol knd a, TypedSymbol knd b, TypedSymbol knd c) (SymbolSet knd) (TypedSymbol knd) Source # | |
Defined in Grisette.Internal.SymPrim.Prim.Model Methods buildSymbolSet :: (TypedSymbol knd a, TypedSymbol knd b, TypedSymbol knd c) -> SymbolSet knd Source # | |
SymbolSetRep (TypedSymbol knd a, TypedSymbol knd b, TypedSymbol knd c, TypedSymbol knd d) (SymbolSet knd) (TypedSymbol knd) Source # | |
Defined in Grisette.Internal.SymPrim.Prim.Model Methods buildSymbolSet :: (TypedSymbol knd a, TypedSymbol knd b, TypedSymbol knd c, TypedSymbol knd d) -> SymbolSet knd Source # | |
SymbolSetRep (TypedSymbol knd a, TypedSymbol knd b, TypedSymbol knd c, TypedSymbol knd d, TypedSymbol knd e) (SymbolSet knd) (TypedSymbol knd) Source # | |
Defined in Grisette.Internal.SymPrim.Prim.Model Methods buildSymbolSet :: (TypedSymbol knd a, TypedSymbol knd b, TypedSymbol knd c, TypedSymbol knd d, TypedSymbol knd e) -> SymbolSet knd Source # | |
SymbolSetRep (TypedSymbol knd a, TypedSymbol knd b, TypedSymbol knd c, TypedSymbol knd d, TypedSymbol knd e, TypedSymbol knd f) (SymbolSet knd) (TypedSymbol knd) Source # | |
Defined in Grisette.Internal.SymPrim.Prim.Model Methods buildSymbolSet :: (TypedSymbol knd a, TypedSymbol knd b, TypedSymbol knd c, TypedSymbol knd d, TypedSymbol knd e, TypedSymbol knd f) -> SymbolSet knd Source # | |
SymbolSetRep (TypedSymbol knd a, TypedSymbol knd b, TypedSymbol knd c, TypedSymbol knd d, TypedSymbol knd e, TypedSymbol knd f, TypedSymbol knd g) (SymbolSet knd) (TypedSymbol knd) Source # | |
Defined in Grisette.Internal.SymPrim.Prim.Model Methods buildSymbolSet :: (TypedSymbol knd a, TypedSymbol knd b, TypedSymbol knd c, TypedSymbol knd d, TypedSymbol knd e, TypedSymbol knd f, TypedSymbol knd g) -> SymbolSet knd Source # | |
SymbolSetRep (TypedSymbol knd a, TypedSymbol knd b, TypedSymbol knd c, TypedSymbol knd d, TypedSymbol knd e, TypedSymbol knd f, TypedSymbol knd g, TypedSymbol knd h) (SymbolSet knd) (TypedSymbol knd) Source # | |
Defined in Grisette.Internal.SymPrim.Prim.Model Methods buildSymbolSet :: (TypedSymbol knd a, TypedSymbol knd b, TypedSymbol knd c, TypedSymbol knd d, TypedSymbol knd e, TypedSymbol knd f, TypedSymbol knd g, TypedSymbol knd h) -> SymbolSet knd Source # |
typedAnySymbol :: SupportedPrim t => Symbol -> TypedSymbol 'AnyKind t Source #
Create a typed symbol with any kinds.
type TypedAnySymbol = TypedSymbol 'AnyKind Source #
Any symbol
typedConstantSymbol :: SupportedNonFuncPrim t => Symbol -> TypedSymbol 'ConstantKind t Source #
Create a typed symbol with constant kinds.
type TypedConstantSymbol = TypedSymbol 'ConstantKind Source #
Constant symbol
data SomeTypedSymbol (knd :: SymbolKind) where Source #
A non-indexed symbol. Type information are checked at runtime.
Constructors
SomeTypedSymbol :: forall (knd :: SymbolKind) t. TypedSymbol knd t -> SomeTypedSymbol knd |
Instances
Lift (SomeTypedSymbol knd :: Type) Source # | |
Defined in Grisette.Internal.SymPrim.Prim.Internal.Term Methods lift :: Quote m => SomeTypedSymbol knd -> m Exp # liftTyped :: forall (m :: Type -> Type). Quote m => SomeTypedSymbol knd -> Code m (SomeTypedSymbol knd) # | |
IsSymbolKind knd => Binary (SomeTypedSymbol knd) Source # | |
Defined in Grisette.Internal.SymPrim.Prim.Internal.Serialize Methods put :: SomeTypedSymbol knd -> Put # get :: Get (SomeTypedSymbol knd) # putList :: [SomeTypedSymbol knd] -> Put # | |
IsSymbolKind knd => Serial (SomeTypedSymbol knd) Source # | |
Defined in Grisette.Internal.SymPrim.Prim.Internal.Serialize Methods serialize :: MonadPut m => SomeTypedSymbol knd -> m () # deserialize :: MonadGet m => m (SomeTypedSymbol knd) # | |
IsSymbolKind knd => Serialize (SomeTypedSymbol knd) Source # | |
NFData (SomeTypedSymbol knd) Source # | |
Defined in Grisette.Internal.SymPrim.Prim.Internal.Term Methods rnf :: SomeTypedSymbol knd -> () # | |
Show (SomeTypedSymbol knd) Source # | |
Defined in Grisette.Internal.SymPrim.Prim.Internal.Term Methods showsPrec :: Int -> SomeTypedSymbol knd -> ShowS # show :: SomeTypedSymbol knd -> String # showList :: [SomeTypedSymbol knd] -> ShowS # | |
Eq (SomeTypedSymbol knd) Source # | |
Defined in Grisette.Internal.SymPrim.Prim.Internal.Term Methods (==) :: SomeTypedSymbol knd -> SomeTypedSymbol knd -> Bool # (/=) :: SomeTypedSymbol knd -> SomeTypedSymbol knd -> Bool # | |
Ord (SomeTypedSymbol knd) Source # | |
Defined in Grisette.Internal.SymPrim.Prim.Internal.Term Methods compare :: SomeTypedSymbol knd -> SomeTypedSymbol knd -> Ordering # (<) :: SomeTypedSymbol knd -> SomeTypedSymbol knd -> Bool # (<=) :: SomeTypedSymbol knd -> SomeTypedSymbol knd -> Bool # (>) :: SomeTypedSymbol knd -> SomeTypedSymbol knd -> Bool # (>=) :: SomeTypedSymbol knd -> SomeTypedSymbol knd -> Bool # max :: SomeTypedSymbol knd -> SomeTypedSymbol knd -> SomeTypedSymbol knd # min :: SomeTypedSymbol knd -> SomeTypedSymbol knd -> SomeTypedSymbol knd # | |
PPrint (SomeTypedSymbol knd) Source # | |
Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint Methods pformat :: SomeTypedSymbol knd -> Doc ann Source # pformatPrec :: Int -> SomeTypedSymbol knd -> Doc ann Source # pformatList :: [SomeTypedSymbol knd] -> Doc ann Source # | |
Hashable (SomeTypedSymbol knd) Source # | |
Defined in Grisette.Internal.SymPrim.Prim.Internal.Term | |
SymbolSetRep (SomeTypedSymbol knd) (SymbolSet knd) (TypedSymbol knd) Source # | |
Defined in Grisette.Internal.SymPrim.Prim.Model Methods buildSymbolSet :: SomeTypedSymbol knd -> SymbolSet knd Source # | |
SymbolSetRep [SomeTypedSymbol knd] (SymbolSet knd) (TypedSymbol knd) Source # | |
Defined in Grisette.Internal.SymPrim.Prim.Model Methods buildSymbolSet :: [SomeTypedSymbol knd] -> SymbolSet knd Source # |
type SomeTypedAnySymbol = SomeTypedSymbol 'AnyKind Source #
Non-indexed any symbol
type SomeTypedConstantSymbol = SomeTypedSymbol 'ConstantKind Source #
Non-indexed constant symbol
data SymbolSet (knd :: SymbolKind) Source #
Set of symbols.
Check SymbolSetOps
for operations, and
SymbolSetRep
for manual constructions.
Instances
ModelOps Model AnySymbolSet TypedAnySymbol Source # | |||||
Defined in Grisette.Internal.SymPrim.Prim.Model Methods emptyModel :: Model Source # isEmptyModel :: Model -> Bool Source # modelContains :: TypedAnySymbol a -> Model -> Bool Source # valueOf :: TypedAnySymbol t -> Model -> Maybe t Source # insertValue :: TypedAnySymbol t -> t -> Model -> Model Source # exceptFor :: AnySymbolSet -> Model -> Model Source # exceptFor' :: TypedAnySymbol t -> Model -> Model Source # restrictTo :: AnySymbolSet -> Model -> Model Source # | |||||
IsSymbolKind knd => Binary (SymbolSet knd) Source # | |||||
IsSymbolKind knd => Serial (SymbolSet knd) Source # | |||||
Defined in Grisette.Internal.SymPrim.Prim.Model | |||||
IsSymbolKind knd => Serialize (SymbolSet knd) Source # | |||||
Monoid (SymbolSet knd) Source # | |||||
Semigroup (SymbolSet knd) Source # | |||||
Generic (SymbolSet knd) Source # | |||||
Defined in Grisette.Internal.SymPrim.Prim.Model Associated Types
| |||||
Show (SymbolSet knd) Source # | |||||
Eq (SymbolSet knd) Source # | |||||
PPrint (SymbolSet knd) Source # | |||||
Hashable (SymbolSet knd) Source # | |||||
Defined in Grisette.Internal.SymPrim.Prim.Model | |||||
SymbolSetOps (SymbolSet knd) (TypedSymbol knd) Source # | |||||
Defined in Grisette.Internal.SymPrim.Prim.Model Methods emptySet :: SymbolSet knd Source # isEmptySet :: SymbolSet knd -> Bool Source # containsSymbol :: TypedSymbol knd a -> SymbolSet knd -> Bool Source # insertSymbol :: TypedSymbol knd a -> SymbolSet knd -> SymbolSet knd Source # intersectionSet :: SymbolSet knd -> SymbolSet knd -> SymbolSet knd Source # unionSet :: SymbolSet knd -> SymbolSet knd -> SymbolSet knd Source # differenceSet :: SymbolSet knd -> SymbolSet knd -> SymbolSet knd Source # | |||||
SymbolSetRep (SomeTypedSymbol knd) (SymbolSet knd) (TypedSymbol knd) Source # | |||||
Defined in Grisette.Internal.SymPrim.Prim.Model Methods buildSymbolSet :: SomeTypedSymbol knd -> SymbolSet knd Source # | |||||
SymbolSetRep [SomeTypedSymbol knd] (SymbolSet knd) (TypedSymbol knd) Source # | |||||
Defined in Grisette.Internal.SymPrim.Prim.Model Methods buildSymbolSet :: [SomeTypedSymbol knd] -> SymbolSet knd Source # | |||||
SymbolSetRep [TypedSymbol knd t] (SymbolSet knd) (TypedSymbol knd) Source # | |||||
Defined in Grisette.Internal.SymPrim.Prim.Model Methods buildSymbolSet :: [TypedSymbol knd t] -> SymbolSet knd Source # | |||||
SymbolSetRep (TypedSymbol knd t) (SymbolSet knd) (TypedSymbol knd) Source # | |||||
Defined in Grisette.Internal.SymPrim.Prim.Model Methods buildSymbolSet :: TypedSymbol knd t -> SymbolSet knd Source # | |||||
SymbolSetRep (TypedSymbol knd a, TypedSymbol knd b) (SymbolSet knd) (TypedSymbol knd) Source # | |||||
Defined in Grisette.Internal.SymPrim.Prim.Model Methods buildSymbolSet :: (TypedSymbol knd a, TypedSymbol knd b) -> SymbolSet knd Source # | |||||
SymbolSetRep (TypedSymbol knd a, TypedSymbol knd b, TypedSymbol knd c) (SymbolSet knd) (TypedSymbol knd) Source # | |||||
Defined in Grisette.Internal.SymPrim.Prim.Model Methods buildSymbolSet :: (TypedSymbol knd a, TypedSymbol knd b, TypedSymbol knd c) -> SymbolSet knd Source # | |||||
SymbolSetRep (TypedSymbol knd a, TypedSymbol knd b, TypedSymbol knd c, TypedSymbol knd d) (SymbolSet knd) (TypedSymbol knd) Source # | |||||
Defined in Grisette.Internal.SymPrim.Prim.Model Methods buildSymbolSet :: (TypedSymbol knd a, TypedSymbol knd b, TypedSymbol knd c, TypedSymbol knd d) -> SymbolSet knd Source # | |||||
SymbolSetRep (TypedSymbol knd a, TypedSymbol knd b, TypedSymbol knd c, TypedSymbol knd d, TypedSymbol knd e) (SymbolSet knd) (TypedSymbol knd) Source # | |||||
Defined in Grisette.Internal.SymPrim.Prim.Model Methods buildSymbolSet :: (TypedSymbol knd a, TypedSymbol knd b, TypedSymbol knd c, TypedSymbol knd d, TypedSymbol knd e) -> SymbolSet knd Source # | |||||
SymbolSetRep (TypedSymbol knd a, TypedSymbol knd b, TypedSymbol knd c, TypedSymbol knd d, TypedSymbol knd e, TypedSymbol knd f) (SymbolSet knd) (TypedSymbol knd) Source # | |||||
Defined in Grisette.Internal.SymPrim.Prim.Model Methods buildSymbolSet :: (TypedSymbol knd a, TypedSymbol knd b, TypedSymbol knd c, TypedSymbol knd d, TypedSymbol knd e, TypedSymbol knd f) -> SymbolSet knd Source # | |||||
SymbolSetRep (TypedSymbol knd a, TypedSymbol knd b, TypedSymbol knd c, TypedSymbol knd d, TypedSymbol knd e, TypedSymbol knd f, TypedSymbol knd g) (SymbolSet knd) (TypedSymbol knd) Source # | |||||
Defined in Grisette.Internal.SymPrim.Prim.Model Methods buildSymbolSet :: (TypedSymbol knd a, TypedSymbol knd b, TypedSymbol knd c, TypedSymbol knd d, TypedSymbol knd e, TypedSymbol knd f, TypedSymbol knd g) -> SymbolSet knd Source # | |||||
SymbolSetRep (TypedSymbol knd a, TypedSymbol knd b, TypedSymbol knd c, TypedSymbol knd d, TypedSymbol knd e, TypedSymbol knd f, TypedSymbol knd g, TypedSymbol knd h) (SymbolSet knd) (TypedSymbol knd) Source # | |||||
Defined in Grisette.Internal.SymPrim.Prim.Model Methods buildSymbolSet :: (TypedSymbol knd a, TypedSymbol knd b, TypedSymbol knd c, TypedSymbol knd d, TypedSymbol knd e, TypedSymbol knd f, TypedSymbol knd g, TypedSymbol knd h) -> SymbolSet knd Source # | |||||
type Rep (SymbolSet knd) Source # | |||||
Defined in Grisette.Internal.SymPrim.Prim.Model type Rep (SymbolSet knd) = D1 ('MetaData "SymbolSet" "Grisette.Internal.SymPrim.Prim.Model" "grisette-0.13.0.1-LKOkrwJaCqLLaF4eMpvbe4" 'True) (C1 ('MetaCons "SymbolSet" 'PrefixI 'True) (S1 ('MetaSel ('Just "unSymbolSet") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (HashSet (SomeTypedSymbol knd))))) |
type AnySymbolSet = SymbolSet 'AnyKind Source #
Set of any symbols.
type ConstantSymbolSet = SymbolSet 'ConstantKind Source #
Set of constant symbols. Excluding unintepreted functions.
Instances
Binary Model Source # | |||||
Serial Model Source # | |||||
Defined in Grisette.Internal.SymPrim.Prim.Model | |||||
Serialize Model Source # | |||||
NFData Model Source # | |||||
Defined in Grisette.Internal.SymPrim.Prim.Model | |||||
Monoid Model Source # | |||||
Semigroup Model Source # | |||||
Generic Model Source # | |||||
Defined in Grisette.Internal.SymPrim.Prim.Model Associated Types
| |||||
Show Model Source # | |||||
Eq Model Source # | |||||
PPrint Model Source # | |||||
Hashable Model Source # | |||||
Defined in Grisette.Internal.SymPrim.Prim.Model | |||||
Lift Model Source # | |||||
ModelOps Model AnySymbolSet TypedAnySymbol Source # | |||||
Defined in Grisette.Internal.SymPrim.Prim.Model Methods emptyModel :: Model Source # isEmptyModel :: Model -> Bool Source # modelContains :: TypedAnySymbol a -> Model -> Bool Source # valueOf :: TypedAnySymbol t -> Model -> Maybe t Source # insertValue :: TypedAnySymbol t -> t -> Model -> Model Source # exceptFor :: AnySymbolSet -> Model -> Model Source # exceptFor' :: TypedAnySymbol t -> Model -> Model Source # restrictTo :: AnySymbolSet -> Model -> Model Source # | |||||
ModelRep (ModelValuePair t) Model Source # | |||||
Defined in Grisette.Internal.SymPrim.Prim.Model Methods buildModel :: ModelValuePair t -> Model Source # | |||||
ModelRep (ModelSymPair ct st) Model Source # | |||||
Defined in Grisette.Internal.SymPrim.ModelRep Methods buildModel :: ModelSymPair ct st -> Model Source # | |||||
(ModelRep a Model, ModelRep b Model) => ModelRep (a, b) Model Source # | |||||
Defined in Grisette.Internal.SymPrim.Prim.Model Methods buildModel :: (a, b) -> Model Source # | |||||
(ModelRep a Model, ModelRep b Model, ModelRep c Model) => ModelRep (a, b, c) Model Source # | |||||
Defined in Grisette.Internal.SymPrim.Prim.Model Methods buildModel :: (a, b, c) -> Model Source # | |||||
(ModelRep a Model, ModelRep b Model, ModelRep c Model, ModelRep d Model) => ModelRep (a, b, c, d) Model Source # | |||||
Defined in Grisette.Internal.SymPrim.Prim.Model Methods buildModel :: (a, b, c, d) -> Model Source # | |||||
(ModelRep a Model, ModelRep b Model, ModelRep c Model, ModelRep d Model, ModelRep e Model) => ModelRep (a, b, c, d, e) Model Source # | |||||
Defined in Grisette.Internal.SymPrim.Prim.Model Methods buildModel :: (a, b, c, d, e) -> Model Source # | |||||
(ModelRep a Model, ModelRep b Model, ModelRep c Model, ModelRep d Model, ModelRep e Model, ModelRep f Model) => ModelRep (a, b, c, d, e, f) Model Source # | |||||
Defined in Grisette.Internal.SymPrim.Prim.Model Methods buildModel :: (a, b, c, d, e, f) -> Model Source # | |||||
(ModelRep a Model, ModelRep b Model, ModelRep c Model, ModelRep d Model, ModelRep e Model, ModelRep f Model, ModelRep g Model) => ModelRep (a, b, c, d, e, f, g) Model Source # | |||||
Defined in Grisette.Internal.SymPrim.Prim.Model Methods buildModel :: (a, b, c, d, e, f, g) -> Model Source # | |||||
(ModelRep a Model, ModelRep b Model, ModelRep c Model, ModelRep d Model, ModelRep e Model, ModelRep f Model, ModelRep g Model, ModelRep h Model) => ModelRep (a, b, c, d, e, f, g, h) Model Source # | |||||
Defined in Grisette.Internal.SymPrim.Prim.Model Methods buildModel :: (a, b, c, d, e, f, g, h) -> Model Source # | |||||
type Rep Model Source # | |||||
Defined in Grisette.Internal.SymPrim.Prim.Model type Rep Model = D1 ('MetaData "Model" "Grisette.Internal.SymPrim.Prim.Model" "grisette-0.13.0.1-LKOkrwJaCqLLaF4eMpvbe4" 'True) (C1 ('MetaCons "Model" 'PrefixI 'True) (S1 ('MetaSel ('Just "unModel") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (HashMap SomeTypedAnySymbol ModelValue)))) |
data ModelValuePair t Source #
A type used for building a model by hand.
>>>
buildModel ("x" ::= (1 :: Integer), "y" ::= True) :: Model
Model {x -> 1 :: Integer, y -> true :: Bool}
Constructors
(TypedAnySymbol t) ::= t |
Instances
Show t => Show (ModelValuePair t) Source # | |
Defined in Grisette.Internal.SymPrim.Prim.Model Methods showsPrec :: Int -> ModelValuePair t -> ShowS # show :: ModelValuePair t -> String # showList :: [ModelValuePair t] -> ShowS # | |
ModelRep (ModelValuePair t) Model Source # | |
Defined in Grisette.Internal.SymPrim.Prim.Model Methods buildModel :: ModelValuePair t -> Model Source # |
data ModelSymPair ct st where Source #
A pair of a symbolic constant and its value. This is used to build a model from a list of symbolic constants and their values.
>>>
buildModel ("a" := (1 :: Integer), "b" := True) :: Model
Model {a -> 1 :: Integer, b -> true :: Bool}
Constructors
(:=) :: forall ct st. LinkedRep ct st => st -> ct -> ModelSymPair ct st |
Instances
ModelRep (ModelSymPair ct st) Model Source # | |
Defined in Grisette.Internal.SymPrim.ModelRep Methods buildModel :: ModelSymPair ct st -> Model Source # |
Analysis on the terms
Internal representation for Grisette symbolic terms.
Instances
Lift (Term t :: Type) Source # | |||||||||
SupportedPrim a => Binary (Term a) Source # | |||||||||
SupportedPrim a => Serial (Term a) Source # | |||||||||
SupportedPrim a => Serialize (Term a) Source # | |||||||||
NFData (Term a) Source # | |||||||||
Defined in Grisette.Internal.SymPrim.Prim.Internal.Term | |||||||||
Show (Term ty) Source # | |||||||||
Eq (Description (Term t)) Source # | |||||||||
Defined in Grisette.Internal.SymPrim.Prim.Internal.Term Methods (==) :: Description (Term t) -> Description (Term t) -> Bool # (/=) :: Description (Term t) -> Description (Term t) -> Bool # | |||||||||
SupportedPrim t => Eq (Term t) Source # | |||||||||
PPrint (Term t) Source # | |||||||||
Interned (Term t) Source # | |||||||||
Defined in Grisette.Internal.SymPrim.Prim.Internal.Term Associated Types
Methods describe :: Uninterned (Term t) -> Description (Term t) Source # identify :: CachedInfo -> Uninterned (Term t) -> Term t Source # threadId :: Term t -> WeakThreadId Source # descriptionDigest :: Description (Term t) -> Digest Source # | |||||||||
Hashable (Description (Term t)) Source # | |||||||||
Defined in Grisette.Internal.SymPrim.Prim.Internal.Term | |||||||||
SupportedPrim t => Hashable (Term t) Source # | |||||||||
Defined in Grisette.Internal.SymPrim.Prim.Internal.Term | |||||||||
data Description (Term t) Source # | |||||||||
Defined in Grisette.Internal.SymPrim.Prim.Internal.Term data Description (Term t) where
| |||||||||
type Uninterned (Term t) Source # | |||||||||
Defined in Grisette.Internal.SymPrim.Prim.Internal.Term |
Existential wrapper for symbolic Grisette terms.
Constructors
SomeTerm :: forall a. SupportedPrim a => Term a -> SomeTerm |
someTermSize :: SomeTerm -> Int Source #
Compute the size of a list of terms. Do not count the same term twice.
termsSize :: [Term a] -> Int Source #
Compute the size of a list of terms. Do not count the same term twice.
someTermsSize :: [SomeTerm] -> Int Source #
Compute the size of a list of terms. Do not count the same term twice.
pattern SupportedTerm :: () => SupportedPrim t => Term t Source #
Pattern synonym to introduce the SupportedPrim constraint.
pattern SupportedTypedSymbol :: () => (SupportedPrim t, SymbolKindConstraint k t, IsSymbolKind k) => TypedSymbol k t Source #
Pattern synonym to introduce constraints from a TypedSymbol
.
pattern SupportedConstantTypedSymbol :: () => (SupportedPrim t, SymbolKindConstraint k t, IsSymbolKind k, k ~ 'ConstantKind) => TypedSymbol k t Source #
Pattern synonym to introduce constraints from a TypedSymbol
. Also checks
that the symbol kind is ConstantKind
.
pattern ConTerm :: () => SupportedPrim t => t -> Term t Source #
pattern SymTerm :: () => SupportedPrim t => TypedSymbol 'AnyKind t -> Term t Source #
pattern ForallTerm :: forall r t. () => (r ~ Bool, SupportedNonFuncPrim t) => TypedSymbol 'ConstantKind t -> Term Bool -> Term r Source #
Pattern synonym for ForallTerm'
. Note that using this pattern to
construct a Term
will do term simplification.
pattern ExistsTerm :: forall r t. () => (r ~ Bool, SupportedNonFuncPrim t) => TypedSymbol 'ConstantKind t -> Term Bool -> Term r Source #
Pattern synonym for ExistsTerm'
. Note that using this pattern to
construct a Term
will do term simplification.
pattern EqTerm :: forall r t. () => (r ~ Bool, SupportedPrim t) => Term t -> Term t -> Term r Source #
pattern DistinctTerm :: forall r t. () => (r ~ Bool, SupportedPrim t) => NonEmpty (Term t) -> Term r Source #
Pattern synonym for DistinctTerm'
. Note that using this pattern to
construct a Term
will do term simplification.
pattern AddNumTerm :: () => (SupportedPrim t, PEvalNumTerm t) => Term t -> Term t -> Term t Source #
Pattern synonym for AddNumTerm'
. Note that using this pattern to
construct a Term
will do term simplification.
pattern NegNumTerm :: () => (SupportedPrim t, PEvalNumTerm t) => Term t -> Term t Source #
Pattern synonym for NegNumTerm'
. Note that using this pattern to
construct a Term
will do term simplification.
pattern MulNumTerm :: () => (SupportedPrim t, PEvalNumTerm t) => Term t -> Term t -> Term t Source #
Pattern synonym for MulNumTerm'
. Note that using this pattern to
construct a Term
will do term simplification.
pattern AbsNumTerm :: () => (SupportedPrim t, PEvalNumTerm t) => Term t -> Term t Source #
Pattern synonym for AbsNumTerm'
. Note that using this pattern to
construct a Term
will do term simplification.
pattern SignumNumTerm :: () => (SupportedPrim t, PEvalNumTerm t) => Term t -> Term t Source #
Pattern synonym for SignumNumTerm'
. Note that using this pattern to
construct a Term
will do term simplification.
pattern LtOrdTerm :: forall r t. () => (r ~ Bool, SupportedPrim t, PEvalOrdTerm t) => Term t -> Term t -> Term r Source #
Pattern synonym for LtOrdTerm'
. Note that using this pattern to construct
a Term
will do term simplification.
pattern LeOrdTerm :: forall r t. () => (r ~ Bool, SupportedPrim t, PEvalOrdTerm t) => Term t -> Term t -> Term r Source #
Pattern synonym for LeOrdTerm'
. Note that using this pattern to construct
a Term
will do term simplification.
pattern AndBitsTerm :: () => (SupportedPrim t, PEvalBitwiseTerm t) => Term t -> Term t -> Term t Source #
Pattern synonym for AndBitsTerm'
. Note that using this pattern to
construct a Term
will do term simplification.
pattern OrBitsTerm :: () => (SupportedPrim t, PEvalBitwiseTerm t) => Term t -> Term t -> Term t Source #
Pattern synonym for OrBitsTerm'
. Note that using this pattern to
construct a Term
will do term simplification.
pattern XorBitsTerm :: () => (SupportedPrim t, PEvalBitwiseTerm t) => Term t -> Term t -> Term t Source #
Pattern synonym for XorBitsTerm'
. Note that using this pattern to
construct a Term
will do term simplification.
pattern ComplementBitsTerm :: () => (SupportedPrim t, PEvalBitwiseTerm t) => Term t -> Term t Source #
Pattern synonym for ComplementBitsTerm'
. Note that using this pattern to
construct a Term
will do term simplification.
pattern ShiftLeftTerm :: () => (SupportedPrim t, PEvalShiftTerm t) => Term t -> Term t -> Term t Source #
Pattern synonym for ShiftLeftTerm'
. Note that using this pattern to
construct a Term
will do term simplification.
pattern RotateLeftTerm :: () => (SupportedPrim t, PEvalRotateTerm t) => Term t -> Term t -> Term t Source #
Pattern synonym for RotateLeftTerm'
. Note that using this pattern to
construct a Term
will do term simplification.
pattern ShiftRightTerm :: () => (SupportedPrim t, PEvalShiftTerm t) => Term t -> Term t -> Term t Source #
Pattern synonym for ShiftRightTerm'
. Note that using this pattern to
construct a Term
will do term simplification.
pattern RotateRightTerm :: () => (SupportedPrim t, PEvalRotateTerm t) => Term t -> Term t -> Term t Source #
Pattern synonym for RotateRightTerm'
. Note that using this pattern to
construct a Term
will do term simplification.
pattern BitCastTerm :: forall b a. () => (SupportedPrim a, SupportedPrim b, PEvalBitCastTerm a b) => Term a -> Term b Source #
Pattern synonym for BitCastTerm'
. Note that using this pattern to
construct a Term
will do term simplification.
pattern BitCastOrTerm :: () => (SupportedPrim a, SupportedPrim b, PEvalBitCastOrTerm a b) => Term b -> Term a -> Term b Source #
Pattern synonym for BitCastOrTerm'
. Note that using this pattern to
construct a Term
will do term simplification.
pattern BVConcatTerm :: forall ret bv (l :: Nat) (r :: Nat). () => (PEvalBVTerm bv, KnownNat l, KnownNat r, KnownNat (l + r), 1 <= l, 1 <= r, 1 <= (l + r), SupportedPrim (bv l), SupportedPrim (bv r), SupportedPrim (bv (l + r)), ret ~ bv (l + r)) => Term (bv l) -> Term (bv r) -> Term ret Source #
Pattern synonym for BVConcatTerm'
. Note that using this pattern to
construct a Term
will do term simplification.
pattern BVSelectTerm :: forall ret bv (w :: Nat) (n :: Nat) (ix :: Nat). () => (PEvalBVTerm bv, KnownNat n, KnownNat ix, KnownNat w, 1 <= n, 1 <= w, (ix + w) <= n, SupportedPrim (bv n), SupportedPrim (bv w), ret ~ bv w) => Proxy ix -> Proxy w -> Term (bv n) -> Term ret Source #
Pattern synonym for BVSelectTerm'
. Note that using this pattern to
construct a Term
will do term simplification.
pattern BVExtendTerm :: forall ret bv (l :: Nat) (r :: Nat). () => (PEvalBVTerm bv, KnownNat l, KnownNat r, 1 <= l, 1 <= r, l <= r, SupportedPrim (bv l), SupportedPrim (bv r), ret ~ bv r) => Bool -> Proxy r -> Term (bv l) -> Term ret Source #
Pattern synonym for BVExtendTerm'
. Note that using this pattern to
construct a Term
will do term simplification.
pattern ApplyTerm :: forall b f a. () => (PEvalApplyTerm f a b, SupportedPrim f, SupportedPrim a, SupportedPrim b) => Term f -> Term a -> Term b Source #
Pattern synonym for ApplyTerm'
. Note that using this pattern to construct
a Term
will do term simplification.
pattern DivIntegralTerm :: () => (SupportedPrim t, PEvalDivModIntegralTerm t) => Term t -> Term t -> Term t Source #
Pattern synonym for DivIntegralTerm'
. Note that using this pattern to
construct a Term
will do term simplification.
pattern ModIntegralTerm :: () => (SupportedPrim t, PEvalDivModIntegralTerm t) => Term t -> Term t -> Term t Source #
Pattern synonym for ModIntegralTerm'
. Note that using this pattern to
construct a Term
will do term simplification.
pattern QuotIntegralTerm :: () => (SupportedPrim t, PEvalDivModIntegralTerm t) => Term t -> Term t -> Term t Source #
Pattern synonym for QuotIntegralTerm'
. Note that using this pattern to
construct a Term
will do term simplification.
pattern RemIntegralTerm :: () => (SupportedPrim t, PEvalDivModIntegralTerm t) => Term t -> Term t -> Term t Source #
Pattern synonym for RemIntegralTerm'
. Note that using this pattern to
construct a Term
will do term simplification.
pattern FPTraitTerm :: forall r (eb :: Nat) (sb :: Nat) fp. () => (r ~ Bool, ValidFP eb sb, SupportedPrim (fp eb sb), PEvalFPTerm fp) => FPTrait -> Term (fp eb sb) -> Term r Source #
Pattern synonym for FPTraitTerm'
. Note that using this pattern to
construct a Term
will do term simplification.
pattern FdivTerm :: () => (SupportedPrim t, PEvalFractionalTerm t) => Term t -> Term t -> Term t Source #
pattern RecipTerm :: () => (SupportedPrim t, PEvalFractionalTerm t) => Term t -> Term t Source #
Pattern synonym for RecipTerm'
. Note that using this pattern to construct
a Term
will do term simplification.
pattern FloatingUnaryTerm :: () => (SupportedPrim t, PEvalFloatingTerm t) => FloatingUnaryOp -> Term t -> Term t Source #
Pattern synonym for FloatingUnaryTerm'
. Note that using this pattern to
construct a Term
will do term simplification.
pattern PowerTerm :: () => (SupportedPrim t, PEvalFloatingTerm t) => Term t -> Term t -> Term t Source #
Pattern synonym for PowerTerm'
. Note that using this pattern to construct
a Term
will do term simplification.
pattern FPUnaryTerm :: forall ret fp (eb :: Nat) (sb :: Nat). () => (ret ~ fp eb sb, ValidFP eb sb, SupportedPrim (fp eb sb), PEvalFPTerm fp) => FPUnaryOp -> Term (fp eb sb) -> Term ret Source #
Pattern synonym for FPUnaryTerm'
. Note that using this pattern to construct
a Term
will do term simplification.
pattern FPBinaryTerm :: forall ret fp (eb :: Nat) (sb :: Nat). () => (ret ~ fp eb sb, ValidFP eb sb, SupportedPrim (fp eb sb), PEvalFPTerm fp) => FPBinaryOp -> Term (fp eb sb) -> Term (fp eb sb) -> Term ret Source #
Pattern synonym for FPBinaryTerm'
. Note that using this pattern to construct
a Term
will do term simplification.
pattern FPRoundingUnaryTerm :: forall ret fp (eb :: Nat) (sb :: Nat). () => (ret ~ fp eb sb, ValidFP eb sb, SupportedPrim (fp eb sb), PEvalFPTerm fp) => FPRoundingUnaryOp -> Term FPRoundingMode -> Term (fp eb sb) -> Term ret Source #
Pattern synonym for FPRoundingUnaryTerm'
. Note that using this pattern to
construct a Term
will do term simplification.
pattern FPRoundingBinaryTerm :: forall ret fp (eb :: Nat) (sb :: Nat). () => (ret ~ fp eb sb, ValidFP eb sb, SupportedPrim (fp eb sb), PEvalFPTerm fp) => FPRoundingBinaryOp -> Term FPRoundingMode -> Term (fp eb sb) -> Term (fp eb sb) -> Term ret Source #
Pattern synonym for FPRoundingBinaryTerm'
. Note that using this pattern to
construct a Term
will do term simplification.
pattern FPFMATerm :: forall ret fp (eb :: Nat) (sb :: Nat). () => (ret ~ fp eb sb, ValidFP eb sb, SupportedPrim (fp eb sb), PEvalFPTerm fp) => Term FPRoundingMode -> Term (fp eb sb) -> Term (fp eb sb) -> Term (fp eb sb) -> Term ret Source #
Pattern synonym for FPFMATerm'
. Note that using this pattern to construct
a Term
will do term simplification.
pattern FromIntegralTerm :: forall b a. () => (PEvalFromIntegralTerm a b, SupportedPrim a, SupportedPrim b) => Term a -> Term b Source #
Pattern synonym for FromIntegralTerm'
. Note that using this pattern to
construct a Term
will do term simplification.
pattern FromFPOrTerm :: forall a (eb :: Nat) (sb :: Nat). () => (PEvalIEEEFPConvertibleTerm a, ValidFP eb sb, SupportedPrim a) => Term a -> Term FPRoundingMode -> Term (FP eb sb) -> Term a Source #
Pattern synonym for FromFPOrTerm'
. Note that using this pattern to construct
a Term
will do term simplification.
pattern ToFPTerm :: forall ret (eb :: Nat) (sb :: Nat) a. () => (PEvalIEEEFPConvertibleTerm a, ValidFP eb sb, SupportedPrim (FP eb sb), SupportedPrim a, ret ~ FP eb sb) => Term FPRoundingMode -> Term a -> Proxy eb -> Proxy sb -> Term ret Source #