grisette-0.5.0.0: Symbolic evaluation as a library
Copyright(c) Sirui Lu 2021-2024
LicenseBSD-3-Clause (see the LICENSE file)
Maintainersiruilu@cs.washington.edu
StabilityExperimental
PortabilityGHC only
Safe HaskellSafe-Inferred
LanguageHaskell2010

Grisette.SymPrim

Description

 
Synopsis

Symbolic type implementation

Extended types

data IntN (n :: Nat) Source #

Symbolic signed bit vectors.

Instances

Instances details
SizedBV IntN Source # 
Instance details

Defined in Grisette.Internal.SymPrim.BV

Methods

sizedBVConcat :: forall (l :: Nat) (r :: Nat). (KnownNat l, KnownNat r, 1 <= l, 1 <= r) => IntN l -> IntN r -> IntN (l + r) Source #

sizedBVZext :: forall (l :: Nat) (r :: Nat) proxy. (KnownNat l, KnownNat r, 1 <= l, KnownNat r, l <= r) => proxy r -> IntN l -> IntN r Source #

sizedBVSext :: forall (l :: Nat) (r :: Nat) proxy. (KnownNat l, KnownNat r, 1 <= l, KnownNat r, l <= r) => proxy r -> IntN l -> IntN r Source #

sizedBVExt :: forall (l :: Nat) (r :: Nat) proxy. (KnownNat l, KnownNat r, 1 <= l, KnownNat r, l <= r) => proxy r -> IntN l -> IntN 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 -> IntN n -> IntN w Source #

sizedBVFromIntegral :: forall a (n :: Nat). (Integral a, KnownNat n, 1 <= n) => a -> IntN n Source #

PEvalBVTerm IntN Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Instances.BVPEval

Methods

pevalBVConcatTerm :: forall (l :: Nat) (r :: Nat). (KnownNat l, KnownNat r, 1 <= l, 1 <= r) => Term (IntN l) -> Term (IntN r) -> Term (IntN (l + r)) Source #

pevalBVExtendTerm :: forall (l :: Nat) (r :: Nat) proxy. (KnownNat l, KnownNat r, 1 <= l, 1 <= r, l <= r) => Bool -> proxy r -> Term (IntN l) -> Term (IntN 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 (IntN n) -> Term (IntN w) Source #

sbvBVConcatTerm :: forall (n :: Nat) (l :: Nat) (r :: Nat) p0 p1 p2. (KnownIsZero n, KnownNat l, KnownNat r, 1 <= l, 1 <= r) => p0 n -> p1 l -> p2 r -> SBVType n (IntN l) -> SBVType n (IntN r) -> SBVType n (IntN (l + r)) Source #

sbvBVExtendTerm :: forall (n :: Nat) (l :: Nat) (r :: Nat) p0 p1 p2. (KnownIsZero n, KnownNat l, KnownNat r, 1 <= l, 1 <= r, l <= r) => p0 n -> p1 l -> p2 r -> Bool -> SBVType n (IntN l) -> SBVType n (IntN r) Source #

sbvBVSelectTerm :: forall (int :: Nat) (ix :: Nat) (w :: Nat) (n :: Nat) p0 p1 p2 p3. (KnownIsZero int, KnownNat ix, KnownNat w, KnownNat n, 1 <= n, 1 <= w, (ix + w) <= n) => p0 int -> p1 ix -> p2 w -> p3 n -> SBVType int (IntN n) -> SBVType int (IntN w) Source #

PEvalBVSignConversionTerm WordN IntN Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Instances.BVPEval

Methods

pevalBVToSignedTerm :: forall (n :: Nat). (KnownNat n, 1 <= n) => Term (WordN n) -> Term (IntN n) Source #

pevalBVToUnsignedTerm :: forall (n :: Nat). (KnownNat n, 1 <= n) => Term (IntN n) -> Term (WordN n) Source #

withSbvSignConversionTermConstraint :: forall (n :: Nat) (integerBitwidth :: Nat) p q r. (KnownIsZero integerBitwidth, KnownNat n, 1 <= n) => p n -> q integerBitwidth -> ((Integral (NonFuncSBVBaseType integerBitwidth (WordN n)), Integral (NonFuncSBVBaseType integerBitwidth (IntN n))) => r) -> r Source #

sbvToSigned :: forall (n :: Nat) (integerBitwidth :: Nat) o p q. (KnownIsZero integerBitwidth, KnownNat n, 1 <= n) => o WordN -> p n -> q integerBitwidth -> SBVType integerBitwidth (WordN n) -> SBVType integerBitwidth (IntN n) Source #

sbvToUnsigned :: forall (n :: Nat) (integerBitwidth :: Nat) o p q. (KnownIsZero integerBitwidth, KnownNat n, 1 <= n) => o IntN -> p n -> q integerBitwidth -> SBVType integerBitwidth (IntN n) -> SBVType integerBitwidth (WordN n) Source #

Lift (IntN n :: Type) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.BV

Methods

lift :: Quote m => IntN n -> m Exp #

liftTyped :: forall (m :: Type -> Type). Quote m => IntN n -> Code m (IntN n) #

(MonadError ArithException m, TryMerge m, KnownNat n, 1 <= n) => SafeDivision ArithException (IntN n) m Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.SafeDivision

Methods

safeDiv :: IntN n -> IntN n -> m (IntN n) Source #

safeMod :: IntN n -> IntN n -> m (IntN n) Source #

safeDivMod :: IntN n -> IntN n -> m (IntN n, IntN n) Source #

safeQuot :: IntN n -> IntN n -> m (IntN n) Source #

safeRem :: IntN n -> IntN n -> m (IntN n) Source #

safeQuotRem :: IntN n -> IntN n -> m (IntN n, IntN n) Source #

(MonadError ArithException m, TryMerge m, KnownNat n, 1 <= n) => SafeLinearArith ArithException (IntN n) m Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.SafeLinearArith

Methods

safeAdd :: IntN n -> IntN n -> m (IntN n) Source #

safeNeg :: IntN n -> m (IntN n) Source #

safeSub :: IntN n -> IntN n -> m (IntN n) Source #

(MonadError ArithException m, TryMerge m, KnownNat n, 1 <= n) => SafeSymRotate ArithException (IntN n) m Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.SafeSymRotate

Methods

safeSymRotateL :: IntN n -> IntN n -> m (IntN n) Source #

safeSymRotateR :: IntN n -> IntN n -> m (IntN n) Source #

(MonadError ArithException m, TryMerge m, KnownNat n, 1 <= n) => SafeSymShift ArithException (IntN n) m Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.SafeSymShift

Methods

safeSymShiftL :: IntN n -> IntN n -> m (IntN n) Source #

safeSymShiftR :: IntN n -> IntN n -> m (IntN n) Source #

safeSymStrictShiftL :: IntN n -> IntN n -> m (IntN n) Source #

safeSymStrictShiftR :: IntN n -> IntN n -> m (IntN n) Source #

(KnownNat n, 1 <= n) => Arbitrary (IntN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.BV

Methods

arbitrary :: Gen (IntN n) #

shrink :: IntN n -> [IntN n] #

(KnownNat n, 1 <= n) => Bits (IntN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.BV

Methods

(.&.) :: IntN n -> IntN n -> IntN n #

(.|.) :: IntN n -> IntN n -> IntN n #

xor :: IntN n -> IntN n -> IntN n #

complement :: IntN n -> IntN n #

shift :: IntN n -> Int -> IntN n #

rotate :: IntN n -> Int -> IntN n #

zeroBits :: IntN n #

bit :: Int -> IntN n #

setBit :: IntN n -> Int -> IntN n #

clearBit :: IntN n -> Int -> IntN n #

complementBit :: IntN n -> Int -> IntN n #

testBit :: IntN n -> Int -> Bool #

bitSizeMaybe :: IntN n -> Maybe Int #

bitSize :: IntN n -> Int #

isSigned :: IntN n -> Bool #

shiftL :: IntN n -> Int -> IntN n #

unsafeShiftL :: IntN n -> Int -> IntN n #

shiftR :: IntN n -> Int -> IntN n #

unsafeShiftR :: IntN n -> Int -> IntN n #

rotateL :: IntN n -> Int -> IntN n #

rotateR :: IntN n -> Int -> IntN n #

popCount :: IntN n -> Int #

(KnownNat n, 1 <= n) => FiniteBits (IntN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.BV

(KnownNat n, 1 <= n) => Bounded (IntN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.BV

Methods

minBound :: IntN n #

maxBound :: IntN n #

(KnownNat n, 1 <= n) => Enum (IntN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.BV

Methods

succ :: IntN n -> IntN n #

pred :: IntN n -> IntN n #

toEnum :: Int -> IntN n #

fromEnum :: IntN n -> Int #

enumFrom :: IntN n -> [IntN n] #

enumFromThen :: IntN n -> IntN n -> [IntN n] #

enumFromTo :: IntN n -> IntN n -> [IntN n] #

enumFromThenTo :: IntN n -> IntN n -> IntN n -> [IntN n] #

Generic (IntN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.BV

Associated Types

type Rep (IntN n) :: Type -> Type #

Methods

from :: IntN n -> Rep (IntN n) x #

to :: Rep (IntN n) x -> IntN n #

(KnownNat n, 1 <= n) => Num (IntN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.BV

Methods

(+) :: IntN n -> IntN n -> IntN n #

(-) :: IntN n -> IntN n -> IntN n #

(*) :: IntN n -> IntN n -> IntN n #

negate :: IntN n -> IntN n #

abs :: IntN n -> IntN n #

signum :: IntN n -> IntN n #

fromInteger :: Integer -> IntN n #

(KnownNat n, 1 <= n) => Read (IntN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.BV

(KnownNat n, 1 <= n) => Integral (IntN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.BV

Methods

quot :: IntN n -> IntN n -> IntN n #

rem :: IntN n -> IntN n -> IntN n #

div :: IntN n -> IntN n -> IntN n #

mod :: IntN n -> IntN n -> IntN n #

quotRem :: IntN n -> IntN n -> (IntN n, IntN n) #

divMod :: IntN n -> IntN n -> (IntN n, IntN n) #

toInteger :: IntN n -> Integer #

(KnownNat n, 1 <= n) => Real (IntN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.BV

Methods

toRational :: IntN n -> Rational #

(KnownNat n, 1 <= n) => Show (IntN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.BV

Methods

showsPrec :: Int -> IntN n -> ShowS #

show :: IntN n -> String #

showList :: [IntN n] -> ShowS #

NFData (IntN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.BV

Methods

rnf :: IntN n -> () #

Eq (IntN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.BV

Methods

(==) :: IntN n -> IntN n -> Bool #

(/=) :: IntN n -> IntN n -> Bool #

(KnownNat n, 1 <= n) => Ord (IntN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.BV

Methods

compare :: IntN n -> IntN n -> Ordering #

(<) :: IntN n -> IntN n -> Bool #

(<=) :: IntN n -> IntN n -> Bool #

(>) :: IntN n -> IntN n -> Bool #

(>=) :: IntN n -> IntN n -> Bool #

max :: IntN n -> IntN n -> IntN n #

min :: IntN n -> IntN n -> IntN n #

(KnownNat n, 1 <= n) => EvaluateSym (IntN n) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.EvaluateSym

Methods

evaluateSym :: Bool -> Model -> IntN n -> IntN n Source #

(KnownNat n, 1 <= n) => ExtractSymbolics (IntN n) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSymbolics

(KnownNat n, 1 <= n) => GPretty (IntN n) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.GPretty

Methods

gpretty :: IntN n -> Doc ann Source #

gprettyPrec :: Int -> IntN n -> Doc ann Source #

gprettyList :: [IntN n] -> Doc ann Source #

(KnownNat n, 1 <= n) => Mergeable (IntN n) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.Mergeable

(KnownNat n, 1 <= n) => SEq (IntN n) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.SEq

Methods

(.==) :: IntN n -> IntN n -> SymBool Source #

(./=) :: IntN n -> IntN n -> SymBool Source #

(KnownNat n, 1 <= n) => SOrd (IntN n) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.SOrd

Methods

(.<) :: IntN n -> IntN n -> SymBool Source #

(.<=) :: IntN n -> IntN n -> SymBool Source #

(.>) :: IntN n -> IntN n -> SymBool Source #

(.>=) :: IntN n -> IntN n -> SymBool Source #

symCompare :: IntN n -> IntN n -> UnionM Ordering Source #

(KnownNat n, 1 <= n) => SubstituteSym (IntN n) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.SubstituteSym

Methods

substituteSym :: LinkedRep cb sb => TypedSymbol cb -> sb -> IntN n -> IntN n Source #

(KnownNat n, 1 <= n) => SymRotate (IntN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.BV

Methods

symRotate :: IntN n -> IntN n -> IntN n Source #

symRotateNegated :: IntN n -> IntN n -> IntN n Source #

(KnownNat n, 1 <= n) => SymShift (IntN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.BV

Methods

symShift :: IntN n -> IntN n -> IntN n Source #

symShiftNegated :: IntN n -> IntN n -> IntN n Source #

(KnownNat w, 1 <= w) => NonFuncSBVRep (IntN w) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Instances.SupportedPrim

Associated Types

type NonFuncSBVBaseType n (IntN w) Source #

(KnownNat n, 1 <= n) => PEvalBitwiseTerm (IntN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Instances.PEvalBitwiseTerm

Methods

pevalAndBitsTerm :: Term (IntN n) -> Term (IntN n) -> Term (IntN n) Source #

pevalOrBitsTerm :: Term (IntN n) -> Term (IntN n) -> Term (IntN n) Source #

pevalXorBitsTerm :: Term (IntN n) -> Term (IntN n) -> Term (IntN n) Source #

pevalComplementBitsTerm :: Term (IntN n) -> Term (IntN n) Source #

withSbvBitwiseTermConstraint :: forall (n0 :: Nat) proxy r. KnownIsZero n0 => proxy n0 -> (Bits (SBVType n0 (IntN n)) => r) -> r Source #

sbvAndBitsTerm :: forall (n0 :: Nat) proxy. KnownIsZero n0 => proxy n0 -> SBVType n0 (IntN n) -> SBVType n0 (IntN n) -> SBVType n0 (IntN n) Source #

sbvOrBitsTerm :: forall (n0 :: Nat) proxy. KnownIsZero n0 => proxy n0 -> SBVType n0 (IntN n) -> SBVType n0 (IntN n) -> SBVType n0 (IntN n) Source #

sbvXorBitsTerm :: forall (n0 :: Nat) proxy. KnownIsZero n0 => proxy n0 -> SBVType n0 (IntN n) -> SBVType n0 (IntN n) -> SBVType n0 (IntN n) Source #

sbvComplementBitsTerm :: forall (n0 :: Nat) proxy. KnownIsZero n0 => proxy n0 -> SBVType n0 (IntN n) -> SBVType n0 (IntN n) Source #

(KnownNat n, 1 <= n) => PEvalDivModIntegralTerm (IntN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Instances.PEvalDivModIntegralTerm

Methods

pevalDivIntegralTerm :: Term (IntN n) -> Term (IntN n) -> Term (IntN n) Source #

pevalModIntegralTerm :: Term (IntN n) -> Term (IntN n) -> Term (IntN n) Source #

pevalQuotIntegralTerm :: Term (IntN n) -> Term (IntN n) -> Term (IntN n) Source #

pevalRemIntegralTerm :: Term (IntN n) -> Term (IntN n) -> Term (IntN n) Source #

withSbvDivModIntegralTermConstraint :: forall (n0 :: Nat) proxy r. KnownIsZero n0 => proxy n0 -> (SDivisible (SBVType n0 (IntN n)) => r) -> r Source #

sbvDivIntegralTerm :: forall proxy (n0 :: Nat). KnownIsZero n0 => proxy n0 -> SBVType n0 (IntN n) -> SBVType n0 (IntN n) -> SBVType n0 (IntN n) Source #

sbvModIntegralTerm :: forall proxy (n0 :: Nat). KnownIsZero n0 => proxy n0 -> SBVType n0 (IntN n) -> SBVType n0 (IntN n) -> SBVType n0 (IntN n) Source #

sbvQuotIntegralTerm :: forall proxy (n0 :: Nat). KnownIsZero n0 => proxy n0 -> SBVType n0 (IntN n) -> SBVType n0 (IntN n) -> SBVType n0 (IntN n) Source #

sbvRemIntegralTerm :: forall proxy (n0 :: Nat). KnownIsZero n0 => proxy n0 -> SBVType n0 (IntN n) -> SBVType n0 (IntN n) -> SBVType n0 (IntN n) Source #

(KnownNat n, 1 <= n) => PEvalNumTerm (IntN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Instances.PEvalNumTerm

Methods

pevalAddNumTerm :: Term (IntN n) -> Term (IntN n) -> Term (IntN n) Source #

pevalNegNumTerm :: Term (IntN n) -> Term (IntN n) Source #

pevalMulNumTerm :: Term (IntN n) -> Term (IntN n) -> Term (IntN n) Source #

pevalAbsNumTerm :: Term (IntN n) -> Term (IntN n) Source #

pevalSignumNumTerm :: Term (IntN n) -> Term (IntN n) Source #

withSbvNumTermConstraint :: forall (n0 :: Nat) proxy r. KnownIsZero n0 => proxy n0 -> (Num (SBVType n0 (IntN n)) => r) -> r Source #

sbvAddNumTerm :: forall proxy (n0 :: Nat). KnownIsZero n0 => proxy n0 -> SBVType n0 (IntN n) -> SBVType n0 (IntN n) -> SBVType n0 (IntN n) Source #

sbvNegNumTerm :: forall proxy (n0 :: Nat). KnownIsZero n0 => proxy n0 -> SBVType n0 (IntN n) -> SBVType n0 (IntN n) Source #

sbvMulNumTerm :: forall proxy (n0 :: Nat). KnownIsZero n0 => proxy n0 -> SBVType n0 (IntN n) -> SBVType n0 (IntN n) -> SBVType n0 (IntN n) Source #

sbvAbsNumTerm :: forall proxy (n0 :: Nat). KnownIsZero n0 => proxy n0 -> SBVType n0 (IntN n) -> SBVType n0 (IntN n) Source #

sbvSignumNumTerm :: forall proxy (n0 :: Nat). KnownIsZero n0 => proxy n0 -> SBVType n0 (IntN n) -> SBVType n0 (IntN n) Source #

(KnownNat n, 1 <= n) => PEvalOrdTerm (IntN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Instances.PEvalOrdTerm

Methods

pevalLtOrdTerm :: Term (IntN n) -> Term (IntN n) -> Term Bool Source #

pevalLeOrdTerm :: Term (IntN n) -> Term (IntN n) -> Term Bool Source #

withSbvOrdTermConstraint :: forall (n0 :: Nat) proxy r. KnownIsZero n0 => proxy n0 -> (OrdSymbolic (SBVType n0 (IntN n)) => r) -> r Source #

sbvLtOrdTerm :: forall (n0 :: Nat) proxy. KnownIsZero n0 => proxy n0 -> SBVType n0 (IntN n) -> SBVType n0 (IntN n) -> SBV Bool Source #

sbvLeOrdTerm :: forall (n0 :: Nat) proxy. KnownIsZero n0 => proxy n0 -> SBVType n0 (IntN n) -> SBVType n0 (IntN n) -> SBV Bool Source #

(KnownNat n, 1 <= n) => PEvalRotateTerm (IntN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Instances.PEvalRotateTerm

Methods

pevalRotateLeftTerm :: Term (IntN n) -> Term (IntN n) -> Term (IntN n) Source #

pevalRotateRightTerm :: Term (IntN n) -> Term (IntN n) -> Term (IntN n) Source #

withSbvRotateTermConstraint :: forall (n0 :: Nat) proxy r. KnownIsZero n0 => proxy n0 -> (SIntegral (NonFuncSBVBaseType n0 (IntN n)) => r) -> r Source #

sbvRotateLeftTerm :: forall proxy (n0 :: Nat). KnownIsZero n0 => proxy n0 -> SBVType n0 (IntN n) -> SBVType n0 (IntN n) -> SBVType n0 (IntN n) Source #

sbvRotateRightTerm :: forall proxy (n0 :: Nat). KnownIsZero n0 => proxy n0 -> SBVType n0 (IntN n) -> SBVType n0 (IntN n) -> SBVType n0 (IntN n) Source #

(KnownNat n, 1 <= n) => PEvalShiftTerm (IntN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Instances.PEvalShiftTerm

Methods

pevalShiftLeftTerm :: Term (IntN n) -> Term (IntN n) -> Term (IntN n) Source #

pevalShiftRightTerm :: Term (IntN n) -> Term (IntN n) -> Term (IntN n) Source #

withSbvShiftTermConstraint :: forall (n0 :: Nat) proxy r. KnownIsZero n0 => proxy n0 -> (SIntegral (NonFuncSBVBaseType n0 (IntN n)) => r) -> r Source #

sbvShiftLeftTerm :: forall proxy (n0 :: Nat). KnownIsZero n0 => proxy n0 -> SBVType n0 (IntN n) -> SBVType n0 (IntN n) -> SBVType n0 (IntN n) Source #

sbvShiftRightTerm :: forall proxy (n0 :: Nat). KnownIsZero n0 => proxy n0 -> SBVType n0 (IntN n) -> SBVType n0 (IntN n) -> SBVType n0 (IntN n) Source #

(KnownNat w, 1 <= w) => SBVRep (IntN w) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Instances.SupportedPrim

Associated Types

type SBVType n (IntN w) Source #

(KnownNat w, 1 <= w) => SupportedNonFuncPrim (IntN w) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Instances.SupportedPrim

Methods

conNonFuncSBVTerm :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> IntN w -> SBV (NonFuncSBVBaseType n (IntN w)) Source #

symNonFuncSBVTerm :: forall m (n :: Nat) proxy. (SBVFreshMonad m, KnownIsZero n) => proxy n -> String -> m (SBV (NonFuncSBVBaseType n (IntN w))) Source #

withNonFuncPrim :: forall (n :: Nat) proxy r. KnownIsZero n => proxy n -> ((SymVal (NonFuncSBVBaseType n (IntN w)), EqSymbolic (SBVType n (IntN w)), Mergeable (SBVType n (IntN w)), SMTDefinable (SBVType n (IntN w)), Mergeable (SBVType n (IntN w)), SBVType n (IntN w) ~ SBV (NonFuncSBVBaseType n (IntN w)), PrimConstraint n (IntN w)) => r) -> r Source #

(KnownNat w, 1 <= w) => SupportedPrim (IntN w) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Instances.SupportedPrim

Methods

termCache :: Cache (Term (IntN w)) Source #

pformatCon :: IntN w -> String Source #

pformatSym :: TypedSymbol (IntN w) -> String Source #

defaultValue :: IntN w Source #

defaultValueDynamic :: proxy (IntN w) -> ModelValue Source #

pevalITETerm :: Term Bool -> Term (IntN w) -> Term (IntN w) -> Term (IntN w) Source #

pevalEqTerm :: Term (IntN w) -> Term (IntN w) -> Term Bool Source #

conSBVTerm :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> IntN w -> SBVType n (IntN w) Source #

symSBVName :: TypedSymbol (IntN w) -> Int -> String Source #

symSBVTerm :: forall m (n :: Nat) proxy. (SBVFreshMonad m, KnownIsZero n) => proxy n -> String -> m (SBVType n (IntN w)) Source #

withPrim :: forall (n :: Nat) p a. KnownIsZero n => p n -> ((PrimConstraint n (IntN w), SMTDefinable (SBVType n (IntN w)), Mergeable (SBVType n (IntN w)), Typeable (SBVType n (IntN w))) => a) -> a Source #

sbvIte :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> SBV Bool -> SBVType n (IntN w) -> SBVType n (IntN w) -> SBVType n (IntN w) Source #

sbvEq :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> SBVType n (IntN w) -> SBVType n (IntN w) -> SBV Bool Source #

parseSMTModelResult :: Int -> ([([CV], CV)], CV) -> IntN w Source #

(KnownNat w, 1 <= w) => SupportedPrimConstraint (IntN w) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Instances.SupportedPrim

Associated Types

type PrimConstraint n (IntN w) Source #

(KnownNat n, 1 <= n) => SymRep (IntN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBV

Associated Types

type SymType (IntN n) Source #

Hashable (IntN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.BV

Methods

hashWithSalt :: Int -> IntN n -> Int #

hash :: IntN n -> Int #

(KnownNat n, 1 <= n) => GenSym (IntN n) (IntN n) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.GenSym

Methods

fresh :: MonadFresh m => IntN n -> m (UnionM (IntN n)) Source #

(KnownNat n, 1 <= n) => GenSymSimple (IntN n) (IntN n) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.GenSym

Methods

simpleFresh :: MonadFresh m => IntN n -> m (IntN n) Source #

(KnownNat n, 1 <= n) => SignConversion (WordN n) (IntN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.BV

Methods

toSigned :: WordN n -> IntN n Source #

toUnsigned :: IntN n -> WordN n Source #

(KnownNat n, 1 <= n) => Solvable (IntN n) (SymIntN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBV

(KnownNat n, 1 <= n) => ToCon (IntN n) (IntN n) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ToCon

Methods

toCon :: IntN n -> Maybe (IntN n) Source #

(KnownNat n, 1 <= n) => ToCon (SymIntN n) (IntN n) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ToCon

Methods

toCon :: SymIntN n -> Maybe (IntN n) Source #

(KnownNat n, 1 <= n) => ToSym (UnionM (IntN n)) (SymIntN n) Source # 
Instance details

Defined in Grisette.Internal.Core.Control.Monad.UnionM

Methods

toSym :: UnionM (IntN n) -> SymIntN n Source #

(KnownNat n, 1 <= n) => ToSym (IntN n) (IntN n) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ToSym

Methods

toSym :: IntN n -> IntN n Source #

(KnownNat n, 1 <= n) => ToSym (IntN n) (SymIntN n) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ToSym

Methods

toSym :: IntN n -> SymIntN n Source #

(KnownNat n, 1 <= n) => LinkedRep (IntN n) (SymIntN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBV

type NonFuncSBVBaseType _1 (IntN w) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Instances.SupportedPrim

type NonFuncSBVBaseType _1 (IntN w) = IntN w
type PrimConstraint _1 (IntN w) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Instances.SupportedPrim

type PrimConstraint _1 (IntN w) = (KnownNat w, 1 <= w, BVIsNonZero w)
type SBVType _1 (IntN w) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Instances.SupportedPrim

type SBVType _1 (IntN w) = SBV (IntN w)
type Rep (IntN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.BV

type Rep (IntN n) = D1 ('MetaData "IntN" "Grisette.Internal.SymPrim.BV" "grisette-0.5.0.0-2ZDAuzWdzg48yPrBcRstUR" 'True) (C1 ('MetaCons "IntN" 'PrefixI 'True) (S1 ('MetaSel ('Just "unIntN") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Integer)))
type SymType (IntN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBV

type SymType (IntN n) = SymIntN n

data WordN (n :: Nat) Source #

Symbolic unsigned bit vectors.

Instances

Instances details
SizedBV WordN Source # 
Instance details

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 #

PEvalBVTerm WordN Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Instances.BVPEval

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 (n :: Nat) (l :: Nat) (r :: Nat) p0 p1 p2. (KnownIsZero n, KnownNat l, KnownNat r, 1 <= l, 1 <= r) => p0 n -> p1 l -> p2 r -> SBVType n (WordN l) -> SBVType n (WordN r) -> SBVType n (WordN (l + r)) Source #

sbvBVExtendTerm :: forall (n :: Nat) (l :: Nat) (r :: Nat) p0 p1 p2. (KnownIsZero n, KnownNat l, KnownNat r, 1 <= l, 1 <= r, l <= r) => p0 n -> p1 l -> p2 r -> Bool -> SBVType n (WordN l) -> SBVType n (WordN r) Source #

sbvBVSelectTerm :: forall (int :: Nat) (ix :: Nat) (w :: Nat) (n :: Nat) p0 p1 p2 p3. (KnownIsZero int, KnownNat ix, KnownNat w, KnownNat n, 1 <= n, 1 <= w, (ix + w) <= n) => p0 int -> p1 ix -> p2 w -> p3 n -> SBVType int (WordN n) -> SBVType int (WordN w) Source #

PEvalBVSignConversionTerm WordN IntN Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Instances.BVPEval

Methods

pevalBVToSignedTerm :: forall (n :: Nat). (KnownNat n, 1 <= n) => Term (WordN n) -> Term (IntN n) Source #

pevalBVToUnsignedTerm :: forall (n :: Nat). (KnownNat n, 1 <= n) => Term (IntN n) -> Term (WordN n) Source #

withSbvSignConversionTermConstraint :: forall (n :: Nat) (integerBitwidth :: Nat) p q r. (KnownIsZero integerBitwidth, KnownNat n, 1 <= n) => p n -> q integerBitwidth -> ((Integral (NonFuncSBVBaseType integerBitwidth (WordN n)), Integral (NonFuncSBVBaseType integerBitwidth (IntN n))) => r) -> r Source #

sbvToSigned :: forall (n :: Nat) (integerBitwidth :: Nat) o p q. (KnownIsZero integerBitwidth, KnownNat n, 1 <= n) => o WordN -> p n -> q integerBitwidth -> SBVType integerBitwidth (WordN n) -> SBVType integerBitwidth (IntN n) Source #

sbvToUnsigned :: forall (n :: Nat) (integerBitwidth :: Nat) o p q. (KnownIsZero integerBitwidth, KnownNat n, 1 <= n) => o IntN -> p n -> q integerBitwidth -> SBVType integerBitwidth (IntN n) -> SBVType integerBitwidth (WordN n) Source #

Lift (WordN n :: Type) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.BV

Methods

lift :: Quote m => WordN n -> m Exp #

liftTyped :: forall (m :: Type -> Type). Quote m => WordN n -> Code m (WordN n) #

(MonadError ArithException m, TryMerge m, KnownNat n, 1 <= n) => SafeDivision ArithException (WordN n) m Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.SafeDivision

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 #

(MonadError ArithException m, TryMerge m, KnownNat n, 1 <= n) => SafeLinearArith ArithException (WordN n) m Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.SafeLinearArith

Methods

safeAdd :: WordN n -> WordN n -> m (WordN n) Source #

safeNeg :: WordN n -> m (WordN n) Source #

safeSub :: WordN n -> WordN n -> m (WordN n) Source #

(MonadError ArithException m, TryMerge m, KnownNat n, 1 <= n) => SafeSymRotate ArithException (WordN n) m Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.SafeSymRotate

Methods

safeSymRotateL :: WordN n -> WordN n -> m (WordN n) Source #

safeSymRotateR :: WordN n -> WordN n -> m (WordN n) Source #

(MonadError ArithException m, TryMerge m, KnownNat n, 1 <= n) => SafeSymShift ArithException (WordN n) m Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.SafeSymShift

Methods

safeSymShiftL :: WordN n -> WordN n -> m (WordN n) Source #

safeSymShiftR :: WordN n -> WordN n -> m (WordN n) Source #

safeSymStrictShiftL :: WordN n -> WordN n -> m (WordN n) Source #

safeSymStrictShiftR :: WordN n -> WordN n -> m (WordN n) Source #

(KnownNat n, 1 <= n) => Arbitrary (WordN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.BV

Methods

arbitrary :: Gen (WordN n) #

shrink :: WordN n -> [WordN n] #

(KnownNat n, 1 <= n) => Bits (WordN n) Source # 
Instance details

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 #

zeroBits :: WordN n #

bit :: 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 #

bitSize :: WordN n -> Int #

isSigned :: WordN n -> Bool #

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 #

rotateR :: WordN n -> Int -> WordN n #

popCount :: WordN n -> Int #

(KnownNat n, 1 <= n) => FiniteBits (WordN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.BV

(KnownNat n, 1 <= n) => Bounded (WordN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.BV

Methods

minBound :: WordN n #

maxBound :: WordN n #

(KnownNat n, 1 <= n) => Enum (WordN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.BV

Methods

succ :: WordN n -> WordN n #

pred :: WordN n -> WordN n #

toEnum :: Int -> WordN n #

fromEnum :: WordN n -> Int #

enumFrom :: WordN n -> [WordN n] #

enumFromThen :: WordN n -> WordN n -> [WordN n] #

enumFromTo :: WordN n -> WordN n -> [WordN n] #

enumFromThenTo :: WordN n -> WordN n -> WordN n -> [WordN n] #

Generic (WordN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.BV

Associated Types

type Rep (WordN n) :: Type -> Type #

Methods

from :: WordN n -> Rep (WordN n) x #

to :: Rep (WordN n) x -> WordN n #

(KnownNat n, 1 <= n) => Num (WordN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.BV

Methods

(+) :: WordN n -> WordN n -> WordN n #

(-) :: WordN n -> WordN n -> WordN n #

(*) :: WordN n -> WordN n -> WordN n #

negate :: WordN n -> WordN n #

abs :: WordN n -> WordN n #

signum :: WordN n -> WordN n #

fromInteger :: Integer -> WordN n #

(KnownNat n, 1 <= n) => Read (WordN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.BV

(KnownNat n, 1 <= n) => Integral (WordN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.BV

Methods

quot :: WordN n -> WordN n -> WordN n #

rem :: WordN n -> WordN n -> WordN n #

div :: WordN n -> WordN n -> WordN n #

mod :: WordN n -> WordN n -> WordN n #

quotRem :: WordN n -> WordN n -> (WordN n, WordN n) #

divMod :: WordN n -> WordN n -> (WordN n, WordN n) #

toInteger :: WordN n -> Integer #

(KnownNat n, 1 <= n) => Real (WordN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.BV

Methods

toRational :: WordN n -> Rational #

(KnownNat n, 1 <= n) => Show (WordN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.BV

Methods

showsPrec :: Int -> WordN n -> ShowS #

show :: WordN n -> String #

showList :: [WordN n] -> ShowS #

NFData (WordN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.BV

Methods

rnf :: WordN n -> () #

Eq (WordN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.BV

Methods

(==) :: WordN n -> WordN n -> Bool #

(/=) :: WordN n -> WordN n -> Bool #

Ord (WordN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.BV

Methods

compare :: WordN n -> WordN n -> Ordering #

(<) :: WordN n -> WordN n -> Bool #

(<=) :: WordN n -> WordN n -> Bool #

(>) :: WordN n -> WordN n -> Bool #

(>=) :: WordN n -> WordN n -> Bool #

max :: WordN n -> WordN n -> WordN n #

min :: WordN n -> WordN n -> WordN n #

(KnownNat n, 1 <= n) => EvaluateSym (WordN n) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.EvaluateSym

Methods

evaluateSym :: Bool -> Model -> WordN n -> WordN n Source #

(KnownNat n, 1 <= n) => ExtractSymbolics (WordN n) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSymbolics

(KnownNat n, 1 <= n) => GPretty (WordN n) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.GPretty

Methods

gpretty :: WordN n -> Doc ann Source #

gprettyPrec :: Int -> WordN n -> Doc ann Source #

gprettyList :: [WordN n] -> Doc ann Source #

(KnownNat n, 1 <= n) => Mergeable (WordN n) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.Mergeable

(KnownNat n, 1 <= n) => SEq (WordN n) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.SEq

Methods

(.==) :: WordN n -> WordN n -> SymBool Source #

(./=) :: WordN n -> WordN n -> SymBool Source #

(KnownNat n, 1 <= n) => SOrd (WordN n) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.SOrd

(KnownNat n, 1 <= n) => SubstituteSym (WordN n) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.SubstituteSym

Methods

substituteSym :: LinkedRep cb sb => TypedSymbol cb -> sb -> WordN n -> WordN n Source #

(KnownNat n, 1 <= n) => SymRotate (WordN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.BV

Methods

symRotate :: WordN n -> WordN n -> WordN n Source #

symRotateNegated :: WordN n -> WordN n -> WordN n Source #

(KnownNat n, 1 <= n) => SymShift (WordN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.BV

Methods

symShift :: WordN n -> WordN n -> WordN n Source #

symShiftNegated :: WordN n -> WordN n -> WordN n Source #

(KnownNat w, 1 <= w) => NonFuncSBVRep (WordN w) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Instances.SupportedPrim

Associated Types

type NonFuncSBVBaseType n (WordN w) Source #

(KnownNat n, 1 <= n) => PEvalBitwiseTerm (WordN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Instances.PEvalBitwiseTerm

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 :: forall (n0 :: Nat) proxy r. KnownIsZero n0 => proxy n0 -> (Bits (SBVType n0 (WordN n)) => r) -> r Source #

sbvAndBitsTerm :: forall (n0 :: Nat) proxy. KnownIsZero n0 => proxy n0 -> SBVType n0 (WordN n) -> SBVType n0 (WordN n) -> SBVType n0 (WordN n) Source #

sbvOrBitsTerm :: forall (n0 :: Nat) proxy. KnownIsZero n0 => proxy n0 -> SBVType n0 (WordN n) -> SBVType n0 (WordN n) -> SBVType n0 (WordN n) Source #

sbvXorBitsTerm :: forall (n0 :: Nat) proxy. KnownIsZero n0 => proxy n0 -> SBVType n0 (WordN n) -> SBVType n0 (WordN n) -> SBVType n0 (WordN n) Source #

sbvComplementBitsTerm :: forall (n0 :: Nat) proxy. KnownIsZero n0 => proxy n0 -> SBVType n0 (WordN n) -> SBVType n0 (WordN n) Source #

(KnownNat n, 1 <= n) => PEvalDivModIntegralTerm (WordN n) Source # 
Instance details

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 :: forall (n0 :: Nat) proxy r. KnownIsZero n0 => proxy n0 -> (SDivisible (SBVType n0 (WordN n)) => r) -> r Source #

sbvDivIntegralTerm :: forall proxy (n0 :: Nat). KnownIsZero n0 => proxy n0 -> SBVType n0 (WordN n) -> SBVType n0 (WordN n) -> SBVType n0 (WordN n) Source #

sbvModIntegralTerm :: forall proxy (n0 :: Nat). KnownIsZero n0 => proxy n0 -> SBVType n0 (WordN n) -> SBVType n0 (WordN n) -> SBVType n0 (WordN n) Source #

sbvQuotIntegralTerm :: forall proxy (n0 :: Nat). KnownIsZero n0 => proxy n0 -> SBVType n0 (WordN n) -> SBVType n0 (WordN n) -> SBVType n0 (WordN n) Source #

sbvRemIntegralTerm :: forall proxy (n0 :: Nat). KnownIsZero n0 => proxy n0 -> SBVType n0 (WordN n) -> SBVType n0 (WordN n) -> SBVType n0 (WordN n) Source #

(KnownNat n, 1 <= n) => PEvalNumTerm (WordN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Instances.PEvalNumTerm

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 :: forall (n0 :: Nat) proxy r. KnownIsZero n0 => proxy n0 -> (Num (SBVType n0 (WordN n)) => r) -> r Source #

sbvAddNumTerm :: forall proxy (n0 :: Nat). KnownIsZero n0 => proxy n0 -> SBVType n0 (WordN n) -> SBVType n0 (WordN n) -> SBVType n0 (WordN n) Source #

sbvNegNumTerm :: forall proxy (n0 :: Nat). KnownIsZero n0 => proxy n0 -> SBVType n0 (WordN n) -> SBVType n0 (WordN n) Source #

sbvMulNumTerm :: forall proxy (n0 :: Nat). KnownIsZero n0 => proxy n0 -> SBVType n0 (WordN n) -> SBVType n0 (WordN n) -> SBVType n0 (WordN n) Source #

sbvAbsNumTerm :: forall proxy (n0 :: Nat). KnownIsZero n0 => proxy n0 -> SBVType n0 (WordN n) -> SBVType n0 (WordN n) Source #

sbvSignumNumTerm :: forall proxy (n0 :: Nat). KnownIsZero n0 => proxy n0 -> SBVType n0 (WordN n) -> SBVType n0 (WordN n) Source #

(KnownNat n, 1 <= n) => PEvalOrdTerm (WordN n) Source # 
Instance details

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 :: forall (n0 :: Nat) proxy r. KnownIsZero n0 => proxy n0 -> (OrdSymbolic (SBVType n0 (WordN n)) => r) -> r Source #

sbvLtOrdTerm :: forall (n0 :: Nat) proxy. KnownIsZero n0 => proxy n0 -> SBVType n0 (WordN n) -> SBVType n0 (WordN n) -> SBV Bool Source #

sbvLeOrdTerm :: forall (n0 :: Nat) proxy. KnownIsZero n0 => proxy n0 -> SBVType n0 (WordN n) -> SBVType n0 (WordN n) -> SBV Bool Source #

(KnownNat n, 1 <= n) => PEvalRotateTerm (WordN n) Source # 
Instance details

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 :: forall (n0 :: Nat) proxy r. KnownIsZero n0 => proxy n0 -> (SIntegral (NonFuncSBVBaseType n0 (WordN n)) => r) -> r Source #

sbvRotateLeftTerm :: forall proxy (n0 :: Nat). KnownIsZero n0 => proxy n0 -> SBVType n0 (WordN n) -> SBVType n0 (WordN n) -> SBVType n0 (WordN n) Source #

sbvRotateRightTerm :: forall proxy (n0 :: Nat). KnownIsZero n0 => proxy n0 -> SBVType n0 (WordN n) -> SBVType n0 (WordN n) -> SBVType n0 (WordN n) Source #

(KnownNat n, 1 <= n) => PEvalShiftTerm (WordN n) Source # 
Instance details

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 :: forall (n0 :: Nat) proxy r. KnownIsZero n0 => proxy n0 -> (SIntegral (NonFuncSBVBaseType n0 (WordN n)) => r) -> r Source #

sbvShiftLeftTerm :: forall proxy (n0 :: Nat). KnownIsZero n0 => proxy n0 -> SBVType n0 (WordN n) -> SBVType n0 (WordN n) -> SBVType n0 (WordN n) Source #

sbvShiftRightTerm :: forall proxy (n0 :: Nat). KnownIsZero n0 => proxy n0 -> SBVType n0 (WordN n) -> SBVType n0 (WordN n) -> SBVType n0 (WordN n) Source #

(KnownNat w, 1 <= w) => SBVRep (WordN w) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Instances.SupportedPrim

Associated Types

type SBVType n (WordN w) Source #

(KnownNat w, 1 <= w) => SupportedNonFuncPrim (WordN w) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Instances.SupportedPrim

Methods

conNonFuncSBVTerm :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> WordN w -> SBV (NonFuncSBVBaseType n (WordN w)) Source #

symNonFuncSBVTerm :: forall m (n :: Nat) proxy. (SBVFreshMonad m, KnownIsZero n) => proxy n -> String -> m (SBV (NonFuncSBVBaseType n (WordN w))) Source #

withNonFuncPrim :: forall (n :: Nat) proxy r. KnownIsZero n => proxy n -> ((SymVal (NonFuncSBVBaseType n (WordN w)), EqSymbolic (SBVType n (WordN w)), Mergeable (SBVType n (WordN w)), SMTDefinable (SBVType n (WordN w)), Mergeable (SBVType n (WordN w)), SBVType n (WordN w) ~ SBV (NonFuncSBVBaseType n (WordN w)), PrimConstraint n (WordN w)) => r) -> r Source #

(KnownNat w, 1 <= w) => SupportedPrim (WordN w) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Instances.SupportedPrim

Methods

termCache :: Cache (Term (WordN w)) Source #

pformatCon :: WordN w -> String Source #

pformatSym :: TypedSymbol (WordN w) -> String Source #

defaultValue :: WordN w Source #

defaultValueDynamic :: proxy (WordN w) -> ModelValue Source #

pevalITETerm :: Term Bool -> Term (WordN w) -> Term (WordN w) -> Term (WordN w) Source #

pevalEqTerm :: Term (WordN w) -> Term (WordN w) -> Term Bool Source #

conSBVTerm :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> WordN w -> SBVType n (WordN w) Source #

symSBVName :: TypedSymbol (WordN w) -> Int -> String Source #

symSBVTerm :: forall m (n :: Nat) proxy. (SBVFreshMonad m, KnownIsZero n) => proxy n -> String -> m (SBVType n (WordN w)) Source #

withPrim :: forall (n :: Nat) p a. KnownIsZero n => p n -> ((PrimConstraint n (WordN w), SMTDefinable (SBVType n (WordN w)), Mergeable (SBVType n (WordN w)), Typeable (SBVType n (WordN w))) => a) -> a Source #

sbvIte :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> SBV Bool -> SBVType n (WordN w) -> SBVType n (WordN w) -> SBVType n (WordN w) Source #

sbvEq :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> SBVType n (WordN w) -> SBVType n (WordN w) -> SBV Bool Source #

parseSMTModelResult :: Int -> ([([CV], CV)], CV) -> WordN w Source #

(KnownNat w, 1 <= w) => SupportedPrimConstraint (WordN w) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Instances.SupportedPrim

Associated Types

type PrimConstraint n (WordN w) Source #

(KnownNat n, 1 <= n) => SymRep (WordN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBV

Associated Types

type SymType (WordN n) Source #

Hashable (WordN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.BV

Methods

hashWithSalt :: Int -> WordN n -> Int #

hash :: WordN n -> Int #

(KnownNat n, 1 <= n) => GenSym (WordN n) (WordN n) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.GenSym

Methods

fresh :: MonadFresh m => WordN n -> m (UnionM (WordN n)) Source #

(KnownNat n, 1 <= n) => GenSymSimple (WordN n) (WordN n) Source # 
Instance details

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 # 
Instance details

Defined in Grisette.Internal.SymPrim.BV

Methods

toSigned :: WordN n -> IntN n Source #

toUnsigned :: IntN n -> WordN n Source #

(KnownNat n, 1 <= n) => Solvable (WordN n) (SymWordN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBV

(KnownNat n, 1 <= n) => ToCon (WordN n) (WordN n) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ToCon

Methods

toCon :: WordN n -> Maybe (WordN n) Source #

(KnownNat n, 1 <= n) => ToCon (SymWordN n) (WordN n) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ToCon

Methods

toCon :: SymWordN n -> Maybe (WordN n) Source #

(KnownNat n, 1 <= n) => ToSym (UnionM (WordN n)) (SymWordN n) Source # 
Instance details

Defined in Grisette.Internal.Core.Control.Monad.UnionM

Methods

toSym :: UnionM (WordN n) -> SymWordN n Source #

(KnownNat n, 1 <= n) => ToSym (WordN n) (WordN n) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ToSym

Methods

toSym :: WordN n -> WordN n Source #

(KnownNat n, 1 <= n) => ToSym (WordN n) (SymWordN n) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ToSym

Methods

toSym :: WordN n -> SymWordN n Source #

(KnownNat n, 1 <= n) => LinkedRep (WordN n) (SymWordN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBV

type NonFuncSBVBaseType _1 (WordN w) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Instances.SupportedPrim

type PrimConstraint _1 (WordN w) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Instances.SupportedPrim

type PrimConstraint _1 (WordN w) = (KnownNat w, 1 <= w, BVIsNonZero w)
type SBVType _1 (WordN w) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Instances.SupportedPrim

type SBVType _1 (WordN w) = SBV (WordN w)
type Rep (WordN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.BV

type Rep (WordN n) = D1 ('MetaData "WordN" "Grisette.Internal.SymPrim.BV" "grisette-0.5.0.0-2ZDAuzWdzg48yPrBcRstUR" 'True) (C1 ('MetaCons "WordN" 'PrefixI 'True) (S1 ('MetaSel ('Just "unWordN") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Integer)))
type SymType (WordN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBV

type SymType (WordN n) = SymWordN n

data SomeBV bv where Source #

Non-indexed bitvectors.

Constructors

SomeBV :: (KnownNat n, 1 <= n) => bv n -> SomeBV bv 

Instances

Instances details
(forall (n :: Nat). (KnownNat n, 1 <= n) => GenSym () (bv n), Mergeable (SomeBV bv)) => GenSym Int (SomeBV bv) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SomeBV

Methods

fresh :: MonadFresh m => Int -> m (UnionM (SomeBV bv)) Source #

(forall (n :: Nat). (KnownNat n, 1 <= n) => GenSymSimple () (bv n), Mergeable (SomeBV bv)) => GenSymSimple Int (SomeBV bv) Source # 
Instance details

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 # 
Instance details

Defined in Grisette.Internal.SymPrim.SomeBV

Methods

lift :: Quote m => SomeBV bv -> m Exp #

liftTyped :: forall (m :: Type -> Type). Quote m => SomeBV bv -> Code m (SomeBV bv) #

(forall (n :: Nat). (KnownNat n, 1 <= n) => Bits (bv n)) => Bits (SomeBV bv) Source # 
Instance details

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 #

zeroBits :: SomeBV bv #

bit :: 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 #

bitSize :: SomeBV bv -> 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 #

rotateR :: SomeBV bv -> Int -> SomeBV bv #

popCount :: SomeBV bv -> Int #

(forall (n :: Nat). (KnownNat n, 1 <= n) => FiniteBits (bv n)) => FiniteBits (SomeBV bv) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SomeBV

(forall (n :: Nat). (KnownNat n, 1 <= n) => Enum (bv n)) => Enum (SomeBV bv) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SomeBV

Methods

succ :: SomeBV bv -> SomeBV bv #

pred :: SomeBV bv -> SomeBV bv #

toEnum :: Int -> 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)) => Num (SomeBV bv) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SomeBV

Methods

(+) :: SomeBV bv -> SomeBV bv -> SomeBV bv #

(-) :: SomeBV bv -> SomeBV bv -> SomeBV bv #

(*) :: SomeBV bv -> SomeBV bv -> SomeBV bv #

negate :: SomeBV bv -> SomeBV bv #

abs :: SomeBV bv -> SomeBV bv #

signum :: SomeBV bv -> SomeBV bv #

fromInteger :: Integer -> SomeBV bv #

(forall (n :: Nat). (KnownNat n, 1 <= n) => Integral (bv n)) => Integral (SomeBV bv) Source # 
Instance details

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) #

toInteger :: SomeBV bv -> Integer #

(forall (n :: Nat). (KnownNat n, 1 <= n) => Real (bv n)) => Real (SomeBV bv) Source # 
Instance details

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 # 
Instance details

Defined in Grisette.Internal.SymPrim.SomeBV

Methods

showsPrec :: Int -> SomeBV bv -> ShowS #

show :: SomeBV bv -> String #

showList :: [SomeBV bv] -> ShowS #

(forall (n :: Nat). (KnownNat n, 1 <= n) => NFData (bv n)) => NFData (SomeBV bv) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SomeBV

Methods

rnf :: SomeBV bv -> () #

(forall (n :: Nat). (KnownNat n, 1 <= n) => Eq (bv n)) => Eq (SomeBV bv) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SomeBV

Methods

(==) :: SomeBV bv -> SomeBV bv -> Bool #

(/=) :: SomeBV bv -> SomeBV bv -> Bool #

(forall (n :: Nat). (KnownNat n, 1 <= n) => Ord (bv n)) => Ord (SomeBV bv) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SomeBV

Methods

compare :: SomeBV bv -> SomeBV bv -> Ordering #

(<) :: SomeBV bv -> SomeBV bv -> Bool #

(<=) :: SomeBV bv -> SomeBV bv -> Bool #

(>) :: SomeBV bv -> SomeBV bv -> Bool #

(>=) :: SomeBV bv -> SomeBV bv -> Bool #

max :: SomeBV bv -> SomeBV bv -> SomeBV bv #

min :: SomeBV bv -> SomeBV bv -> SomeBV bv #

SizedBV bv => BV (SomeBV bv) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SomeBV

Methods

bvConcat :: SomeBV bv -> SomeBV bv -> SomeBV bv Source #

bvZext :: Int -> SomeBV bv -> SomeBV bv Source #

bvSext :: Int -> SomeBV bv -> SomeBV bv Source #

bvExt :: Int -> SomeBV bv -> SomeBV bv Source #

bvSelect :: Int -> Int -> SomeBV bv -> SomeBV bv Source #

bv :: Integral a => Int -> a -> SomeBV bv Source #

(forall (n :: Nat). (KnownNat n, 1 <= n) => EvaluateSym (bv n)) => EvaluateSym (SomeBV bv) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SomeBV

Methods

evaluateSym :: Bool -> Model -> SomeBV bv -> SomeBV bv Source #

(forall (n :: Nat). (KnownNat n, 1 <= n) => ExtractSymbolics (bv n)) => ExtractSymbolics (SomeBV bv) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SomeBV

(forall (n :: Nat). (KnownNat n, 1 <= n) => GPretty (bv n)) => GPretty (SomeBV bv) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SomeBV

Methods

gpretty :: SomeBV bv -> Doc ann Source #

gprettyPrec :: Int -> SomeBV bv -> Doc ann Source #

gprettyList :: [SomeBV bv] -> Doc ann Source #

(forall (n :: Nat). (KnownNat n, 1 <= n) => ITEOp (bv n)) => ITEOp (SomeBV bv) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SomeBV

Methods

symIte :: SymBool -> SomeBV bv -> SomeBV bv -> SomeBV bv Source #

(forall (n :: Nat). (KnownNat n, 1 <= n) => Mergeable (bv n)) => Mergeable (SomeBV bv) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SomeBV

(forall (n :: Nat). (KnownNat n, 1 <= n) => SEq (bv n)) => SEq (SomeBV bv) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SomeBV

Methods

(.==) :: SomeBV bv -> SomeBV bv -> SymBool Source #

(./=) :: SomeBV bv -> SomeBV bv -> SymBool Source #

(forall (n :: Nat). (KnownNat n, 1 <= n) => SOrd (bv n)) => SOrd (SomeBV bv) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SomeBV

(forall (n :: Nat). (KnownNat n, 1 <= n) => SubstituteSym (bv n)) => SubstituteSym (SomeBV bv) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SomeBV

Methods

substituteSym :: LinkedRep cb sb => TypedSymbol cb -> sb -> SomeBV bv -> SomeBV bv Source #

(forall (n :: Nat). (KnownNat n, 1 <= n) => SymRotate (bv n)) => SymRotate (SomeBV bv) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SomeBV

Methods

symRotate :: SomeBV bv -> SomeBV bv -> SomeBV bv Source #

symRotateNegated :: SomeBV bv -> SomeBV bv -> SomeBV bv Source #

(forall (n :: Nat). (KnownNat n, 1 <= n) => SymShift (bv n)) => SymShift (SomeBV bv) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SomeBV

Methods

symShift :: SomeBV bv -> SomeBV bv -> SomeBV bv Source #

symShiftNegated :: SomeBV bv -> SomeBV bv -> SomeBV bv Source #

(forall (n :: Nat). (KnownNat n, 1 <= n) => AllSyms (bv n)) => AllSyms (SomeBV bv) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SomeBV

Methods

allSymsS :: SomeBV bv -> [SomeSym] -> [SomeSym] Source #

allSyms :: SomeBV bv -> [SomeSym] Source #

(forall (n :: Nat). (KnownNat n, 1 <= n) => Hashable (bv n)) => Hashable (SomeBV bv) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SomeBV

Methods

hashWithSalt :: Int -> SomeBV bv -> Int #

hash :: SomeBV bv -> Int #

(forall (m :: Nat). (KnownNat m, 1 <= m) => GenSym () (bv m), Mergeable (SomeBV bv)) => GenSym (SomeBV bv) (SomeBV bv) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SomeBV

Methods

fresh :: MonadFresh m => SomeBV bv -> m (UnionM (SomeBV bv)) Source #

(forall (m :: Nat). (KnownNat m, 1 <= m) => GenSymSimple () (bv m), Mergeable (SomeBV bv)) => GenSymSimple (SomeBV bv) (SomeBV bv) Source # 
Instance details

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 # 
Instance details

Defined in Grisette.Internal.SymPrim.SomeBV

Methods

toSigned :: SomeBV ubv -> SomeBV sbv Source #

toUnsigned :: SomeBV sbv -> SomeBV ubv Source #

(forall (n :: Nat). (KnownNat n, 1 <= n) => ToCon (sbv n) (cbv n)) => ToCon (SomeBV sbv) (SomeBV cbv) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SomeBV

Methods

toCon :: SomeBV sbv -> Maybe (SomeBV cbv) Source #

(forall (n :: Nat). (KnownNat n, 1 <= n) => ToSym (cbv n) (sbv n)) => ToSym (SomeBV cbv) (SomeBV sbv) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SomeBV

Methods

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 # 
Instance details

Defined in Grisette.Internal.SymPrim.SomeBV

Methods

fresh :: MonadFresh m => Proxy n -> m (UnionM (SomeBV bv)) Source #

(KnownNat n, 1 <= n, forall (m :: Nat). (KnownNat m, 1 <= m) => GenSymSimple () (bv m), Mergeable (SomeBV bv)) => GenSymSimple (Proxy n) (SomeBV bv) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SomeBV

Methods

simpleFresh :: MonadFresh m => Proxy n -> m (SomeBV bv) Source #

(forall (n :: Nat). (KnownNat n, 1 <= n) => SafeDivision e (bv n) (ExceptT e m), MonadError (Either BitwidthMismatch e) m, TryMerge m, Mergeable e) => SafeDivision (Either BitwidthMismatch e) (SomeBV bv) m Source # 
Instance details

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 #

(forall (n :: Nat). (KnownNat n, 1 <= n) => SafeLinearArith e (bv n) (ExceptT e m), MonadError (Either BitwidthMismatch e) m, TryMerge m, Mergeable e) => SafeLinearArith (Either BitwidthMismatch e) (SomeBV bv) m Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SomeBV

Methods

safeAdd :: SomeBV bv -> SomeBV bv -> m (SomeBV bv) Source #

safeNeg :: SomeBV bv -> m (SomeBV bv) Source #

safeSub :: SomeBV bv -> SomeBV bv -> m (SomeBV bv) Source #

(forall (n :: Nat). (KnownNat n, 1 <= n) => SafeSymRotate e (bv n) (ExceptT e m), MonadError (Either BitwidthMismatch e) m, TryMerge m, Mergeable e) => SafeSymRotate (Either BitwidthMismatch e) (SomeBV bv) m Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SomeBV

Methods

safeSymRotateL :: SomeBV bv -> SomeBV bv -> m (SomeBV bv) Source #

safeSymRotateR :: SomeBV bv -> SomeBV bv -> m (SomeBV bv) Source #

(forall (n :: Nat). (KnownNat n, 1 <= n) => SafeSymShift e (bv n) (ExceptT e m), MonadError (Either BitwidthMismatch e) m, TryMerge m, Mergeable e) => SafeSymShift (Either BitwidthMismatch e) (SomeBV bv) m Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SomeBV

Methods

safeSymShiftL :: SomeBV bv -> SomeBV bv -> m (SomeBV bv) Source #

safeSymShiftR :: SomeBV bv -> SomeBV bv -> m (SomeBV bv) Source #

safeSymStrictShiftL :: SomeBV bv -> SomeBV bv -> m (SomeBV bv) Source #

safeSymStrictShiftR :: SomeBV bv -> SomeBV bv -> m (SomeBV bv) Source #

data BitwidthMismatch Source #

Constructors

BitwidthMismatch 

Instances

Instances details
Exception BitwidthMismatch Source # 
Instance details

Defined in Grisette.Internal.SymPrim.BV

Generic BitwidthMismatch Source # 
Instance details

Defined in Grisette.Internal.SymPrim.BV

Associated Types

type Rep BitwidthMismatch :: Type -> Type #

Show BitwidthMismatch Source # 
Instance details

Defined in Grisette.Internal.SymPrim.BV

Eq BitwidthMismatch Source # 
Instance details

Defined in Grisette.Internal.SymPrim.BV

Ord BitwidthMismatch Source # 
Instance details

Defined in Grisette.Internal.SymPrim.BV

Mergeable BitwidthMismatch Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.Mergeable

(forall (n :: Nat). (KnownNat n, 1 <= n) => SafeDivision e (bv n) (ExceptT e m), MonadError (Either BitwidthMismatch e) m, TryMerge m, Mergeable e) => SafeDivision (Either BitwidthMismatch e) (SomeBV bv) m Source # 
Instance details

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 #

(forall (n :: Nat). (KnownNat n, 1 <= n) => SafeLinearArith e (bv n) (ExceptT e m), MonadError (Either BitwidthMismatch e) m, TryMerge m, Mergeable e) => SafeLinearArith (Either BitwidthMismatch e) (SomeBV bv) m Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SomeBV

Methods

safeAdd :: SomeBV bv -> SomeBV bv -> m (SomeBV bv) Source #

safeNeg :: SomeBV bv -> m (SomeBV bv) Source #

safeSub :: SomeBV bv -> SomeBV bv -> m (SomeBV bv) Source #

(forall (n :: Nat). (KnownNat n, 1 <= n) => SafeSymRotate e (bv n) (ExceptT e m), MonadError (Either BitwidthMismatch e) m, TryMerge m, Mergeable e) => SafeSymRotate (Either BitwidthMismatch e) (SomeBV bv) m Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SomeBV

Methods

safeSymRotateL :: SomeBV bv -> SomeBV bv -> m (SomeBV bv) Source #

safeSymRotateR :: SomeBV bv -> SomeBV bv -> m (SomeBV bv) Source #

(forall (n :: Nat). (KnownNat n, 1 <= n) => SafeSymShift e (bv n) (ExceptT e m), MonadError (Either BitwidthMismatch e) m, TryMerge m, Mergeable e) => SafeSymShift (Either BitwidthMismatch e) (SomeBV bv) m Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SomeBV

Methods

safeSymShiftL :: SomeBV bv -> SomeBV bv -> m (SomeBV bv) Source #

safeSymShiftR :: SomeBV bv -> SomeBV bv -> m (SomeBV bv) Source #

safeSymStrictShiftL :: SomeBV bv -> SomeBV bv -> m (SomeBV bv) Source #

safeSymStrictShiftR :: SomeBV bv -> SomeBV bv -> m (SomeBV bv) Source #

type Rep BitwidthMismatch Source # 
Instance details

Defined in Grisette.Internal.SymPrim.BV

type Rep BitwidthMismatch = D1 ('MetaData "BitwidthMismatch" "Grisette.Internal.SymPrim.BV" "grisette-0.5.0.0-2ZDAuzWdzg48yPrBcRstUR" 'False) (C1 ('MetaCons "BitwidthMismatch" 'PrefixI 'False) (U1 :: Type -> Type))

pattern SomeIntN :: () => (KnownNat n, 1 <= n) => IntN n -> SomeIntN Source #

Pattern synonym for SomeBV with concrete signed bitvectors.

type SomeIntN = SomeBV IntN Source #

Type synonym for SomeBV with concrete signed bitvectors.

pattern SomeWordN :: () => (KnownNat n, 1 <= n) => WordN n -> SomeWordN Source #

Pattern synonym for SomeBV with concrete unsigned bitvectors.

type SomeWordN = SomeBV WordN Source #

Type synonym for SomeBV with concrete unsigned bitvectors.

data a =-> b infixr 0 Source #

Functions as a table. Use the # operator to apply the function.

>>> :set -XTypeOperators
>>> let f = TabularFun [(1, 2), (3, 4)] 0 :: Int =-> Int
>>> f # 1
2
>>> f # 2
0
>>> f # 3
4

Constructors

TabularFun 

Fields

Instances

Instances details
Generic1 ((=->) a :: Type -> Type) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.TabularFun

Associated Types

type Rep1 ((=->) a) :: k -> Type #

Methods

from1 :: forall (a0 :: k). (a =-> a0) -> Rep1 ((=->) a) a0 #

to1 :: forall (a0 :: k). Rep1 ((=->) a) a0 -> a =-> a0 #

(Lift a, Lift b) => Lift (a =-> b :: Type) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.TabularFun

Methods

lift :: Quote m => (a =-> b) -> m Exp #

liftTyped :: forall (m :: Type -> Type). Quote m => (a =-> b) -> Code m (a =-> b) #

NFData a => NFData1 ((=->) a) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.TabularFun

Methods

liftRnf :: (a0 -> ()) -> (a =-> a0) -> () #

(SupportedPrim (ca =-> cb), LinkedRep ca sa, LinkedRep cb sb) => ToSym (UnionM (ca =-> cb)) (sa =~> sb) Source # 
Instance details

Defined in Grisette.Internal.Core.Control.Monad.UnionM

Methods

toSym :: UnionM (ca =-> cb) -> sa =~> sb Source #

Generic (a =-> b) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.TabularFun

Associated Types

type Rep (a =-> b) :: Type -> Type #

Methods

from :: (a =-> b) -> Rep (a =-> b) x #

to :: Rep (a =-> b) x -> a =-> b #

(Show a, Show b) => Show (a =-> b) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.TabularFun

Methods

showsPrec :: Int -> (a =-> b) -> ShowS #

show :: (a =-> b) -> String #

showList :: [a =-> b] -> ShowS #

(NFData a, NFData b) => NFData (a =-> b) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.TabularFun

Methods

rnf :: (a =-> b) -> () #

(Eq a, Eq b) => Eq (a =-> b) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.TabularFun

Methods

(==) :: (a =-> b) -> (a =-> b) -> Bool #

(/=) :: (a =-> b) -> (a =-> b) -> Bool #

(SupportedNonFuncPrim a, SupportedPrim b) => SBVRep (a =-> b) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.TabularFun

Associated Types

type SBVType n (a =-> b) Source #

(SupportedNonFuncPrim a, SupportedNonFuncPrim b, SupportedNonFuncPrim c, SupportedNonFuncPrim d, SupportedNonFuncPrim e, SupportedNonFuncPrim f, SupportedNonFuncPrim g, SupportedNonFuncPrim h, SupportedPrim a, SupportedPrim b, SupportedPrim c, SupportedPrim d, SupportedPrim e, SupportedPrim f, SupportedPrim g, SupportedPrim h) => SupportedPrim (a =-> (b =-> (c =-> (d =-> (e =-> (f =-> (g =-> h))))))) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.TabularFun

Methods

termCache :: Cache (Term (a =-> (b =-> (c =-> (d =-> (e =-> (f =-> (g =-> h)))))))) Source #

pformatCon :: (a =-> (b =-> (c =-> (d =-> (e =-> (f =-> (g =-> h))))))) -> String Source #

pformatSym :: TypedSymbol (a =-> (b =-> (c =-> (d =-> (e =-> (f =-> (g =-> h))))))) -> String Source #

defaultValue :: a =-> (b =-> (c =-> (d =-> (e =-> (f =-> (g =-> h)))))) Source #

defaultValueDynamic :: proxy (a =-> (b =-> (c =-> (d =-> (e =-> (f =-> (g =-> h))))))) -> ModelValue Source #

pevalITETerm :: Term Bool -> Term (a =-> (b =-> (c =-> (d =-> (e =-> (f =-> (g =-> h))))))) -> Term (a =-> (b =-> (c =-> (d =-> (e =-> (f =-> (g =-> h))))))) -> Term (a =-> (b =-> (c =-> (d =-> (e =-> (f =-> (g =-> h))))))) Source #

pevalEqTerm :: Term (a =-> (b =-> (c =-> (d =-> (e =-> (f =-> (g =-> h))))))) -> Term (a =-> (b =-> (c =-> (d =-> (e =-> (f =-> (g =-> h))))))) -> Term Bool Source #

conSBVTerm :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> (a =-> (b =-> (c =-> (d =-> (e =-> (f =-> (g =-> h))))))) -> SBVType n (a =-> (b =-> (c =-> (d =-> (e =-> (f =-> (g =-> h))))))) Source #

symSBVName :: TypedSymbol (a =-> (b =-> (c =-> (d =-> (e =-> (f =-> (g =-> h))))))) -> Int -> String Source #

symSBVTerm :: forall m (n :: Nat) proxy. (SBVFreshMonad m, KnownIsZero n) => proxy n -> String -> m (SBVType n (a =-> (b =-> (c =-> (d =-> (e =-> (f =-> (g =-> h)))))))) Source #

withPrim :: forall (n :: Nat) p a0. KnownIsZero n => p n -> ((PrimConstraint n (a =-> (b =-> (c =-> (d =-> (e =-> (f =-> (g =-> h))))))), SMTDefinable (SBVType n (a =-> (b =-> (c =-> (d =-> (e =-> (f =-> (g =-> h)))))))), Mergeable (SBVType n (a =-> (b =-> (c =-> (d =-> (e =-> (f =-> (g =-> h)))))))), Typeable (SBVType n (a =-> (b =-> (c =-> (d =-> (e =-> (f =-> (g =-> h))))))))) => a0) -> a0 Source #

sbvIte :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> SBV Bool -> SBVType n (a =-> (b =-> (c =-> (d =-> (e =-> (f =-> (g =-> h))))))) -> SBVType n (a =-> (b =-> (c =-> (d =-> (e =-> (f =-> (g =-> h))))))) -> SBVType n (a =-> (b =-> (c =-> (d =-> (e =-> (f =-> (g =-> h))))))) Source #

sbvEq :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> SBVType n (a =-> (b =-> (c =-> (d =-> (e =-> (f =-> (g =-> h))))))) -> SBVType n (a =-> (b =-> (c =-> (d =-> (e =-> (f =-> (g =-> h))))))) -> SBV Bool Source #

parseSMTModelResult :: Int -> ([([CV], CV)], CV) -> a =-> (b =-> (c =-> (d =-> (e =-> (f =-> (g =-> h)))))) Source #

(SupportedNonFuncPrim a, SupportedNonFuncPrim b, SupportedNonFuncPrim c, SupportedNonFuncPrim d, SupportedNonFuncPrim e, SupportedNonFuncPrim f, SupportedNonFuncPrim g, SupportedPrim a, SupportedPrim b, SupportedPrim c, SupportedPrim d, SupportedPrim e, SupportedPrim f, SupportedPrim g) => SupportedPrim (a =-> (b =-> (c =-> (d =-> (e =-> (f =-> g)))))) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.TabularFun

Methods

termCache :: Cache (Term (a =-> (b =-> (c =-> (d =-> (e =-> (f =-> g))))))) Source #

pformatCon :: (a =-> (b =-> (c =-> (d =-> (e =-> (f =-> g)))))) -> String Source #

pformatSym :: TypedSymbol (a =-> (b =-> (c =-> (d =-> (e =-> (f =-> g)))))) -> String Source #

defaultValue :: a =-> (b =-> (c =-> (d =-> (e =-> (f =-> g))))) Source #

defaultValueDynamic :: proxy (a =-> (b =-> (c =-> (d =-> (e =-> (f =-> g)))))) -> ModelValue Source #

pevalITETerm :: Term Bool -> Term (a =-> (b =-> (c =-> (d =-> (e =-> (f =-> g)))))) -> Term (a =-> (b =-> (c =-> (d =-> (e =-> (f =-> g)))))) -> Term (a =-> (b =-> (c =-> (d =-> (e =-> (f =-> g)))))) Source #

pevalEqTerm :: Term (a =-> (b =-> (c =-> (d =-> (e =-> (f =-> g)))))) -> Term (a =-> (b =-> (c =-> (d =-> (e =-> (f =-> g)))))) -> Term Bool Source #

conSBVTerm :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> (a =-> (b =-> (c =-> (d =-> (e =-> (f =-> g)))))) -> SBVType n (a =-> (b =-> (c =-> (d =-> (e =-> (f =-> g)))))) Source #

symSBVName :: TypedSymbol (a =-> (b =-> (c =-> (d =-> (e =-> (f =-> g)))))) -> Int -> String Source #

symSBVTerm :: forall m (n :: Nat) proxy. (SBVFreshMonad m, KnownIsZero n) => proxy n -> String -> m (SBVType n (a =-> (b =-> (c =-> (d =-> (e =-> (f =-> g))))))) Source #

withPrim :: forall (n :: Nat) p a0. KnownIsZero n => p n -> ((PrimConstraint n (a =-> (b =-> (c =-> (d =-> (e =-> (f =-> g)))))), SMTDefinable (SBVType n (a =-> (b =-> (c =-> (d =-> (e =-> (f =-> g))))))), Mergeable (SBVType n (a =-> (b =-> (c =-> (d =-> (e =-> (f =-> g))))))), Typeable (SBVType n (a =-> (b =-> (c =-> (d =-> (e =-> (f =-> g)))))))) => a0) -> a0 Source #

sbvIte :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> SBV Bool -> SBVType n (a =-> (b =-> (c =-> (d =-> (e =-> (f =-> g)))))) -> SBVType n (a =-> (b =-> (c =-> (d =-> (e =-> (f =-> g)))))) -> SBVType n (a =-> (b =-> (c =-> (d =-> (e =-> (f =-> g)))))) Source #

sbvEq :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> SBVType n (a =-> (b =-> (c =-> (d =-> (e =-> (f =-> g)))))) -> SBVType n (a =-> (b =-> (c =-> (d =-> (e =-> (f =-> g)))))) -> SBV Bool Source #

parseSMTModelResult :: Int -> ([([CV], CV)], CV) -> a =-> (b =-> (c =-> (d =-> (e =-> (f =-> g))))) Source #

(SupportedNonFuncPrim a, SupportedNonFuncPrim b, SupportedNonFuncPrim c, SupportedNonFuncPrim d, SupportedNonFuncPrim e, SupportedNonFuncPrim f, SupportedPrim a, SupportedPrim b, SupportedPrim c, SupportedPrim d, SupportedPrim e, SupportedPrim f) => SupportedPrim (a =-> (b =-> (c =-> (d =-> (e =-> f))))) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.TabularFun

Methods

termCache :: Cache (Term (a =-> (b =-> (c =-> (d =-> (e =-> f)))))) Source #

pformatCon :: (a =-> (b =-> (c =-> (d =-> (e =-> f))))) -> String Source #

pformatSym :: TypedSymbol (a =-> (b =-> (c =-> (d =-> (e =-> f))))) -> String Source #

defaultValue :: a =-> (b =-> (c =-> (d =-> (e =-> f)))) Source #

defaultValueDynamic :: proxy (a =-> (b =-> (c =-> (d =-> (e =-> f))))) -> ModelValue Source #

pevalITETerm :: Term Bool -> Term (a =-> (b =-> (c =-> (d =-> (e =-> f))))) -> Term (a =-> (b =-> (c =-> (d =-> (e =-> f))))) -> Term (a =-> (b =-> (c =-> (d =-> (e =-> f))))) Source #

pevalEqTerm :: Term (a =-> (b =-> (c =-> (d =-> (e =-> f))))) -> Term (a =-> (b =-> (c =-> (d =-> (e =-> f))))) -> Term Bool Source #

conSBVTerm :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> (a =-> (b =-> (c =-> (d =-> (e =-> f))))) -> SBVType n (a =-> (b =-> (c =-> (d =-> (e =-> f))))) Source #

symSBVName :: TypedSymbol (a =-> (b =-> (c =-> (d =-> (e =-> f))))) -> Int -> String Source #

symSBVTerm :: forall m (n :: Nat) proxy. (SBVFreshMonad m, KnownIsZero n) => proxy n -> String -> m (SBVType n (a =-> (b =-> (c =-> (d =-> (e =-> f)))))) Source #

withPrim :: forall (n :: Nat) p a0. KnownIsZero n => p n -> ((PrimConstraint n (a =-> (b =-> (c =-> (d =-> (e =-> f))))), SMTDefinable (SBVType n (a =-> (b =-> (c =-> (d =-> (e =-> f)))))), Mergeable (SBVType n (a =-> (b =-> (c =-> (d =-> (e =-> f)))))), Typeable (SBVType n (a =-> (b =-> (c =-> (d =-> (e =-> f))))))) => a0) -> a0 Source #

sbvIte :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> SBV Bool -> SBVType n (a =-> (b =-> (c =-> (d =-> (e =-> f))))) -> SBVType n (a =-> (b =-> (c =-> (d =-> (e =-> f))))) -> SBVType n (a =-> (b =-> (c =-> (d =-> (e =-> f))))) Source #

sbvEq :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> SBVType n (a =-> (b =-> (c =-> (d =-> (e =-> f))))) -> SBVType n (a =-> (b =-> (c =-> (d =-> (e =-> f))))) -> SBV Bool Source #

parseSMTModelResult :: Int -> ([([CV], CV)], CV) -> a =-> (b =-> (c =-> (d =-> (e =-> f)))) Source #

(SupportedNonFuncPrim a, SupportedNonFuncPrim b, SupportedNonFuncPrim c, SupportedNonFuncPrim d, SupportedNonFuncPrim e, SupportedPrim a, SupportedPrim b, SupportedPrim c, SupportedPrim d, SupportedPrim e) => SupportedPrim (a =-> (b =-> (c =-> (d =-> e)))) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.TabularFun

Methods

termCache :: Cache (Term (a =-> (b =-> (c =-> (d =-> e))))) Source #

pformatCon :: (a =-> (b =-> (c =-> (d =-> e)))) -> String Source #

pformatSym :: TypedSymbol (a =-> (b =-> (c =-> (d =-> e)))) -> String Source #

defaultValue :: a =-> (b =-> (c =-> (d =-> e))) Source #

defaultValueDynamic :: proxy (a =-> (b =-> (c =-> (d =-> e)))) -> ModelValue Source #

pevalITETerm :: Term Bool -> Term (a =-> (b =-> (c =-> (d =-> e)))) -> Term (a =-> (b =-> (c =-> (d =-> e)))) -> Term (a =-> (b =-> (c =-> (d =-> e)))) Source #

pevalEqTerm :: Term (a =-> (b =-> (c =-> (d =-> e)))) -> Term (a =-> (b =-> (c =-> (d =-> e)))) -> Term Bool Source #

conSBVTerm :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> (a =-> (b =-> (c =-> (d =-> e)))) -> SBVType n (a =-> (b =-> (c =-> (d =-> e)))) Source #

symSBVName :: TypedSymbol (a =-> (b =-> (c =-> (d =-> e)))) -> Int -> String Source #

symSBVTerm :: forall m (n :: Nat) proxy. (SBVFreshMonad m, KnownIsZero n) => proxy n -> String -> m (SBVType n (a =-> (b =-> (c =-> (d =-> e))))) Source #

withPrim :: forall (n :: Nat) p a0. KnownIsZero n => p n -> ((PrimConstraint n (a =-> (b =-> (c =-> (d =-> e)))), SMTDefinable (SBVType n (a =-> (b =-> (c =-> (d =-> e))))), Mergeable (SBVType n (a =-> (b =-> (c =-> (d =-> e))))), Typeable (SBVType n (a =-> (b =-> (c =-> (d =-> e)))))) => a0) -> a0 Source #

sbvIte :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> SBV Bool -> SBVType n (a =-> (b =-> (c =-> (d =-> e)))) -> SBVType n (a =-> (b =-> (c =-> (d =-> e)))) -> SBVType n (a =-> (b =-> (c =-> (d =-> e)))) Source #

sbvEq :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> SBVType n (a =-> (b =-> (c =-> (d =-> e)))) -> SBVType n (a =-> (b =-> (c =-> (d =-> e)))) -> SBV Bool Source #

parseSMTModelResult :: Int -> ([([CV], CV)], CV) -> a =-> (b =-> (c =-> (d =-> e))) Source #

(SupportedNonFuncPrim a, SupportedNonFuncPrim b, SupportedNonFuncPrim c, SupportedNonFuncPrim d, SupportedPrim a, SupportedPrim b, SupportedPrim c, SupportedPrim d) => SupportedPrim (a =-> (b =-> (c =-> d))) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.TabularFun

Methods

termCache :: Cache (Term (a =-> (b =-> (c =-> d)))) Source #

pformatCon :: (a =-> (b =-> (c =-> d))) -> String Source #

pformatSym :: TypedSymbol (a =-> (b =-> (c =-> d))) -> String Source #

defaultValue :: a =-> (b =-> (c =-> d)) Source #

defaultValueDynamic :: proxy (a =-> (b =-> (c =-> d))) -> ModelValue Source #

pevalITETerm :: Term Bool -> Term (a =-> (b =-> (c =-> d))) -> Term (a =-> (b =-> (c =-> d))) -> Term (a =-> (b =-> (c =-> d))) Source #

pevalEqTerm :: Term (a =-> (b =-> (c =-> d))) -> Term (a =-> (b =-> (c =-> d))) -> Term Bool Source #

conSBVTerm :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> (a =-> (b =-> (c =-> d))) -> SBVType n (a =-> (b =-> (c =-> d))) Source #

symSBVName :: TypedSymbol (a =-> (b =-> (c =-> d))) -> Int -> String Source #

symSBVTerm :: forall m (n :: Nat) proxy. (SBVFreshMonad m, KnownIsZero n) => proxy n -> String -> m (SBVType n (a =-> (b =-> (c =-> d)))) Source #

withPrim :: forall (n :: Nat) p a0. KnownIsZero n => p n -> ((PrimConstraint n (a =-> (b =-> (c =-> d))), SMTDefinable (SBVType n (a =-> (b =-> (c =-> d)))), Mergeable (SBVType n (a =-> (b =-> (c =-> d)))), Typeable (SBVType n (a =-> (b =-> (c =-> d))))) => a0) -> a0 Source #

sbvIte :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> SBV Bool -> SBVType n (a =-> (b =-> (c =-> d))) -> SBVType n (a =-> (b =-> (c =-> d))) -> SBVType n (a =-> (b =-> (c =-> d))) Source #

sbvEq :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> SBVType n (a =-> (b =-> (c =-> d))) -> SBVType n (a =-> (b =-> (c =-> d))) -> SBV Bool Source #

parseSMTModelResult :: Int -> ([([CV], CV)], CV) -> a =-> (b =-> (c =-> d)) Source #

(SupportedNonFuncPrim a, SupportedNonFuncPrim b, SupportedNonFuncPrim c, SupportedPrim a, SupportedPrim b, SupportedPrim c) => SupportedPrim (a =-> (b =-> c)) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.TabularFun

Methods

termCache :: Cache (Term (a =-> (b =-> c))) Source #

pformatCon :: (a =-> (b =-> c)) -> String Source #

pformatSym :: TypedSymbol (a =-> (b =-> c)) -> String Source #

defaultValue :: a =-> (b =-> c) Source #

defaultValueDynamic :: proxy (a =-> (b =-> c)) -> ModelValue Source #

pevalITETerm :: Term Bool -> Term (a =-> (b =-> c)) -> Term (a =-> (b =-> c)) -> Term (a =-> (b =-> c)) Source #

pevalEqTerm :: Term (a =-> (b =-> c)) -> Term (a =-> (b =-> c)) -> Term Bool Source #

conSBVTerm :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> (a =-> (b =-> c)) -> SBVType n (a =-> (b =-> c)) Source #

symSBVName :: TypedSymbol (a =-> (b =-> c)) -> Int -> String Source #

symSBVTerm :: forall m (n :: Nat) proxy. (SBVFreshMonad m, KnownIsZero n) => proxy n -> String -> m (SBVType n (a =-> (b =-> c))) Source #

withPrim :: forall (n :: Nat) p a0. KnownIsZero n => p n -> ((PrimConstraint n (a =-> (b =-> c)), SMTDefinable (SBVType n (a =-> (b =-> c))), Mergeable (SBVType n (a =-> (b =-> c))), Typeable (SBVType n (a =-> (b =-> c)))) => a0) -> a0 Source #

sbvIte :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> SBV Bool -> SBVType n (a =-> (b =-> c)) -> SBVType n (a =-> (b =-> c)) -> SBVType n (a =-> (b =-> c)) Source #

sbvEq :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> SBVType n (a =-> (b =-> c)) -> SBVType n (a =-> (b =-> c)) -> SBV Bool Source #

parseSMTModelResult :: Int -> ([([CV], CV)], CV) -> a =-> (b =-> c) Source #

(SupportedNonFuncPrim a, SupportedNonFuncPrim b) => SupportedPrim (a =-> b) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.TabularFun

Methods

termCache :: Cache (Term (a =-> b)) Source #

pformatCon :: (a =-> b) -> String Source #

pformatSym :: TypedSymbol (a =-> b) -> String Source #

defaultValue :: a =-> b Source #

defaultValueDynamic :: proxy (a =-> b) -> ModelValue Source #

pevalITETerm :: Term Bool -> Term (a =-> b) -> Term (a =-> b) -> Term (a =-> b) Source #

pevalEqTerm :: Term (a =-> b) -> Term (a =-> b) -> Term Bool Source #

conSBVTerm :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> (a =-> b) -> SBVType n (a =-> b) Source #

symSBVName :: TypedSymbol (a =-> b) -> Int -> String Source #

symSBVTerm :: forall m (n :: Nat) proxy. (SBVFreshMonad m, KnownIsZero n) => proxy n -> String -> m (SBVType n (a =-> b)) Source #

withPrim :: forall (n :: Nat) p a0. KnownIsZero n => p n -> ((PrimConstraint n (a =-> b), SMTDefinable (SBVType n (a =-> b)), Mergeable (SBVType n (a =-> b)), Typeable (SBVType n (a =-> b))) => a0) -> a0 Source #

sbvIte :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> SBV Bool -> SBVType n (a =-> b) -> SBVType n (a =-> b) -> SBVType n (a =-> b) Source #

sbvEq :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> SBVType n (a =-> b) -> SBVType n (a =-> b) -> SBV Bool Source #

parseSMTModelResult :: Int -> ([([CV], CV)], CV) -> a =-> b Source #

(SupportedNonFuncPrim a, SupportedPrim b) => SupportedPrimConstraint (a =-> b) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.TabularFun

Associated Types

type PrimConstraint n (a =-> b) Source #

(SymRep a, SymRep b, SupportedPrim (a =-> b)) => SymRep (a =-> b) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymTabularFun

Associated Types

type SymType (a =-> b) Source #

(Hashable a, Hashable b) => Hashable (a =-> b) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.TabularFun

Methods

hashWithSalt :: Int -> (a =-> b) -> Int #

hash :: (a =-> b) -> Int #

Eq a => Function (a =-> b) a b Source # 
Instance details

Defined in Grisette.Internal.SymPrim.TabularFun

Methods

(#) :: (a =-> b) -> a -> b Source #

(SupportedPrim a, SupportedPrim b, SupportedPrim (a =-> b)) => PEvalApplyTerm (a =-> b) a b Source # 
Instance details

Defined in Grisette.Internal.SymPrim.TabularFun

Methods

pevalApplyTerm :: Term (a =-> b) -> Term a -> Term b Source #

sbvApplyTerm :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> SBVType n (a =-> b) -> SBVType n a -> SBVType n b Source #

(SupportedPrim ca, SupportedPrim cb, LinkedRep ca sa, LinkedRep cb sb, SupportedPrim (ca =-> cb)) => Solvable (ca =-> cb) (sa =~> sb) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymTabularFun

Methods

con :: (ca =-> cb) -> sa =~> sb Source #

conView :: (sa =~> sb) -> Maybe (ca =-> cb) Source #

sym :: Symbol -> sa =~> sb Source #

ssym :: Identifier -> sa =~> sb Source #

isym :: Identifier -> Int -> sa =~> sb Source #

(SupportedPrim (ca =-> cb), LinkedRep ca sa, LinkedRep cb sb) => ToCon (sa =~> sb) (ca =-> cb) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ToCon

Methods

toCon :: (sa =~> sb) -> Maybe (ca =-> cb) Source #

(SupportedPrim (ca =-> cb), LinkedRep ca sa, LinkedRep cb sb) => ToSym (ca =-> cb) (sa =~> sb) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ToSym

Methods

toSym :: (ca =-> cb) -> sa =~> sb Source #

(LinkedRep ca sa, LinkedRep cb sb, SupportedPrim (ca =-> cb)) => LinkedRep (ca =-> cb) (sa =~> sb) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymTabularFun

Methods

underlyingTerm :: (sa =~> sb) -> Term (ca =-> cb) Source #

wrapTerm :: Term (ca =-> cb) -> sa =~> sb Source #

type Rep1 ((=->) a :: Type -> Type) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.TabularFun

type Rep1 ((=->) a :: Type -> Type) = D1 ('MetaData "=->" "Grisette.Internal.SymPrim.TabularFun" "grisette-0.5.0.0-2ZDAuzWdzg48yPrBcRstUR" 'False) (C1 ('MetaCons "TabularFun" 'PrefixI 'True) (S1 ('MetaSel ('Just "funcTable") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (List :.: Rec1 ((,) a)) :*: S1 ('MetaSel ('Just "defaultFuncValue") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1))
type PrimConstraint n (a =-> b) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.TabularFun

type SBVType n (a =-> b) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.TabularFun

type SBVType n (a =-> b) = SBV (NonFuncSBVBaseType n a) -> SBVType n b
type Rep (a =-> b) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.TabularFun

type Rep (a =-> b) = D1 ('MetaData "=->" "Grisette.Internal.SymPrim.TabularFun" "grisette-0.5.0.0-2ZDAuzWdzg48yPrBcRstUR" '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 SymType (a =-> b) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymTabularFun

type SymType (a =-> b) = SymType a =~> SymType b

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.

>>> :set -XOverloadedStrings
>>> :set -XTypeOperators
>>> let f = ("x" :: TypedSymbol 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

Instances details
Lift (a --> b :: Type) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.GeneralFun

Methods

lift :: Quote m => (a --> b) -> m Exp #

liftTyped :: forall (m :: Type -> Type). Quote m => (a --> b) -> Code m (a --> b) #

(SupportedPrim (ca --> cb), LinkedRep ca sa, LinkedRep cb sb) => ToSym (UnionM (ca --> cb)) (sa -~> sb) Source # 
Instance details

Defined in Grisette.Internal.Core.Control.Monad.UnionM

Methods

toSym :: UnionM (ca --> cb) -> sa -~> sb Source #

Show (a --> b) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.GeneralFun

Methods

showsPrec :: Int -> (a --> b) -> ShowS #

show :: (a --> b) -> String #

showList :: [a --> b] -> ShowS #

NFData (a --> b) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.GeneralFun

Methods

rnf :: (a --> b) -> () #

Eq (a --> b) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.GeneralFun

Methods

(==) :: (a --> b) -> (a --> b) -> Bool #

(/=) :: (a --> b) -> (a --> b) -> Bool #

(SupportedNonFuncPrim a, SupportedPrim b) => SBVRep (a --> b) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.GeneralFun

Associated Types

type SBVType n (a --> b) Source #

(SupportedNonFuncPrim a, SupportedNonFuncPrim b, SupportedNonFuncPrim c, SupportedNonFuncPrim d, SupportedNonFuncPrim e, SupportedNonFuncPrim f, SupportedNonFuncPrim g, SupportedNonFuncPrim h, SupportedPrim a, SupportedPrim b, SupportedPrim c, SupportedPrim d, SupportedPrim e, SupportedPrim f, SupportedPrim g, SupportedPrim h) => SupportedPrim (a --> (b --> (c --> (d --> (e --> (f --> (g --> h))))))) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.GeneralFun

Methods

termCache :: Cache (Term (a --> (b --> (c --> (d --> (e --> (f --> (g --> h)))))))) Source #

pformatCon :: (a --> (b --> (c --> (d --> (e --> (f --> (g --> h))))))) -> String Source #

pformatSym :: TypedSymbol (a --> (b --> (c --> (d --> (e --> (f --> (g --> h))))))) -> String Source #

defaultValue :: a --> (b --> (c --> (d --> (e --> (f --> (g --> h)))))) Source #

defaultValueDynamic :: proxy (a --> (b --> (c --> (d --> (e --> (f --> (g --> h))))))) -> ModelValue Source #

pevalITETerm :: Term Bool -> Term (a --> (b --> (c --> (d --> (e --> (f --> (g --> h))))))) -> Term (a --> (b --> (c --> (d --> (e --> (f --> (g --> h))))))) -> Term (a --> (b --> (c --> (d --> (e --> (f --> (g --> h))))))) Source #

pevalEqTerm :: Term (a --> (b --> (c --> (d --> (e --> (f --> (g --> h))))))) -> Term (a --> (b --> (c --> (d --> (e --> (f --> (g --> h))))))) -> Term Bool Source #

conSBVTerm :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> (a --> (b --> (c --> (d --> (e --> (f --> (g --> h))))))) -> SBVType n (a --> (b --> (c --> (d --> (e --> (f --> (g --> h))))))) Source #

symSBVName :: TypedSymbol (a --> (b --> (c --> (d --> (e --> (f --> (g --> h))))))) -> Int -> String Source #

symSBVTerm :: forall m (n :: Nat) proxy. (SBVFreshMonad m, KnownIsZero n) => proxy n -> String -> m (SBVType n (a --> (b --> (c --> (d --> (e --> (f --> (g --> h)))))))) Source #

withPrim :: forall (n :: Nat) p a0. KnownIsZero n => p n -> ((PrimConstraint n (a --> (b --> (c --> (d --> (e --> (f --> (g --> h))))))), SMTDefinable (SBVType n (a --> (b --> (c --> (d --> (e --> (f --> (g --> h)))))))), Mergeable (SBVType n (a --> (b --> (c --> (d --> (e --> (f --> (g --> h)))))))), Typeable (SBVType n (a --> (b --> (c --> (d --> (e --> (f --> (g --> h))))))))) => a0) -> a0 Source #

sbvIte :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> SBV Bool -> SBVType n (a --> (b --> (c --> (d --> (e --> (f --> (g --> h))))))) -> SBVType n (a --> (b --> (c --> (d --> (e --> (f --> (g --> h))))))) -> SBVType n (a --> (b --> (c --> (d --> (e --> (f --> (g --> h))))))) Source #

sbvEq :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> SBVType n (a --> (b --> (c --> (d --> (e --> (f --> (g --> h))))))) -> SBVType n (a --> (b --> (c --> (d --> (e --> (f --> (g --> h))))))) -> SBV Bool Source #

parseSMTModelResult :: Int -> ([([CV], CV)], CV) -> a --> (b --> (c --> (d --> (e --> (f --> (g --> h)))))) Source #

(SupportedNonFuncPrim a, SupportedNonFuncPrim b, SupportedNonFuncPrim c, SupportedNonFuncPrim d, SupportedNonFuncPrim e, SupportedNonFuncPrim f, SupportedNonFuncPrim g, SupportedPrim a, SupportedPrim b, SupportedPrim c, SupportedPrim d, SupportedPrim e, SupportedPrim f, SupportedPrim g) => SupportedPrim (a --> (b --> (c --> (d --> (e --> (f --> g)))))) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.GeneralFun

Methods

termCache :: Cache (Term (a --> (b --> (c --> (d --> (e --> (f --> g))))))) Source #

pformatCon :: (a --> (b --> (c --> (d --> (e --> (f --> g)))))) -> String Source #

pformatSym :: TypedSymbol (a --> (b --> (c --> (d --> (e --> (f --> g)))))) -> String Source #

defaultValue :: a --> (b --> (c --> (d --> (e --> (f --> g))))) Source #

defaultValueDynamic :: proxy (a --> (b --> (c --> (d --> (e --> (f --> g)))))) -> ModelValue Source #

pevalITETerm :: Term Bool -> Term (a --> (b --> (c --> (d --> (e --> (f --> g)))))) -> Term (a --> (b --> (c --> (d --> (e --> (f --> g)))))) -> Term (a --> (b --> (c --> (d --> (e --> (f --> g)))))) Source #

pevalEqTerm :: Term (a --> (b --> (c --> (d --> (e --> (f --> g)))))) -> Term (a --> (b --> (c --> (d --> (e --> (f --> g)))))) -> Term Bool Source #

conSBVTerm :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> (a --> (b --> (c --> (d --> (e --> (f --> g)))))) -> SBVType n (a --> (b --> (c --> (d --> (e --> (f --> g)))))) Source #

symSBVName :: TypedSymbol (a --> (b --> (c --> (d --> (e --> (f --> g)))))) -> Int -> String Source #

symSBVTerm :: forall m (n :: Nat) proxy. (SBVFreshMonad m, KnownIsZero n) => proxy n -> String -> m (SBVType n (a --> (b --> (c --> (d --> (e --> (f --> g))))))) Source #

withPrim :: forall (n :: Nat) p a0. KnownIsZero n => p n -> ((PrimConstraint n (a --> (b --> (c --> (d --> (e --> (f --> g)))))), SMTDefinable (SBVType n (a --> (b --> (c --> (d --> (e --> (f --> g))))))), Mergeable (SBVType n (a --> (b --> (c --> (d --> (e --> (f --> g))))))), Typeable (SBVType n (a --> (b --> (c --> (d --> (e --> (f --> g)))))))) => a0) -> a0 Source #

sbvIte :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> SBV Bool -> SBVType n (a --> (b --> (c --> (d --> (e --> (f --> g)))))) -> SBVType n (a --> (b --> (c --> (d --> (e --> (f --> g)))))) -> SBVType n (a --> (b --> (c --> (d --> (e --> (f --> g)))))) Source #

sbvEq :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> SBVType n (a --> (b --> (c --> (d --> (e --> (f --> g)))))) -> SBVType n (a --> (b --> (c --> (d --> (e --> (f --> g)))))) -> SBV Bool Source #

parseSMTModelResult :: Int -> ([([CV], CV)], CV) -> a --> (b --> (c --> (d --> (e --> (f --> g))))) Source #

(SupportedNonFuncPrim a, SupportedNonFuncPrim b, SupportedNonFuncPrim c, SupportedNonFuncPrim d, SupportedNonFuncPrim e, SupportedNonFuncPrim f, SupportedPrim a, SupportedPrim b, SupportedPrim c, SupportedPrim d, SupportedPrim e, SupportedPrim f) => SupportedPrim (a --> (b --> (c --> (d --> (e --> f))))) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.GeneralFun

Methods

termCache :: Cache (Term (a --> (b --> (c --> (d --> (e --> f)))))) Source #

pformatCon :: (a --> (b --> (c --> (d --> (e --> f))))) -> String Source #

pformatSym :: TypedSymbol (a --> (b --> (c --> (d --> (e --> f))))) -> String Source #

defaultValue :: a --> (b --> (c --> (d --> (e --> f)))) Source #

defaultValueDynamic :: proxy (a --> (b --> (c --> (d --> (e --> f))))) -> ModelValue Source #

pevalITETerm :: Term Bool -> Term (a --> (b --> (c --> (d --> (e --> f))))) -> Term (a --> (b --> (c --> (d --> (e --> f))))) -> Term (a --> (b --> (c --> (d --> (e --> f))))) Source #

pevalEqTerm :: Term (a --> (b --> (c --> (d --> (e --> f))))) -> Term (a --> (b --> (c --> (d --> (e --> f))))) -> Term Bool Source #

conSBVTerm :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> (a --> (b --> (c --> (d --> (e --> f))))) -> SBVType n (a --> (b --> (c --> (d --> (e --> f))))) Source #

symSBVName :: TypedSymbol (a --> (b --> (c --> (d --> (e --> f))))) -> Int -> String Source #

symSBVTerm :: forall m (n :: Nat) proxy. (SBVFreshMonad m, KnownIsZero n) => proxy n -> String -> m (SBVType n (a --> (b --> (c --> (d --> (e --> f)))))) Source #

withPrim :: forall (n :: Nat) p a0. KnownIsZero n => p n -> ((PrimConstraint n (a --> (b --> (c --> (d --> (e --> f))))), SMTDefinable (SBVType n (a --> (b --> (c --> (d --> (e --> f)))))), Mergeable (SBVType n (a --> (b --> (c --> (d --> (e --> f)))))), Typeable (SBVType n (a --> (b --> (c --> (d --> (e --> f))))))) => a0) -> a0 Source #

sbvIte :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> SBV Bool -> SBVType n (a --> (b --> (c --> (d --> (e --> f))))) -> SBVType n (a --> (b --> (c --> (d --> (e --> f))))) -> SBVType n (a --> (b --> (c --> (d --> (e --> f))))) Source #

sbvEq :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> SBVType n (a --> (b --> (c --> (d --> (e --> f))))) -> SBVType n (a --> (b --> (c --> (d --> (e --> f))))) -> SBV Bool Source #

parseSMTModelResult :: Int -> ([([CV], CV)], CV) -> a --> (b --> (c --> (d --> (e --> f)))) Source #

(SupportedNonFuncPrim a, SupportedNonFuncPrim b, SupportedNonFuncPrim c, SupportedNonFuncPrim d, SupportedNonFuncPrim e, SupportedPrim a, SupportedPrim b, SupportedPrim c, SupportedPrim d, SupportedPrim e) => SupportedPrim (a --> (b --> (c --> (d --> e)))) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.GeneralFun

Methods

termCache :: Cache (Term (a --> (b --> (c --> (d --> e))))) Source #

pformatCon :: (a --> (b --> (c --> (d --> e)))) -> String Source #

pformatSym :: TypedSymbol (a --> (b --> (c --> (d --> e)))) -> String Source #

defaultValue :: a --> (b --> (c --> (d --> e))) Source #

defaultValueDynamic :: proxy (a --> (b --> (c --> (d --> e)))) -> ModelValue Source #

pevalITETerm :: Term Bool -> Term (a --> (b --> (c --> (d --> e)))) -> Term (a --> (b --> (c --> (d --> e)))) -> Term (a --> (b --> (c --> (d --> e)))) Source #

pevalEqTerm :: Term (a --> (b --> (c --> (d --> e)))) -> Term (a --> (b --> (c --> (d --> e)))) -> Term Bool Source #

conSBVTerm :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> (a --> (b --> (c --> (d --> e)))) -> SBVType n (a --> (b --> (c --> (d --> e)))) Source #

symSBVName :: TypedSymbol (a --> (b --> (c --> (d --> e)))) -> Int -> String Source #

symSBVTerm :: forall m (n :: Nat) proxy. (SBVFreshMonad m, KnownIsZero n) => proxy n -> String -> m (SBVType n (a --> (b --> (c --> (d --> e))))) Source #

withPrim :: forall (n :: Nat) p a0. KnownIsZero n => p n -> ((PrimConstraint n (a --> (b --> (c --> (d --> e)))), SMTDefinable (SBVType n (a --> (b --> (c --> (d --> e))))), Mergeable (SBVType n (a --> (b --> (c --> (d --> e))))), Typeable (SBVType n (a --> (b --> (c --> (d --> e)))))) => a0) -> a0 Source #

sbvIte :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> SBV Bool -> SBVType n (a --> (b --> (c --> (d --> e)))) -> SBVType n (a --> (b --> (c --> (d --> e)))) -> SBVType n (a --> (b --> (c --> (d --> e)))) Source #

sbvEq :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> SBVType n (a --> (b --> (c --> (d --> e)))) -> SBVType n (a --> (b --> (c --> (d --> e)))) -> SBV Bool Source #

parseSMTModelResult :: Int -> ([([CV], CV)], CV) -> a --> (b --> (c --> (d --> e))) Source #

(SupportedNonFuncPrim a, SupportedNonFuncPrim b, SupportedNonFuncPrim c, SupportedNonFuncPrim d, SupportedPrim a, SupportedPrim b, SupportedPrim c, SupportedPrim d) => SupportedPrim (a --> (b --> (c --> d))) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.GeneralFun

Methods

termCache :: Cache (Term (a --> (b --> (c --> d)))) Source #

pformatCon :: (a --> (b --> (c --> d))) -> String Source #

pformatSym :: TypedSymbol (a --> (b --> (c --> d))) -> String Source #

defaultValue :: a --> (b --> (c --> d)) Source #

defaultValueDynamic :: proxy (a --> (b --> (c --> d))) -> ModelValue Source #

pevalITETerm :: Term Bool -> Term (a --> (b --> (c --> d))) -> Term (a --> (b --> (c --> d))) -> Term (a --> (b --> (c --> d))) Source #

pevalEqTerm :: Term (a --> (b --> (c --> d))) -> Term (a --> (b --> (c --> d))) -> Term Bool Source #

conSBVTerm :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> (a --> (b --> (c --> d))) -> SBVType n (a --> (b --> (c --> d))) Source #

symSBVName :: TypedSymbol (a --> (b --> (c --> d))) -> Int -> String Source #

symSBVTerm :: forall m (n :: Nat) proxy. (SBVFreshMonad m, KnownIsZero n) => proxy n -> String -> m (SBVType n (a --> (b --> (c --> d)))) Source #

withPrim :: forall (n :: Nat) p a0. KnownIsZero n => p n -> ((PrimConstraint n (a --> (b --> (c --> d))), SMTDefinable (SBVType n (a --> (b --> (c --> d)))), Mergeable (SBVType n (a --> (b --> (c --> d)))), Typeable (SBVType n (a --> (b --> (c --> d))))) => a0) -> a0 Source #

sbvIte :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> SBV Bool -> SBVType n (a --> (b --> (c --> d))) -> SBVType n (a --> (b --> (c --> d))) -> SBVType n (a --> (b --> (c --> d))) Source #

sbvEq :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> SBVType n (a --> (b --> (c --> d))) -> SBVType n (a --> (b --> (c --> d))) -> SBV Bool Source #

parseSMTModelResult :: Int -> ([([CV], CV)], CV) -> a --> (b --> (c --> d)) Source #

(SupportedNonFuncPrim a, SupportedNonFuncPrim b, SupportedNonFuncPrim c, SupportedPrim a, SupportedPrim b, SupportedPrim c) => SupportedPrim (a --> (b --> c)) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.GeneralFun

Methods

termCache :: Cache (Term (a --> (b --> c))) Source #

pformatCon :: (a --> (b --> c)) -> String Source #

pformatSym :: TypedSymbol (a --> (b --> c)) -> String Source #

defaultValue :: a --> (b --> c) Source #

defaultValueDynamic :: proxy (a --> (b --> c)) -> ModelValue Source #

pevalITETerm :: Term Bool -> Term (a --> (b --> c)) -> Term (a --> (b --> c)) -> Term (a --> (b --> c)) Source #

pevalEqTerm :: Term (a --> (b --> c)) -> Term (a --> (b --> c)) -> Term Bool Source #

conSBVTerm :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> (a --> (b --> c)) -> SBVType n (a --> (b --> c)) Source #

symSBVName :: TypedSymbol (a --> (b --> c)) -> Int -> String Source #

symSBVTerm :: forall m (n :: Nat) proxy. (SBVFreshMonad m, KnownIsZero n) => proxy n -> String -> m (SBVType n (a --> (b --> c))) Source #

withPrim :: forall (n :: Nat) p a0. KnownIsZero n => p n -> ((PrimConstraint n (a --> (b --> c)), SMTDefinable (SBVType n (a --> (b --> c))), Mergeable (SBVType n (a --> (b --> c))), Typeable (SBVType n (a --> (b --> c)))) => a0) -> a0 Source #

sbvIte :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> SBV Bool -> SBVType n (a --> (b --> c)) -> SBVType n (a --> (b --> c)) -> SBVType n (a --> (b --> c)) Source #

sbvEq :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> SBVType n (a --> (b --> c)) -> SBVType n (a --> (b --> c)) -> SBV Bool Source #

parseSMTModelResult :: Int -> ([([CV], CV)], CV) -> a --> (b --> c) Source #

(SupportedNonFuncPrim a, SupportedNonFuncPrim b) => SupportedPrim (a --> b) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.GeneralFun

Methods

termCache :: Cache (Term (a --> b)) Source #

pformatCon :: (a --> b) -> String Source #

pformatSym :: TypedSymbol (a --> b) -> String Source #

defaultValue :: a --> b Source #

defaultValueDynamic :: proxy (a --> b) -> ModelValue Source #

pevalITETerm :: Term Bool -> Term (a --> b) -> Term (a --> b) -> Term (a --> b) Source #

pevalEqTerm :: Term (a --> b) -> Term (a --> b) -> Term Bool Source #

conSBVTerm :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> (a --> b) -> SBVType n (a --> b) Source #

symSBVName :: TypedSymbol (a --> b) -> Int -> String Source #

symSBVTerm :: forall m (n :: Nat) proxy. (SBVFreshMonad m, KnownIsZero n) => proxy n -> String -> m (SBVType n (a --> b)) Source #

withPrim :: forall (n :: Nat) p a0. KnownIsZero n => p n -> ((PrimConstraint n (a --> b), SMTDefinable (SBVType n (a --> b)), Mergeable (SBVType n (a --> b)), Typeable (SBVType n (a --> b))) => a0) -> a0 Source #

sbvIte :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> SBV Bool -> SBVType n (a --> b) -> SBVType n (a --> b) -> SBVType n (a --> b) Source #

sbvEq :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> SBVType n (a --> b) -> SBVType n (a --> b) -> SBV Bool Source #

parseSMTModelResult :: Int -> ([([CV], CV)], CV) -> a --> b Source #

(SupportedNonFuncPrim a, SupportedPrim b) => SupportedPrimConstraint (a --> b) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.GeneralFun

Associated Types

type PrimConstraint n (a --> b) Source #

(SymRep ca, SymRep cb, SupportedPrim (ca --> cb)) => SymRep (ca --> cb) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymGeneralFun

Associated Types

type SymType (ca --> cb) Source #

Hashable (a --> b) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.GeneralFun

Methods

hashWithSalt :: Int -> (a --> b) -> Int #

hash :: (a --> b) -> Int #

(LinkedRep a sa, LinkedRep b sb) => Function (a --> b) sa sb Source # 
Instance details

Defined in Grisette.Internal.SymPrim.GeneralFun

Methods

(#) :: (a --> b) -> sa -> sb Source #

(SupportedPrim (a --> b), SupportedNonFuncPrim a, SupportedPrim b) => PEvalApplyTerm (a --> b) a b Source # 
Instance details

Defined in Grisette.Internal.SymPrim.GeneralFun

Methods

pevalApplyTerm :: Term (a --> b) -> Term a -> Term b Source #

sbvApplyTerm :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> SBVType n (a --> b) -> SBVType n a -> SBVType n b Source #

(SupportedPrim ca, SupportedPrim cb, LinkedRep ca sa, LinkedRep cb sb, SupportedPrim (ca --> cb)) => Solvable (ca --> cb) (sa -~> sb) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymGeneralFun

Methods

con :: (ca --> cb) -> sa -~> sb Source #

conView :: (sa -~> sb) -> Maybe (ca --> cb) Source #

sym :: Symbol -> sa -~> sb Source #

ssym :: Identifier -> sa -~> sb Source #

isym :: Identifier -> Int -> sa -~> sb Source #

(SupportedPrim (ca --> cb), LinkedRep ca sa, LinkedRep cb sb) => ToCon (sa -~> sb) (ca --> cb) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ToCon

Methods

toCon :: (sa -~> sb) -> Maybe (ca --> cb) Source #

(SupportedPrim (ca --> cb), LinkedRep ca sa, LinkedRep cb sb) => ToSym (ca --> cb) (sa -~> sb) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ToSym

Methods

toSym :: (ca --> cb) -> sa -~> sb Source #

(LinkedRep ca sa, LinkedRep cb sb, SupportedPrim ca, SupportedPrim cb, SupportedPrim (ca --> cb)) => LinkedRep (ca --> cb) (sa -~> sb) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymGeneralFun

Methods

underlyingTerm :: (sa -~> sb) -> Term (ca --> cb) Source #

wrapTerm :: Term (ca --> cb) -> sa -~> sb Source #

type PrimConstraint n (a --> b) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.GeneralFun

type SBVType n (a --> b) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.GeneralFun

type SBVType n (a --> b) = SBV (NonFuncSBVBaseType n a) -> SBVType n b
type SymType (ca --> cb) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymGeneralFun

type SymType (ca --> cb) = SymType ca -~> SymType cb

(-->) :: (SupportedPrim ca, SupportedPrim cb, LinkedRep cb sb) => TypedSymbol ca -> sb -> ca --> cb infixr 0 Source #

Construction of general symbolic functions.

>>> f = "a" --> "a" + 1 :: Integer --> Integer
>>> f
\(a:ARG :: Integer) -> (+ 1 a:ARG)

This general symbolic function needs to be applied to symbolic values: >>> f # ("a" :: SymInteger) (+ 1 a)

unsafeSomeBV :: forall bv. Int -> (forall proxy n. (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 bv r. (forall n. (KnownNat n, 1 <= n) => bv n -> r) -> SomeBV bv -> r Source #

Lift a unary operation on sized bitvectors that returns anything to SomeBV.

unarySomeBVR1 :: (forall n. (KnownNat n, 1 <= n) => bv n -> bv n) -> SomeBV bv -> SomeBV bv Source #

Lift a unary operation on sized bitvectors that returns a bitvector to SomeBV. The result will also be wrapped with SomeBV.

binSomeBV :: (forall n. (KnownNat n, 1 <= n) => bv n -> bv n -> 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. (KnownNat n, 1 <= n) => bv n -> bv n -> bv n) -> SomeBV bv -> SomeBV bv -> SomeBV bv Source #

Lift a binary operation on sized bitvectors that returns a bitvector to SomeBV. The result will also be wrapped with SomeBV. Crash if the bitwidths do not match.

binSomeBVR2 :: (forall n. (KnownNat n, 1 <= n) => bv n -> bv n -> (bv n, bv n)) -> SomeBV bv -> SomeBV bv -> (SomeBV bv, SomeBV bv) Source #

Lift a binary operation on sized bitvectors that returns two bitvectors to SomeBV. The results will also be wrapped with SomeBV. Crash if the bitwidths do not match.

binSomeBVSafe :: (MonadError (Either BitwidthMismatch e) m, TryMerge m, Mergeable e, Mergeable r) => (forall n. (KnownNat n, 1 <= n) => bv n -> bv n -> ExceptT 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 BitwidthMismatch e) m, TryMerge m, Mergeable e, forall n. (KnownNat n, 1 <= n) => Mergeable (bv n)) => (forall n. (KnownNat n, 1 <= n) => bv n -> bv n -> ExceptT e m (bv n)) -> 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 BitwidthMismatch e) m, TryMerge m, Mergeable e, forall n. (KnownNat n, 1 <= n) => Mergeable (bv n)) => (forall n. (KnownNat n, 1 <= n) => bv n -> bv n -> ExceptT e m (bv n, bv n)) -> 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.

conBV :: forall cbv bv. (forall n. (KnownNat n, 1 <= n) => Solvable (cbv n) (bv n), Solvable (cbv 1) (bv 1)) => SomeBV cbv -> SomeBV bv Source #

Construct a symbolic SomeBV with a given concrete SomeBV. Similar to con but for SomeBV.

>>> a = bv 8 0x12 :: SomeIntN
>>> conBV a :: SomeSymIntN
0x12

conBVView :: forall cbv bv. (forall n. (KnownNat n, 1 <= n) => Solvable (cbv n) (bv n), Solvable (cbv 1) (bv 1)) => SomeBV bv -> Maybe (SomeBV cbv) Source #

View pattern for symbolic SomeBV to see if it contains a concrete value and extract it. Similar to conView but for SomeBV.

>>> conBVView (bv 8 0x12 :: SomeSymIntN)
Just 0x12
>>> conBVView (ssymBV 4 "a" :: SomeSymIntN)
Nothing

pattern ConBV :: forall cbv bv. (forall n. (KnownNat n, 1 <= n) => Solvable (cbv n) (bv n), Solvable (cbv 1) (bv 1)) => SomeBV cbv -> SomeBV bv Source #

Pattern synonym for symbolic SomeBV to see if it contains a concrete value and extract it. Similar to Con but for SomeBV.

>>> case (bv 8 0x12 :: SomeSymIntN) of { ConBV c -> c; _ -> error "impossible" }
0x12

symBV :: forall cbv bv. (forall n. (KnownNat n, 1 <= n) => Solvable (cbv n) (bv n), Solvable (cbv 1) (bv 1)) => Int -> Symbol -> SomeBV bv Source #

Construct a symbolic SomeBV with a given run-time bitwidth and a symbol. Similar to sym but for SomeBV.

>>> symBV 8 "a" :: SomeSymIntN
a

ssymBV :: forall cbv bv. (forall n. (KnownNat n, 1 <= n) => Solvable (cbv n) (bv n), Solvable (cbv 1) (bv 1)) => Int -> Identifier -> SomeBV bv Source #

Construct a symbolic SomeBV with a given run-time bitwidth and an identifier. Similar to ssym but for SomeBV.

>>> ssymBV 8 "a" :: SomeSymIntN
a

isymBV :: forall cbv bv. (forall n. (KnownNat n, 1 <= n) => Solvable (cbv n) (bv n), Solvable (cbv 1) (bv 1)) => Int -> Identifier -> Int -> SomeBV bv Source #

Construct a symbolic SomeBV with a given run-time bitwidth, an identifier and an index. Similar to isym but for SomeBV.

>>> isymBV 8 "a" 1 :: SomeSymIntN
a@1

arbitraryBV :: forall bv. (forall n. (KnownNat n, 1 <= n) => Arbitrary (bv n)) => Int -> Gen (SomeBV bv) Source #

Generate an arbitrary SomeBV with a given run-time bitwidth.

Symbolic types

class (Lift t, Typeable t, Hashable t, Eq t, Show t, NFData t, SupportedPrimConstraint t, SBVRep t) => SupportedPrim t Source #

Indicates that a type is supported and can be represented as a symbolic term.

Instances

Instances details
SupportedPrim Integer Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Instances.SupportedPrim

SupportedPrim Bool Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Methods

termCache :: Cache (Term Bool) Source #

pformatCon :: Bool -> String Source #

pformatSym :: TypedSymbol Bool -> String Source #

defaultValue :: Bool Source #

defaultValueDynamic :: proxy Bool -> ModelValue Source #

pevalITETerm :: Term Bool -> Term Bool -> Term Bool -> Term Bool Source #

pevalEqTerm :: Term Bool -> Term Bool -> Term Bool Source #

conSBVTerm :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> Bool -> SBVType n Bool Source #

symSBVName :: TypedSymbol Bool -> Int -> String Source #

symSBVTerm :: forall m (n :: Nat) proxy. (SBVFreshMonad m, KnownIsZero n) => proxy n -> String -> m (SBVType n Bool) Source #

withPrim :: forall (n :: Nat) p a. KnownIsZero n => p n -> ((PrimConstraint n Bool, SMTDefinable (SBVType n Bool), Mergeable (SBVType n Bool), Typeable (SBVType n Bool)) => a) -> a Source #

sbvIte :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> SBV Bool -> SBVType n Bool -> SBVType n Bool -> SBVType n Bool Source #

sbvEq :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> SBVType n Bool -> SBVType n Bool -> SBV Bool Source #

parseSMTModelResult :: Int -> ([([CV], CV)], CV) -> Bool Source #

(KnownNat w, 1 <= w) => SupportedPrim (IntN w) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Instances.SupportedPrim

Methods

termCache :: Cache (Term (IntN w)) Source #

pformatCon :: IntN w -> String Source #

pformatSym :: TypedSymbol (IntN w) -> String Source #

defaultValue :: IntN w Source #

defaultValueDynamic :: proxy (IntN w) -> ModelValue Source #

pevalITETerm :: Term Bool -> Term (IntN w) -> Term (IntN w) -> Term (IntN w) Source #

pevalEqTerm :: Term (IntN w) -> Term (IntN w) -> Term Bool Source #

conSBVTerm :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> IntN w -> SBVType n (IntN w) Source #

symSBVName :: TypedSymbol (IntN w) -> Int -> String Source #

symSBVTerm :: forall m (n :: Nat) proxy. (SBVFreshMonad m, KnownIsZero n) => proxy n -> String -> m (SBVType n (IntN w)) Source #

withPrim :: forall (n :: Nat) p a. KnownIsZero n => p n -> ((PrimConstraint n (IntN w), SMTDefinable (SBVType n (IntN w)), Mergeable (SBVType n (IntN w)), Typeable (SBVType n (IntN w))) => a) -> a Source #

sbvIte :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> SBV Bool -> SBVType n (IntN w) -> SBVType n (IntN w) -> SBVType n (IntN w) Source #

sbvEq :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> SBVType n (IntN w) -> SBVType n (IntN w) -> SBV Bool Source #

parseSMTModelResult :: Int -> ([([CV], CV)], CV) -> IntN w Source #

(KnownNat w, 1 <= w) => SupportedPrim (WordN w) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Instances.SupportedPrim

Methods

termCache :: Cache (Term (WordN w)) Source #

pformatCon :: WordN w -> String Source #

pformatSym :: TypedSymbol (WordN w) -> String Source #

defaultValue :: WordN w Source #

defaultValueDynamic :: proxy (WordN w) -> ModelValue Source #

pevalITETerm :: Term Bool -> Term (WordN w) -> Term (WordN w) -> Term (WordN w) Source #

pevalEqTerm :: Term (WordN w) -> Term (WordN w) -> Term Bool Source #

conSBVTerm :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> WordN w -> SBVType n (WordN w) Source #

symSBVName :: TypedSymbol (WordN w) -> Int -> String Source #

symSBVTerm :: forall m (n :: Nat) proxy. (SBVFreshMonad m, KnownIsZero n) => proxy n -> String -> m (SBVType n (WordN w)) Source #

withPrim :: forall (n :: Nat) p a. KnownIsZero n => p n -> ((PrimConstraint n (WordN w), SMTDefinable (SBVType n (WordN w)), Mergeable (SBVType n (WordN w)), Typeable (SBVType n (WordN w))) => a) -> a Source #

sbvIte :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> SBV Bool -> SBVType n (WordN w) -> SBVType n (WordN w) -> SBVType n (WordN w) Source #

sbvEq :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> SBVType n (WordN w) -> SBVType n (WordN w) -> SBV Bool Source #

parseSMTModelResult :: Int -> ([([CV], CV)], CV) -> WordN w Source #

(SupportedNonFuncPrim a, SupportedNonFuncPrim b, SupportedNonFuncPrim c, SupportedNonFuncPrim d, SupportedNonFuncPrim e, SupportedNonFuncPrim f, SupportedNonFuncPrim g, SupportedNonFuncPrim h, SupportedPrim a, SupportedPrim b, SupportedPrim c, SupportedPrim d, SupportedPrim e, SupportedPrim f, SupportedPrim g, SupportedPrim h) => SupportedPrim (a --> (b --> (c --> (d --> (e --> (f --> (g --> h))))))) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.GeneralFun

Methods

termCache :: Cache (Term (a --> (b --> (c --> (d --> (e --> (f --> (g --> h)))))))) Source #

pformatCon :: (a --> (b --> (c --> (d --> (e --> (f --> (g --> h))))))) -> String Source #

pformatSym :: TypedSymbol (a --> (b --> (c --> (d --> (e --> (f --> (g --> h))))))) -> String Source #

defaultValue :: a --> (b --> (c --> (d --> (e --> (f --> (g --> h)))))) Source #

defaultValueDynamic :: proxy (a --> (b --> (c --> (d --> (e --> (f --> (g --> h))))))) -> ModelValue Source #

pevalITETerm :: Term Bool -> Term (a --> (b --> (c --> (d --> (e --> (f --> (g --> h))))))) -> Term (a --> (b --> (c --> (d --> (e --> (f --> (g --> h))))))) -> Term (a --> (b --> (c --> (d --> (e --> (f --> (g --> h))))))) Source #

pevalEqTerm :: Term (a --> (b --> (c --> (d --> (e --> (f --> (g --> h))))))) -> Term (a --> (b --> (c --> (d --> (e --> (f --> (g --> h))))))) -> Term Bool Source #

conSBVTerm :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> (a --> (b --> (c --> (d --> (e --> (f --> (g --> h))))))) -> SBVType n (a --> (b --> (c --> (d --> (e --> (f --> (g --> h))))))) Source #

symSBVName :: TypedSymbol (a --> (b --> (c --> (d --> (e --> (f --> (g --> h))))))) -> Int -> String Source #

symSBVTerm :: forall m (n :: Nat) proxy. (SBVFreshMonad m, KnownIsZero n) => proxy n -> String -> m (SBVType n (a --> (b --> (c --> (d --> (e --> (f --> (g --> h)))))))) Source #

withPrim :: forall (n :: Nat) p a0. KnownIsZero n => p n -> ((PrimConstraint n (a --> (b --> (c --> (d --> (e --> (f --> (g --> h))))))), SMTDefinable (SBVType n (a --> (b --> (c --> (d --> (e --> (f --> (g --> h)))))))), Mergeable (SBVType n (a --> (b --> (c --> (d --> (e --> (f --> (g --> h)))))))), Typeable (SBVType n (a --> (b --> (c --> (d --> (e --> (f --> (g --> h))))))))) => a0) -> a0 Source #

sbvIte :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> SBV Bool -> SBVType n (a --> (b --> (c --> (d --> (e --> (f --> (g --> h))))))) -> SBVType n (a --> (b --> (c --> (d --> (e --> (f --> (g --> h))))))) -> SBVType n (a --> (b --> (c --> (d --> (e --> (f --> (g --> h))))))) Source #

sbvEq :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> SBVType n (a --> (b --> (c --> (d --> (e --> (f --> (g --> h))))))) -> SBVType n (a --> (b --> (c --> (d --> (e --> (f --> (g --> h))))))) -> SBV Bool Source #

parseSMTModelResult :: Int -> ([([CV], CV)], CV) -> a --> (b --> (c --> (d --> (e --> (f --> (g --> h)))))) Source #

(SupportedNonFuncPrim a, SupportedNonFuncPrim b, SupportedNonFuncPrim c, SupportedNonFuncPrim d, SupportedNonFuncPrim e, SupportedNonFuncPrim f, SupportedNonFuncPrim g, SupportedPrim a, SupportedPrim b, SupportedPrim c, SupportedPrim d, SupportedPrim e, SupportedPrim f, SupportedPrim g) => SupportedPrim (a --> (b --> (c --> (d --> (e --> (f --> g)))))) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.GeneralFun

Methods

termCache :: Cache (Term (a --> (b --> (c --> (d --> (e --> (f --> g))))))) Source #

pformatCon :: (a --> (b --> (c --> (d --> (e --> (f --> g)))))) -> String Source #

pformatSym :: TypedSymbol (a --> (b --> (c --> (d --> (e --> (f --> g)))))) -> String Source #

defaultValue :: a --> (b --> (c --> (d --> (e --> (f --> g))))) Source #

defaultValueDynamic :: proxy (a --> (b --> (c --> (d --> (e --> (f --> g)))))) -> ModelValue Source #

pevalITETerm :: Term Bool -> Term (a --> (b --> (c --> (d --> (e --> (f --> g)))))) -> Term (a --> (b --> (c --> (d --> (e --> (f --> g)))))) -> Term (a --> (b --> (c --> (d --> (e --> (f --> g)))))) Source #

pevalEqTerm :: Term (a --> (b --> (c --> (d --> (e --> (f --> g)))))) -> Term (a --> (b --> (c --> (d --> (e --> (f --> g)))))) -> Term Bool Source #

conSBVTerm :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> (a --> (b --> (c --> (d --> (e --> (f --> g)))))) -> SBVType n (a --> (b --> (c --> (d --> (e --> (f --> g)))))) Source #

symSBVName :: TypedSymbol (a --> (b --> (c --> (d --> (e --> (f --> g)))))) -> Int -> String Source #

symSBVTerm :: forall m (n :: Nat) proxy. (SBVFreshMonad m, KnownIsZero n) => proxy n -> String -> m (SBVType n (a --> (b --> (c --> (d --> (e --> (f --> g))))))) Source #

withPrim :: forall (n :: Nat) p a0. KnownIsZero n => p n -> ((PrimConstraint n (a --> (b --> (c --> (d --> (e --> (f --> g)))))), SMTDefinable (SBVType n (a --> (b --> (c --> (d --> (e --> (f --> g))))))), Mergeable (SBVType n (a --> (b --> (c --> (d --> (e --> (f --> g))))))), Typeable (SBVType n (a --> (b --> (c --> (d --> (e --> (f --> g)))))))) => a0) -> a0 Source #

sbvIte :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> SBV Bool -> SBVType n (a --> (b --> (c --> (d --> (e --> (f --> g)))))) -> SBVType n (a --> (b --> (c --> (d --> (e --> (f --> g)))))) -> SBVType n (a --> (b --> (c --> (d --> (e --> (f --> g)))))) Source #

sbvEq :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> SBVType n (a --> (b --> (c --> (d --> (e --> (f --> g)))))) -> SBVType n (a --> (b --> (c --> (d --> (e --> (f --> g)))))) -> SBV Bool Source #

parseSMTModelResult :: Int -> ([([CV], CV)], CV) -> a --> (b --> (c --> (d --> (e --> (f --> g))))) Source #

(SupportedNonFuncPrim a, SupportedNonFuncPrim b, SupportedNonFuncPrim c, SupportedNonFuncPrim d, SupportedNonFuncPrim e, SupportedNonFuncPrim f, SupportedPrim a, SupportedPrim b, SupportedPrim c, SupportedPrim d, SupportedPrim e, SupportedPrim f) => SupportedPrim (a --> (b --> (c --> (d --> (e --> f))))) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.GeneralFun

Methods

termCache :: Cache (Term (a --> (b --> (c --> (d --> (e --> f)))))) Source #

pformatCon :: (a --> (b --> (c --> (d --> (e --> f))))) -> String Source #

pformatSym :: TypedSymbol (a --> (b --> (c --> (d --> (e --> f))))) -> String Source #

defaultValue :: a --> (b --> (c --> (d --> (e --> f)))) Source #

defaultValueDynamic :: proxy (a --> (b --> (c --> (d --> (e --> f))))) -> ModelValue Source #

pevalITETerm :: Term Bool -> Term (a --> (b --> (c --> (d --> (e --> f))))) -> Term (a --> (b --> (c --> (d --> (e --> f))))) -> Term (a --> (b --> (c --> (d --> (e --> f))))) Source #

pevalEqTerm :: Term (a --> (b --> (c --> (d --> (e --> f))))) -> Term (a --> (b --> (c --> (d --> (e --> f))))) -> Term Bool Source #

conSBVTerm :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> (a --> (b --> (c --> (d --> (e --> f))))) -> SBVType n (a --> (b --> (c --> (d --> (e --> f))))) Source #

symSBVName :: TypedSymbol (a --> (b --> (c --> (d --> (e --> f))))) -> Int -> String Source #

symSBVTerm :: forall m (n :: Nat) proxy. (SBVFreshMonad m, KnownIsZero n) => proxy n -> String -> m (SBVType n (a --> (b --> (c --> (d --> (e --> f)))))) Source #

withPrim :: forall (n :: Nat) p a0. KnownIsZero n => p n -> ((PrimConstraint n (a --> (b --> (c --> (d --> (e --> f))))), SMTDefinable (SBVType n (a --> (b --> (c --> (d --> (e --> f)))))), Mergeable (SBVType n (a --> (b --> (c --> (d --> (e --> f)))))), Typeable (SBVType n (a --> (b --> (c --> (d --> (e --> f))))))) => a0) -> a0 Source #

sbvIte :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> SBV Bool -> SBVType n (a --> (b --> (c --> (d --> (e --> f))))) -> SBVType n (a --> (b --> (c --> (d --> (e --> f))))) -> SBVType n (a --> (b --> (c --> (d --> (e --> f))))) Source #

sbvEq :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> SBVType n (a --> (b --> (c --> (d --> (e --> f))))) -> SBVType n (a --> (b --> (c --> (d --> (e --> f))))) -> SBV Bool Source #

parseSMTModelResult :: Int -> ([([CV], CV)], CV) -> a --> (b --> (c --> (d --> (e --> f)))) Source #

(SupportedNonFuncPrim a, SupportedNonFuncPrim b, SupportedNonFuncPrim c, SupportedNonFuncPrim d, SupportedNonFuncPrim e, SupportedPrim a, SupportedPrim b, SupportedPrim c, SupportedPrim d, SupportedPrim e) => SupportedPrim (a --> (b --> (c --> (d --> e)))) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.GeneralFun

Methods

termCache :: Cache (Term (a --> (b --> (c --> (d --> e))))) Source #

pformatCon :: (a --> (b --> (c --> (d --> e)))) -> String Source #

pformatSym :: TypedSymbol (a --> (b --> (c --> (d --> e)))) -> String Source #

defaultValue :: a --> (b --> (c --> (d --> e))) Source #

defaultValueDynamic :: proxy (a --> (b --> (c --> (d --> e)))) -> ModelValue Source #

pevalITETerm :: Term Bool -> Term (a --> (b --> (c --> (d --> e)))) -> Term (a --> (b --> (c --> (d --> e)))) -> Term (a --> (b --> (c --> (d --> e)))) Source #

pevalEqTerm :: Term (a --> (b --> (c --> (d --> e)))) -> Term (a --> (b --> (c --> (d --> e)))) -> Term Bool Source #

conSBVTerm :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> (a --> (b --> (c --> (d --> e)))) -> SBVType n (a --> (b --> (c --> (d --> e)))) Source #

symSBVName :: TypedSymbol (a --> (b --> (c --> (d --> e)))) -> Int -> String Source #

symSBVTerm :: forall m (n :: Nat) proxy. (SBVFreshMonad m, KnownIsZero n) => proxy n -> String -> m (SBVType n (a --> (b --> (c --> (d --> e))))) Source #

withPrim :: forall (n :: Nat) p a0. KnownIsZero n => p n -> ((PrimConstraint n (a --> (b --> (c --> (d --> e)))), SMTDefinable (SBVType n (a --> (b --> (c --> (d --> e))))), Mergeable (SBVType n (a --> (b --> (c --> (d --> e))))), Typeable (SBVType n (a --> (b --> (c --> (d --> e)))))) => a0) -> a0 Source #

sbvIte :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> SBV Bool -> SBVType n (a --> (b --> (c --> (d --> e)))) -> SBVType n (a --> (b --> (c --> (d --> e)))) -> SBVType n (a --> (b --> (c --> (d --> e)))) Source #

sbvEq :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> SBVType n (a --> (b --> (c --> (d --> e)))) -> SBVType n (a --> (b --> (c --> (d --> e)))) -> SBV Bool Source #

parseSMTModelResult :: Int -> ([([CV], CV)], CV) -> a --> (b --> (c --> (d --> e))) Source #

(SupportedNonFuncPrim a, SupportedNonFuncPrim b, SupportedNonFuncPrim c, SupportedNonFuncPrim d, SupportedPrim a, SupportedPrim b, SupportedPrim c, SupportedPrim d) => SupportedPrim (a --> (b --> (c --> d))) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.GeneralFun

Methods

termCache :: Cache (Term (a --> (b --> (c --> d)))) Source #

pformatCon :: (a --> (b --> (c --> d))) -> String Source #

pformatSym :: TypedSymbol (a --> (b --> (c --> d))) -> String Source #

defaultValue :: a --> (b --> (c --> d)) Source #

defaultValueDynamic :: proxy (a --> (b --> (c --> d))) -> ModelValue Source #

pevalITETerm :: Term Bool -> Term (a --> (b --> (c --> d))) -> Term (a --> (b --> (c --> d))) -> Term (a --> (b --> (c --> d))) Source #

pevalEqTerm :: Term (a --> (b --> (c --> d))) -> Term (a --> (b --> (c --> d))) -> Term Bool Source #

conSBVTerm :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> (a --> (b --> (c --> d))) -> SBVType n (a --> (b --> (c --> d))) Source #

symSBVName :: TypedSymbol (a --> (b --> (c --> d))) -> Int -> String Source #

symSBVTerm :: forall m (n :: Nat) proxy. (SBVFreshMonad m, KnownIsZero n) => proxy n -> String -> m (SBVType n (a --> (b --> (c --> d)))) Source #

withPrim :: forall (n :: Nat) p a0. KnownIsZero n => p n -> ((PrimConstraint n (a --> (b --> (c --> d))), SMTDefinable (SBVType n (a --> (b --> (c --> d)))), Mergeable (SBVType n (a --> (b --> (c --> d)))), Typeable (SBVType n (a --> (b --> (c --> d))))) => a0) -> a0 Source #

sbvIte :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> SBV Bool -> SBVType n (a --> (b --> (c --> d))) -> SBVType n (a --> (b --> (c --> d))) -> SBVType n (a --> (b --> (c --> d))) Source #

sbvEq :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> SBVType n (a --> (b --> (c --> d))) -> SBVType n (a --> (b --> (c --> d))) -> SBV Bool Source #

parseSMTModelResult :: Int -> ([([CV], CV)], CV) -> a --> (b --> (c --> d)) Source #

(SupportedNonFuncPrim a, SupportedNonFuncPrim b, SupportedNonFuncPrim c, SupportedPrim a, SupportedPrim b, SupportedPrim c) => SupportedPrim (a --> (b --> c)) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.GeneralFun

Methods

termCache :: Cache (Term (a --> (b --> c))) Source #

pformatCon :: (a --> (b --> c)) -> String Source #

pformatSym :: TypedSymbol (a --> (b --> c)) -> String Source #

defaultValue :: a --> (b --> c) Source #

defaultValueDynamic :: proxy (a --> (b --> c)) -> ModelValue Source #

pevalITETerm :: Term Bool -> Term (a --> (b --> c)) -> Term (a --> (b --> c)) -> Term (a --> (b --> c)) Source #

pevalEqTerm :: Term (a --> (b --> c)) -> Term (a --> (b --> c)) -> Term Bool Source #

conSBVTerm :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> (a --> (b --> c)) -> SBVType n (a --> (b --> c)) Source #

symSBVName :: TypedSymbol (a --> (b --> c)) -> Int -> String Source #

symSBVTerm :: forall m (n :: Nat) proxy. (SBVFreshMonad m, KnownIsZero n) => proxy n -> String -> m (SBVType n (a --> (b --> c))) Source #

withPrim :: forall (n :: Nat) p a0. KnownIsZero n => p n -> ((PrimConstraint n (a --> (b --> c)), SMTDefinable (SBVType n (a --> (b --> c))), Mergeable (SBVType n (a --> (b --> c))), Typeable (SBVType n (a --> (b --> c)))) => a0) -> a0 Source #

sbvIte :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> SBV Bool -> SBVType n (a --> (b --> c)) -> SBVType n (a --> (b --> c)) -> SBVType n (a --> (b --> c)) Source #

sbvEq :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> SBVType n (a --> (b --> c)) -> SBVType n (a --> (b --> c)) -> SBV Bool Source #

parseSMTModelResult :: Int -> ([([CV], CV)], CV) -> a --> (b --> c) Source #

(SupportedNonFuncPrim a, SupportedNonFuncPrim b) => SupportedPrim (a --> b) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.GeneralFun

Methods

termCache :: Cache (Term (a --> b)) Source #

pformatCon :: (a --> b) -> String Source #

pformatSym :: TypedSymbol (a --> b) -> String Source #

defaultValue :: a --> b Source #

defaultValueDynamic :: proxy (a --> b) -> ModelValue Source #

pevalITETerm :: Term Bool -> Term (a --> b) -> Term (a --> b) -> Term (a --> b) Source #

pevalEqTerm :: Term (a --> b) -> Term (a --> b) -> Term Bool Source #

conSBVTerm :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> (a --> b) -> SBVType n (a --> b) Source #

symSBVName :: TypedSymbol (a --> b) -> Int -> String Source #

symSBVTerm :: forall m (n :: Nat) proxy. (SBVFreshMonad m, KnownIsZero n) => proxy n -> String -> m (SBVType n (a --> b)) Source #

withPrim :: forall (n :: Nat) p a0. KnownIsZero n => p n -> ((PrimConstraint n (a --> b), SMTDefinable (SBVType n (a --> b)), Mergeable (SBVType n (a --> b)), Typeable (SBVType n (a --> b))) => a0) -> a0 Source #

sbvIte :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> SBV Bool -> SBVType n (a --> b) -> SBVType n (a --> b) -> SBVType n (a --> b) Source #

sbvEq :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> SBVType n (a --> b) -> SBVType n (a --> b) -> SBV Bool Source #

parseSMTModelResult :: Int -> ([([CV], CV)], CV) -> a --> b Source #

(SupportedNonFuncPrim a, SupportedNonFuncPrim b, SupportedNonFuncPrim c, SupportedNonFuncPrim d, SupportedNonFuncPrim e, SupportedNonFuncPrim f, SupportedNonFuncPrim g, SupportedNonFuncPrim h, SupportedPrim a, SupportedPrim b, SupportedPrim c, SupportedPrim d, SupportedPrim e, SupportedPrim f, SupportedPrim g, SupportedPrim h) => SupportedPrim (a =-> (b =-> (c =-> (d =-> (e =-> (f =-> (g =-> h))))))) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.TabularFun

Methods

termCache :: Cache (Term (a =-> (b =-> (c =-> (d =-> (e =-> (f =-> (g =-> h)))))))) Source #

pformatCon :: (a =-> (b =-> (c =-> (d =-> (e =-> (f =-> (g =-> h))))))) -> String Source #

pformatSym :: TypedSymbol (a =-> (b =-> (c =-> (d =-> (e =-> (f =-> (g =-> h))))))) -> String Source #

defaultValue :: a =-> (b =-> (c =-> (d =-> (e =-> (f =-> (g =-> h)))))) Source #

defaultValueDynamic :: proxy (a =-> (b =-> (c =-> (d =-> (e =-> (f =-> (g =-> h))))))) -> ModelValue Source #

pevalITETerm :: Term Bool -> Term (a =-> (b =-> (c =-> (d =-> (e =-> (f =-> (g =-> h))))))) -> Term (a =-> (b =-> (c =-> (d =-> (e =-> (f =-> (g =-> h))))))) -> Term (a =-> (b =-> (c =-> (d =-> (e =-> (f =-> (g =-> h))))))) Source #

pevalEqTerm :: Term (a =-> (b =-> (c =-> (d =-> (e =-> (f =-> (g =-> h))))))) -> Term (a =-> (b =-> (c =-> (d =-> (e =-> (f =-> (g =-> h))))))) -> Term Bool Source #

conSBVTerm :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> (a =-> (b =-> (c =-> (d =-> (e =-> (f =-> (g =-> h))))))) -> SBVType n (a =-> (b =-> (c =-> (d =-> (e =-> (f =-> (g =-> h))))))) Source #

symSBVName :: TypedSymbol (a =-> (b =-> (c =-> (d =-> (e =-> (f =-> (g =-> h))))))) -> Int -> String Source #

symSBVTerm :: forall m (n :: Nat) proxy. (SBVFreshMonad m, KnownIsZero n) => proxy n -> String -> m (SBVType n (a =-> (b =-> (c =-> (d =-> (e =-> (f =-> (g =-> h)))))))) Source #

withPrim :: forall (n :: Nat) p a0. KnownIsZero n => p n -> ((PrimConstraint n (a =-> (b =-> (c =-> (d =-> (e =-> (f =-> (g =-> h))))))), SMTDefinable (SBVType n (a =-> (b =-> (c =-> (d =-> (e =-> (f =-> (g =-> h)))))))), Mergeable (SBVType n (a =-> (b =-> (c =-> (d =-> (e =-> (f =-> (g =-> h)))))))), Typeable (SBVType n (a =-> (b =-> (c =-> (d =-> (e =-> (f =-> (g =-> h))))))))) => a0) -> a0 Source #

sbvIte :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> SBV Bool -> SBVType n (a =-> (b =-> (c =-> (d =-> (e =-> (f =-> (g =-> h))))))) -> SBVType n (a =-> (b =-> (c =-> (d =-> (e =-> (f =-> (g =-> h))))))) -> SBVType n (a =-> (b =-> (c =-> (d =-> (e =-> (f =-> (g =-> h))))))) Source #

sbvEq :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> SBVType n (a =-> (b =-> (c =-> (d =-> (e =-> (f =-> (g =-> h))))))) -> SBVType n (a =-> (b =-> (c =-> (d =-> (e =-> (f =-> (g =-> h))))))) -> SBV Bool Source #

parseSMTModelResult :: Int -> ([([CV], CV)], CV) -> a =-> (b =-> (c =-> (d =-> (e =-> (f =-> (g =-> h)))))) Source #

(SupportedNonFuncPrim a, SupportedNonFuncPrim b, SupportedNonFuncPrim c, SupportedNonFuncPrim d, SupportedNonFuncPrim e, SupportedNonFuncPrim f, SupportedNonFuncPrim g, SupportedPrim a, SupportedPrim b, SupportedPrim c, SupportedPrim d, SupportedPrim e, SupportedPrim f, SupportedPrim g) => SupportedPrim (a =-> (b =-> (c =-> (d =-> (e =-> (f =-> g)))))) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.TabularFun

Methods

termCache :: Cache (Term (a =-> (b =-> (c =-> (d =-> (e =-> (f =-> g))))))) Source #

pformatCon :: (a =-> (b =-> (c =-> (d =-> (e =-> (f =-> g)))))) -> String Source #

pformatSym :: TypedSymbol (a =-> (b =-> (c =-> (d =-> (e =-> (f =-> g)))))) -> String Source #

defaultValue :: a =-> (b =-> (c =-> (d =-> (e =-> (f =-> g))))) Source #

defaultValueDynamic :: proxy (a =-> (b =-> (c =-> (d =-> (e =-> (f =-> g)))))) -> ModelValue Source #

pevalITETerm :: Term Bool -> Term (a =-> (b =-> (c =-> (d =-> (e =-> (f =-> g)))))) -> Term (a =-> (b =-> (c =-> (d =-> (e =-> (f =-> g)))))) -> Term (a =-> (b =-> (c =-> (d =-> (e =-> (f =-> g)))))) Source #

pevalEqTerm :: Term (a =-> (b =-> (c =-> (d =-> (e =-> (f =-> g)))))) -> Term (a =-> (b =-> (c =-> (d =-> (e =-> (f =-> g)))))) -> Term Bool Source #

conSBVTerm :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> (a =-> (b =-> (c =-> (d =-> (e =-> (f =-> g)))))) -> SBVType n (a =-> (b =-> (c =-> (d =-> (e =-> (f =-> g)))))) Source #

symSBVName :: TypedSymbol (a =-> (b =-> (c =-> (d =-> (e =-> (f =-> g)))))) -> Int -> String Source #

symSBVTerm :: forall m (n :: Nat) proxy. (SBVFreshMonad m, KnownIsZero n) => proxy n -> String -> m (SBVType n (a =-> (b =-> (c =-> (d =-> (e =-> (f =-> g))))))) Source #

withPrim :: forall (n :: Nat) p a0. KnownIsZero n => p n -> ((PrimConstraint n (a =-> (b =-> (c =-> (d =-> (e =-> (f =-> g)))))), SMTDefinable (SBVType n (a =-> (b =-> (c =-> (d =-> (e =-> (f =-> g))))))), Mergeable (SBVType n (a =-> (b =-> (c =-> (d =-> (e =-> (f =-> g))))))), Typeable (SBVType n (a =-> (b =-> (c =-> (d =-> (e =-> (f =-> g)))))))) => a0) -> a0 Source #

sbvIte :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> SBV Bool -> SBVType n (a =-> (b =-> (c =-> (d =-> (e =-> (f =-> g)))))) -> SBVType n (a =-> (b =-> (c =-> (d =-> (e =-> (f =-> g)))))) -> SBVType n (a =-> (b =-> (c =-> (d =-> (e =-> (f =-> g)))))) Source #

sbvEq :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> SBVType n (a =-> (b =-> (c =-> (d =-> (e =-> (f =-> g)))))) -> SBVType n (a =-> (b =-> (c =-> (d =-> (e =-> (f =-> g)))))) -> SBV Bool Source #

parseSMTModelResult :: Int -> ([([CV], CV)], CV) -> a =-> (b =-> (c =-> (d =-> (e =-> (f =-> g))))) Source #

(SupportedNonFuncPrim a, SupportedNonFuncPrim b, SupportedNonFuncPrim c, SupportedNonFuncPrim d, SupportedNonFuncPrim e, SupportedNonFuncPrim f, SupportedPrim a, SupportedPrim b, SupportedPrim c, SupportedPrim d, SupportedPrim e, SupportedPrim f) => SupportedPrim (a =-> (b =-> (c =-> (d =-> (e =-> f))))) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.TabularFun

Methods

termCache :: Cache (Term (a =-> (b =-> (c =-> (d =-> (e =-> f)))))) Source #

pformatCon :: (a =-> (b =-> (c =-> (d =-> (e =-> f))))) -> String Source #

pformatSym :: TypedSymbol (a =-> (b =-> (c =-> (d =-> (e =-> f))))) -> String Source #

defaultValue :: a =-> (b =-> (c =-> (d =-> (e =-> f)))) Source #

defaultValueDynamic :: proxy (a =-> (b =-> (c =-> (d =-> (e =-> f))))) -> ModelValue Source #

pevalITETerm :: Term Bool -> Term (a =-> (b =-> (c =-> (d =-> (e =-> f))))) -> Term (a =-> (b =-> (c =-> (d =-> (e =-> f))))) -> Term (a =-> (b =-> (c =-> (d =-> (e =-> f))))) Source #

pevalEqTerm :: Term (a =-> (b =-> (c =-> (d =-> (e =-> f))))) -> Term (a =-> (b =-> (c =-> (d =-> (e =-> f))))) -> Term Bool Source #

conSBVTerm :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> (a =-> (b =-> (c =-> (d =-> (e =-> f))))) -> SBVType n (a =-> (b =-> (c =-> (d =-> (e =-> f))))) Source #

symSBVName :: TypedSymbol (a =-> (b =-> (c =-> (d =-> (e =-> f))))) -> Int -> String Source #

symSBVTerm :: forall m (n :: Nat) proxy. (SBVFreshMonad m, KnownIsZero n) => proxy n -> String -> m (SBVType n (a =-> (b =-> (c =-> (d =-> (e =-> f)))))) Source #

withPrim :: forall (n :: Nat) p a0. KnownIsZero n => p n -> ((PrimConstraint n (a =-> (b =-> (c =-> (d =-> (e =-> f))))), SMTDefinable (SBVType n (a =-> (b =-> (c =-> (d =-> (e =-> f)))))), Mergeable (SBVType n (a =-> (b =-> (c =-> (d =-> (e =-> f)))))), Typeable (SBVType n (a =-> (b =-> (c =-> (d =-> (e =-> f))))))) => a0) -> a0 Source #

sbvIte :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> SBV Bool -> SBVType n (a =-> (b =-> (c =-> (d =-> (e =-> f))))) -> SBVType n (a =-> (b =-> (c =-> (d =-> (e =-> f))))) -> SBVType n (a =-> (b =-> (c =-> (d =-> (e =-> f))))) Source #

sbvEq :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> SBVType n (a =-> (b =-> (c =-> (d =-> (e =-> f))))) -> SBVType n (a =-> (b =-> (c =-> (d =-> (e =-> f))))) -> SBV Bool Source #

parseSMTModelResult :: Int -> ([([CV], CV)], CV) -> a =-> (b =-> (c =-> (d =-> (e =-> f)))) Source #

(SupportedNonFuncPrim a, SupportedNonFuncPrim b, SupportedNonFuncPrim c, SupportedNonFuncPrim d, SupportedNonFuncPrim e, SupportedPrim a, SupportedPrim b, SupportedPrim c, SupportedPrim d, SupportedPrim e) => SupportedPrim (a =-> (b =-> (c =-> (d =-> e)))) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.TabularFun

Methods

termCache :: Cache (Term (a =-> (b =-> (c =-> (d =-> e))))) Source #

pformatCon :: (a =-> (b =-> (c =-> (d =-> e)))) -> String Source #

pformatSym :: TypedSymbol (a =-> (b =-> (c =-> (d =-> e)))) -> String Source #

defaultValue :: a =-> (b =-> (c =-> (d =-> e))) Source #

defaultValueDynamic :: proxy (a =-> (b =-> (c =-> (d =-> e)))) -> ModelValue Source #

pevalITETerm :: Term Bool -> Term (a =-> (b =-> (c =-> (d =-> e)))) -> Term (a =-> (b =-> (c =-> (d =-> e)))) -> Term (a =-> (b =-> (c =-> (d =-> e)))) Source #

pevalEqTerm :: Term (a =-> (b =-> (c =-> (d =-> e)))) -> Term (a =-> (b =-> (c =-> (d =-> e)))) -> Term Bool Source #

conSBVTerm :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> (a =-> (b =-> (c =-> (d =-> e)))) -> SBVType n (a =-> (b =-> (c =-> (d =-> e)))) Source #

symSBVName :: TypedSymbol (a =-> (b =-> (c =-> (d =-> e)))) -> Int -> String Source #

symSBVTerm :: forall m (n :: Nat) proxy. (SBVFreshMonad m, KnownIsZero n) => proxy n -> String -> m (SBVType n (a =-> (b =-> (c =-> (d =-> e))))) Source #

withPrim :: forall (n :: Nat) p a0. KnownIsZero n => p n -> ((PrimConstraint n (a =-> (b =-> (c =-> (d =-> e)))), SMTDefinable (SBVType n (a =-> (b =-> (c =-> (d =-> e))))), Mergeable (SBVType n (a =-> (b =-> (c =-> (d =-> e))))), Typeable (SBVType n (a =-> (b =-> (c =-> (d =-> e)))))) => a0) -> a0 Source #

sbvIte :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> SBV Bool -> SBVType n (a =-> (b =-> (c =-> (d =-> e)))) -> SBVType n (a =-> (b =-> (c =-> (d =-> e)))) -> SBVType n (a =-> (b =-> (c =-> (d =-> e)))) Source #

sbvEq :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> SBVType n (a =-> (b =-> (c =-> (d =-> e)))) -> SBVType n (a =-> (b =-> (c =-> (d =-> e)))) -> SBV Bool Source #

parseSMTModelResult :: Int -> ([([CV], CV)], CV) -> a =-> (b =-> (c =-> (d =-> e))) Source #

(SupportedNonFuncPrim a, SupportedNonFuncPrim b, SupportedNonFuncPrim c, SupportedNonFuncPrim d, SupportedPrim a, SupportedPrim b, SupportedPrim c, SupportedPrim d) => SupportedPrim (a =-> (b =-> (c =-> d))) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.TabularFun

Methods

termCache :: Cache (Term (a =-> (b =-> (c =-> d)))) Source #

pformatCon :: (a =-> (b =-> (c =-> d))) -> String Source #

pformatSym :: TypedSymbol (a =-> (b =-> (c =-> d))) -> String Source #

defaultValue :: a =-> (b =-> (c =-> d)) Source #

defaultValueDynamic :: proxy (a =-> (b =-> (c =-> d))) -> ModelValue Source #

pevalITETerm :: Term Bool -> Term (a =-> (b =-> (c =-> d))) -> Term (a =-> (b =-> (c =-> d))) -> Term (a =-> (b =-> (c =-> d))) Source #

pevalEqTerm :: Term (a =-> (b =-> (c =-> d))) -> Term (a =-> (b =-> (c =-> d))) -> Term Bool Source #

conSBVTerm :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> (a =-> (b =-> (c =-> d))) -> SBVType n (a =-> (b =-> (c =-> d))) Source #

symSBVName :: TypedSymbol (a =-> (b =-> (c =-> d))) -> Int -> String Source #

symSBVTerm :: forall m (n :: Nat) proxy. (SBVFreshMonad m, KnownIsZero n) => proxy n -> String -> m (SBVType n (a =-> (b =-> (c =-> d)))) Source #

withPrim :: forall (n :: Nat) p a0. KnownIsZero n => p n -> ((PrimConstraint n (a =-> (b =-> (c =-> d))), SMTDefinable (SBVType n (a =-> (b =-> (c =-> d)))), Mergeable (SBVType n (a =-> (b =-> (c =-> d)))), Typeable (SBVType n (a =-> (b =-> (c =-> d))))) => a0) -> a0 Source #

sbvIte :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> SBV Bool -> SBVType n (a =-> (b =-> (c =-> d))) -> SBVType n (a =-> (b =-> (c =-> d))) -> SBVType n (a =-> (b =-> (c =-> d))) Source #

sbvEq :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> SBVType n (a =-> (b =-> (c =-> d))) -> SBVType n (a =-> (b =-> (c =-> d))) -> SBV Bool Source #

parseSMTModelResult :: Int -> ([([CV], CV)], CV) -> a =-> (b =-> (c =-> d)) Source #

(SupportedNonFuncPrim a, SupportedNonFuncPrim b, SupportedNonFuncPrim c, SupportedPrim a, SupportedPrim b, SupportedPrim c) => SupportedPrim (a =-> (b =-> c)) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.TabularFun

Methods

termCache :: Cache (Term (a =-> (b =-> c))) Source #

pformatCon :: (a =-> (b =-> c)) -> String Source #

pformatSym :: TypedSymbol (a =-> (b =-> c)) -> String Source #

defaultValue :: a =-> (b =-> c) Source #

defaultValueDynamic :: proxy (a =-> (b =-> c)) -> ModelValue Source #

pevalITETerm :: Term Bool -> Term (a =-> (b =-> c)) -> Term (a =-> (b =-> c)) -> Term (a =-> (b =-> c)) Source #

pevalEqTerm :: Term (a =-> (b =-> c)) -> Term (a =-> (b =-> c)) -> Term Bool Source #

conSBVTerm :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> (a =-> (b =-> c)) -> SBVType n (a =-> (b =-> c)) Source #

symSBVName :: TypedSymbol (a =-> (b =-> c)) -> Int -> String Source #

symSBVTerm :: forall m (n :: Nat) proxy. (SBVFreshMonad m, KnownIsZero n) => proxy n -> String -> m (SBVType n (a =-> (b =-> c))) Source #

withPrim :: forall (n :: Nat) p a0. KnownIsZero n => p n -> ((PrimConstraint n (a =-> (b =-> c)), SMTDefinable (SBVType n (a =-> (b =-> c))), Mergeable (SBVType n (a =-> (b =-> c))), Typeable (SBVType n (a =-> (b =-> c)))) => a0) -> a0 Source #

sbvIte :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> SBV Bool -> SBVType n (a =-> (b =-> c)) -> SBVType n (a =-> (b =-> c)) -> SBVType n (a =-> (b =-> c)) Source #

sbvEq :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> SBVType n (a =-> (b =-> c)) -> SBVType n (a =-> (b =-> c)) -> SBV Bool Source #

parseSMTModelResult :: Int -> ([([CV], CV)], CV) -> a =-> (b =-> c) Source #

(SupportedNonFuncPrim a, SupportedNonFuncPrim b) => SupportedPrim (a =-> b) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.TabularFun

Methods

termCache :: Cache (Term (a =-> b)) Source #

pformatCon :: (a =-> b) -> String Source #

pformatSym :: TypedSymbol (a =-> b) -> String Source #

defaultValue :: a =-> b Source #

defaultValueDynamic :: proxy (a =-> b) -> ModelValue Source #

pevalITETerm :: Term Bool -> Term (a =-> b) -> Term (a =-> b) -> Term (a =-> b) Source #

pevalEqTerm :: Term (a =-> b) -> Term (a =-> b) -> Term Bool Source #

conSBVTerm :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> (a =-> b) -> SBVType n (a =-> b) Source #

symSBVName :: TypedSymbol (a =-> b) -> Int -> String Source #

symSBVTerm :: forall m (n :: Nat) proxy. (SBVFreshMonad m, KnownIsZero n) => proxy n -> String -> m (SBVType n (a =-> b)) Source #

withPrim :: forall (n :: Nat) p a0. KnownIsZero n => p n -> ((PrimConstraint n (a =-> b), SMTDefinable (SBVType n (a =-> b)), Mergeable (SBVType n (a =-> b)), Typeable (SBVType n (a =-> b))) => a0) -> a0 Source #

sbvIte :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> SBV Bool -> SBVType n (a =-> b) -> SBVType n (a =-> b) -> SBVType n (a =-> b) Source #

sbvEq :: forall (n :: Nat) proxy. KnownIsZero n => proxy n -> SBVType n (a =-> b) -> SBVType n (a =-> b) -> SBV Bool Source #

parseSMTModelResult :: Int -> ([([CV], CV)], CV) -> a =-> b Source #

class SupportedPrim con => SymRep con Source #

Type family to resolve the symbolic type associated with a concrete type.

Associated Types

type SymType con Source #

Instances

Instances details
SymRep Integer Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymInteger

Associated Types

type SymType Integer Source #

SymRep Bool Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBool

Associated Types

type SymType Bool Source #

(KnownNat n, 1 <= n) => SymRep (IntN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBV

Associated Types

type SymType (IntN n) Source #

(KnownNat n, 1 <= n) => SymRep (WordN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBV

Associated Types

type SymType (WordN n) Source #

(SymRep ca, SymRep cb, SupportedPrim (ca --> cb)) => SymRep (ca --> cb) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymGeneralFun

Associated Types

type SymType (ca --> cb) Source #

(SymRep a, SymRep b, SupportedPrim (a =-> b)) => SymRep (a =-> b) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymTabularFun

Associated Types

type SymType (a =-> b) Source #

class ConRep sym Source #

Type family to resolve the concrete type associated with a symbolic type.

Associated Types

type ConType sym Source #

Instances

Instances details
ConRep SymBool Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBool

Associated Types

type ConType SymBool Source #

ConRep SymInteger Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymInteger

Associated Types

type ConType SymInteger Source #

(KnownNat n, 1 <= n) => ConRep (SymIntN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBV

Associated Types

type ConType (SymIntN n) Source #

(KnownNat n, 1 <= n) => ConRep (SymWordN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBV

Associated Types

type ConType (SymWordN n) Source #

(ConRep a, ConRep b) => ConRep (a -~> b) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymGeneralFun

Associated Types

type ConType (a -~> b) Source #

(ConRep a, ConRep b) => ConRep (a =~> b) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymTabularFun

Associated Types

type ConType (a =~> b) Source #

class (ConRep sym, SymRep con, sym ~ SymType con, con ~ ConType sym) => LinkedRep con sym | con -> sym, sym -> con Source #

One-to-one mapping between symbolic types and concrete types.

Minimal complete definition

underlyingTerm, wrapTerm

Instances

Instances details
LinkedRep Integer SymInteger Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymInteger

LinkedRep Bool SymBool Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBool

(KnownNat n, 1 <= n) => LinkedRep (IntN n) (SymIntN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBV

(KnownNat n, 1 <= n) => LinkedRep (WordN n) (SymWordN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBV

(LinkedRep ca sa, LinkedRep cb sb, SupportedPrim ca, SupportedPrim cb, SupportedPrim (ca --> cb)) => LinkedRep (ca --> cb) (sa -~> sb) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymGeneralFun

Methods

underlyingTerm :: (sa -~> sb) -> Term (ca --> cb) Source #

wrapTerm :: Term (ca --> cb) -> sa -~> sb Source #

(LinkedRep ca sa, LinkedRep cb sb, SupportedPrim (ca =-> cb)) => LinkedRep (ca =-> cb) (sa =~> sb) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymTabularFun

Methods

underlyingTerm :: (sa =~> sb) -> Term (ca =-> cb) Source #

wrapTerm :: Term (ca =-> cb) -> sa =~> sb Source #

newtype SymBool Source #

Symbolic Boolean type.

>>> :set -XOverloadedStrings
>>> "a" :: SymBool
a
>>> "a" .&& "b" :: SymBool
(&& a b)

More symbolic operations are available. Please refer to the documentation for the type class instances.

Constructors

SymBool (Term Bool) 

Instances

Instances details
IsString SymBool Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBool

Methods

fromString :: String -> SymBool #

Generic SymBool Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBool

Associated Types

type Rep SymBool :: Type -> Type #

Methods

from :: SymBool -> Rep SymBool x #

to :: Rep SymBool x -> SymBool #

Show SymBool Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBool

NFData SymBool Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBool

Methods

rnf :: SymBool -> () #

Eq SymBool Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBool

Methods

(==) :: SymBool -> SymBool -> Bool #

(/=) :: SymBool -> SymBool -> Bool #

EvaluateSym SymBool Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.EvaluateSym

ExtractSymbolics SymBool Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSymbolics

Apply SymBool Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBool

Associated Types

type FunType SymBool Source #

GPretty SymBool Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.GPretty

ITEOp SymBool Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ITEOp

LogicalOp SymBool Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.LogicalOp

Mergeable SymBool Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.Mergeable

SEq SymBool Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.SEq

SOrd SymBool Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.SOrd

SimpleMergeable SymBool Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.SimpleMergeable

SubstituteSym SymBool Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.SubstituteSym

Methods

substituteSym :: LinkedRep cb sb => TypedSymbol cb -> sb -> SymBool -> SymBool Source #

AllSyms SymBool Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBool

ConRep SymBool Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBool

Associated Types

type ConType SymBool Source #

Hashable SymBool Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBool

Methods

hashWithSalt :: Int -> SymBool -> Int #

hash :: SymBool -> Int #

GenSym SymBool SymBool Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.GenSym

Methods

fresh :: MonadFresh m => SymBool -> m (UnionM SymBool) Source #

GenSym () SymBool Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.GenSym

Methods

fresh :: MonadFresh m => () -> m (UnionM SymBool) Source #

GenSymSimple SymBool SymBool Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.GenSym

GenSymSimple () SymBool Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.GenSym

Methods

simpleFresh :: MonadFresh m => () -> m SymBool Source #

Solvable Bool SymBool Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBool

ToCon SymBool SymBool Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ToCon

ToCon SymBool Bool Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ToCon

ToSym SymBool SymBool Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ToSym

ToSym Bool SymBool Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ToSym

Methods

toSym :: Bool -> SymBool Source #

LinkedRep Bool SymBool Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBool

Lift SymBool Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBool

Methods

lift :: Quote m => SymBool -> m Exp #

liftTyped :: forall (m :: Type -> Type). Quote m => SymBool -> Code m SymBool #

ToSym (UnionM Bool) SymBool Source # 
Instance details

Defined in Grisette.Internal.Core.Control.Monad.UnionM

type Rep SymBool Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBool

type Rep SymBool = D1 ('MetaData "SymBool" "Grisette.Internal.SymPrim.SymBool" "grisette-0.5.0.0-2ZDAuzWdzg48yPrBcRstUR" 'True) (C1 ('MetaCons "SymBool" 'PrefixI 'True) (S1 ('MetaSel ('Just "underlyingBoolTerm") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Term Bool))))
type FunType SymBool Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBool

type ConType SymBool Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBool

newtype SymInteger Source #

Symbolic (unbounded, mathematical) integer type.

>>> "a" + 1 :: SymInteger
(+ 1 a)

More symbolic operations are available. Please refer to the documentation for the type class instances.

Constructors

SymInteger (Term Integer) 

Instances

Instances details
IsString SymInteger Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymInteger

Generic SymInteger Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymInteger

Associated Types

type Rep SymInteger :: Type -> Type #

Num SymInteger Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymInteger

Show SymInteger Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymInteger

NFData SymInteger Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymInteger

Methods

rnf :: SymInteger -> () #

Eq SymInteger Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymInteger

EvaluateSym SymInteger Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.EvaluateSym

ExtractSymbolics SymInteger Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSymbolics

Apply SymInteger Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymInteger

Associated Types

type FunType SymInteger Source #

GPretty SymInteger Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.GPretty

ITEOp SymInteger Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ITEOp

Mergeable SymInteger Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.Mergeable

SEq SymInteger Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.SEq

SOrd SymInteger Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.SOrd

SimpleMergeable SymInteger Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.SimpleMergeable

SubstituteSym SymInteger Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.SubstituteSym

Methods

substituteSym :: LinkedRep cb sb => TypedSymbol cb -> sb -> SymInteger -> SymInteger Source #

AllSyms SymInteger Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymInteger

ConRep SymInteger Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymInteger

Associated Types

type ConType SymInteger Source #

Hashable SymInteger Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymInteger

GenSym SymInteger SymInteger Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.GenSym

GenSym () SymInteger Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.GenSym

Methods

fresh :: MonadFresh m => () -> m (UnionM SymInteger) Source #

GenSymSimple SymInteger SymInteger Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.GenSym

GenSymSimple () SymInteger Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.GenSym

Methods

simpleFresh :: MonadFresh m => () -> m SymInteger Source #

Solvable Integer SymInteger Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymInteger

ToCon SymInteger SymInteger Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ToCon

ToCon SymInteger Integer Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ToCon

ToSym SymInteger SymInteger Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ToSym

ToSym Integer SymInteger Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ToSym

LinkedRep Integer SymInteger Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymInteger

Lift SymInteger Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymInteger

Methods

lift :: Quote m => SymInteger -> m Exp #

liftTyped :: forall (m :: Type -> Type). Quote m => SymInteger -> Code m SymInteger #

(MonadUnion m, MonadError ArithException m) => SafeDivision ArithException SymInteger m Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.SafeDivision

(MonadError ArithException m, TryMerge m) => SafeLinearArith ArithException SymInteger m Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.SafeLinearArith

ToSym (UnionM Integer) SymInteger Source # 
Instance details

Defined in Grisette.Internal.Core.Control.Monad.UnionM

type Rep SymInteger Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymInteger

type Rep SymInteger = D1 ('MetaData "SymInteger" "Grisette.Internal.SymPrim.SymInteger" "grisette-0.5.0.0-2ZDAuzWdzg48yPrBcRstUR" 'True) (C1 ('MetaCons "SymInteger" 'PrefixI 'True) (S1 ('MetaSel ('Just "underlyingIntegerTerm") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Term Integer))))
type FunType SymInteger Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymInteger

type ConType SymInteger Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymInteger

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.

>>> :set -XOverloadedStrings -XDataKinds -XBinaryLiterals
>>> "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 symbolic operations are available. Please refer to the documentation for the type class instances.

Constructors

SymWordN 

Instances

Instances details
SizedBV SymWordN Source # 
Instance details

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 #

(KnownNat n, 1 <= n) => GenSym () (SymWordN n) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.GenSym

Methods

fresh :: MonadFresh m => () -> m (UnionM (SymWordN n)) Source #

(KnownNat n, 1 <= n) => GenSymSimple () (SymWordN n) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.GenSym

Methods

simpleFresh :: MonadFresh m => () -> m (SymWordN n) Source #

ToSym Word16 (SymWordN 16) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ToSym

Methods

toSym :: Word16 -> SymWordN 16 Source #

ToSym Word32 (SymWordN 32) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ToSym

Methods

toSym :: Word32 -> SymWordN 32 Source #

ToSym Word64 (SymWordN 64) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ToSym

Methods

toSym :: Word64 -> SymWordN 64 Source #

ToSym Word8 (SymWordN 8) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ToSym

Methods

toSym :: Word8 -> SymWordN 8 Source #

ToSym Word (SymWordN 64) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ToSym

Methods

toSym :: Word -> SymWordN 64 Source #

Lift (SymWordN n :: Type) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBV

Methods

lift :: Quote m => SymWordN n -> m Exp #

liftTyped :: forall (m :: Type -> Type). Quote m => SymWordN n -> Code m (SymWordN n) #

(MonadError ArithException m, MonadUnion m, KnownNat n, 1 <= n) => SafeDivision ArithException (SymWordN n) m Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.SafeDivision

(MonadError ArithException m, MonadUnion m, KnownNat n, 1 <= n) => SafeLinearArith ArithException (SymWordN n) m Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.SafeLinearArith

Methods

safeAdd :: SymWordN n -> SymWordN n -> m (SymWordN n) Source #

safeNeg :: SymWordN n -> m (SymWordN n) Source #

safeSub :: SymWordN n -> SymWordN n -> m (SymWordN n) Source #

(MonadError ArithException m, TryMerge m, KnownNat n, 1 <= n) => SafeSymRotate ArithException (SymWordN n) m Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.SafeSymRotate

(MonadError ArithException m, MonadUnion m, KnownNat n, 1 <= n) => SafeSymShift ArithException (SymWordN n) m Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.SafeSymShift

(KnownNat n, 1 <= n) => IsString (SymWordN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBV

Methods

fromString :: String -> SymWordN n #

(KnownNat n, 1 <= n) => Bits (SymWordN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBV

(KnownNat n, 1 <= n) => FiniteBits (SymWordN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBV

Generic (SymWordN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBV

Associated Types

type Rep (SymWordN n) :: Type -> Type #

Methods

from :: SymWordN n -> Rep (SymWordN n) x #

to :: Rep (SymWordN n) x -> SymWordN n #

(KnownNat n, 1 <= n) => Num (SymWordN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBV

(KnownNat n, 1 <= n) => Show (SymWordN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBV

Methods

showsPrec :: Int -> SymWordN n -> ShowS #

show :: SymWordN n -> String #

showList :: [SymWordN n] -> ShowS #

NFData (SymWordN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBV

Methods

rnf :: SymWordN n -> () #

(KnownNat n, 1 <= n) => Eq (SymWordN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBV

Methods

(==) :: SymWordN n -> SymWordN n -> Bool #

(/=) :: SymWordN n -> SymWordN n -> Bool #

(KnownNat n, 1 <= n) => EvaluateSym (SymWordN n) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.EvaluateSym

Methods

evaluateSym :: Bool -> Model -> SymWordN n -> SymWordN n Source #

(KnownNat n, 1 <= n) => ExtractSymbolics (SymWordN n) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSymbolics

(KnownNat n, 1 <= n) => Apply (SymWordN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBV

Associated Types

type FunType (SymWordN n) Source #

Methods

apply :: SymWordN n -> FunType (SymWordN n) Source #

(KnownNat n, 1 <= n) => GPretty (SymWordN n) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.GPretty

Methods

gpretty :: SymWordN n -> Doc ann Source #

gprettyPrec :: Int -> SymWordN n -> Doc ann Source #

gprettyList :: [SymWordN n] -> Doc ann Source #

(KnownNat n, 1 <= n) => ITEOp (SymWordN n) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ITEOp

Methods

symIte :: SymBool -> SymWordN n -> SymWordN n -> SymWordN n Source #

(KnownNat n, 1 <= n) => Mergeable (SymWordN n) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.Mergeable

(KnownNat n, 1 <= n) => SEq (SymWordN n) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.SEq

(KnownNat n, 1 <= n) => SOrd (SymWordN n) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.SOrd

(KnownNat n, 1 <= n) => SimpleMergeable (SymWordN n) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.SimpleMergeable

Methods

mrgIte :: SymBool -> SymWordN n -> SymWordN n -> SymWordN n Source #

(KnownNat n, 1 <= n) => SubstituteSym (SymWordN n) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.SubstituteSym

Methods

substituteSym :: LinkedRep cb sb => TypedSymbol cb -> sb -> SymWordN n -> SymWordN n Source #

(KnownNat n, 1 <= n) => SymRotate (SymWordN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBV

(KnownNat n, 1 <= n) => SymShift (SymWordN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBV

(KnownNat n, 1 <= n) => AllSyms (SymWordN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBV

(KnownNat n, 1 <= n) => ConRep (SymWordN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBV

Associated Types

type ConType (SymWordN n) Source #

(KnownNat n, 1 <= n) => Hashable (SymWordN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBV

Methods

hashWithSalt :: Int -> SymWordN n -> Int #

hash :: SymWordN n -> Int #

ToCon (SymWordN 8) Word8 Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ToCon

Methods

toCon :: SymWordN 8 -> Maybe Word8 Source #

ToCon (SymWordN 16) Word16 Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ToCon

Methods

toCon :: SymWordN 16 -> Maybe Word16 Source #

ToCon (SymWordN 32) Word32 Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ToCon

Methods

toCon :: SymWordN 32 -> Maybe Word32 Source #

ToCon (SymWordN 64) Word64 Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ToCon

Methods

toCon :: SymWordN 64 -> Maybe Word64 Source #

ToCon (SymWordN 64) Word Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ToCon

Methods

toCon :: SymWordN 64 -> Maybe Word Source #

(KnownNat n, 1 <= n) => GenSym (SymWordN n) (SymWordN n) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.GenSym

Methods

fresh :: MonadFresh m => SymWordN n -> m (UnionM (SymWordN n)) Source #

(KnownNat n, 1 <= n) => GenSymSimple (SymWordN n) (SymWordN n) Source # 
Instance details

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 # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBV

(KnownNat n, 1 <= n) => Solvable (WordN n) (SymWordN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBV

(KnownNat n, 1 <= n) => ToCon (SymWordN n) (WordN n) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ToCon

Methods

toCon :: SymWordN n -> Maybe (WordN n) Source #

(KnownNat n, 1 <= n) => ToCon (SymWordN n) (SymWordN n) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ToCon

Methods

toCon :: SymWordN n -> Maybe (SymWordN n) Source #

(KnownNat n, 1 <= n) => ToSym (UnionM (WordN n)) (SymWordN n) Source # 
Instance details

Defined in Grisette.Internal.Core.Control.Monad.UnionM

Methods

toSym :: UnionM (WordN n) -> SymWordN n Source #

(KnownNat n, 1 <= n) => ToSym (WordN n) (SymWordN n) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ToSym

Methods

toSym :: WordN n -> SymWordN n Source #

(KnownNat n, 1 <= n) => ToSym (SymWordN n) (SymWordN n) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ToSym

Methods

toSym :: SymWordN n -> SymWordN n Source #

(KnownNat n, 1 <= n) => LinkedRep (WordN n) (SymWordN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBV

type Rep (SymWordN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBV

type Rep (SymWordN n) = D1 ('MetaData "SymWordN" "Grisette.Internal.SymPrim.SymBV" "grisette-0.5.0.0-2ZDAuzWdzg48yPrBcRstUR" 'True) (C1 ('MetaCons "SymWordN" 'PrefixI 'True) (S1 ('MetaSel ('Just "underlyingWordNTerm") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Term (WordN n)))))
type FunType (SymWordN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBV

type ConType (SymWordN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBV

type ConType (SymWordN n) = WordN n

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.

>>> :set -XOverloadedStrings -XDataKinds -XBinaryLiterals
>>> "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 symbolic operations are available. Please refer to the documentation for the type class instances.

Constructors

SymIntN 

Instances

Instances details
SizedBV SymIntN Source # 
Instance details

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 #

(KnownNat n, 1 <= n) => GenSym () (SymIntN n) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.GenSym

Methods

fresh :: MonadFresh m => () -> m (UnionM (SymIntN n)) Source #

(KnownNat n, 1 <= n) => GenSymSimple () (SymIntN n) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.GenSym

Methods

simpleFresh :: MonadFresh m => () -> m (SymIntN n) Source #

ToSym Int16 (SymIntN 16) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ToSym

Methods

toSym :: Int16 -> SymIntN 16 Source #

ToSym Int32 (SymIntN 32) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ToSym

Methods

toSym :: Int32 -> SymIntN 32 Source #

ToSym Int64 (SymIntN 64) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ToSym

Methods

toSym :: Int64 -> SymIntN 64 Source #

ToSym Int8 (SymIntN 8) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ToSym

Methods

toSym :: Int8 -> SymIntN 8 Source #

ToSym Int (SymIntN 64) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ToSym

Methods

toSym :: Int -> SymIntN 64 Source #

Lift (SymIntN n :: Type) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBV

Methods

lift :: Quote m => SymIntN n -> m Exp #

liftTyped :: forall (m :: Type -> Type). Quote m => SymIntN n -> Code m (SymIntN n) #

(MonadError ArithException m, MonadUnion m, KnownNat n, 1 <= n) => SafeDivision ArithException (SymIntN n) m Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.SafeDivision

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 #

(MonadError ArithException m, MonadUnion m, KnownNat n, 1 <= n) => SafeLinearArith ArithException (SymIntN n) m Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.SafeLinearArith

Methods

safeAdd :: SymIntN n -> SymIntN n -> m (SymIntN n) Source #

safeNeg :: SymIntN n -> m (SymIntN n) Source #

safeSub :: SymIntN n -> SymIntN n -> m (SymIntN n) Source #

(MonadError ArithException m, MonadUnion m, KnownNat n, 1 <= n) => SafeSymRotate ArithException (SymIntN n) m Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.SafeSymRotate

(MonadError ArithException m, MonadUnion m, KnownNat n, 1 <= n) => SafeSymShift ArithException (SymIntN n) m Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.SafeSymShift

(KnownNat n, 1 <= n) => IsString (SymIntN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBV

Methods

fromString :: String -> SymIntN n #

(KnownNat n, 1 <= n) => Bits (SymIntN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBV

(KnownNat n, 1 <= n) => FiniteBits (SymIntN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBV

Generic (SymIntN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBV

Associated Types

type Rep (SymIntN n) :: Type -> Type #

Methods

from :: SymIntN n -> Rep (SymIntN n) x #

to :: Rep (SymIntN n) x -> SymIntN n #

(KnownNat n, 1 <= n) => Num (SymIntN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBV

Methods

(+) :: SymIntN n -> SymIntN n -> SymIntN n #

(-) :: SymIntN n -> SymIntN n -> SymIntN n #

(*) :: SymIntN n -> SymIntN n -> SymIntN n #

negate :: SymIntN n -> SymIntN n #

abs :: SymIntN n -> SymIntN n #

signum :: SymIntN n -> SymIntN n #

fromInteger :: Integer -> SymIntN n #

(KnownNat n, 1 <= n) => Show (SymIntN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBV

Methods

showsPrec :: Int -> SymIntN n -> ShowS #

show :: SymIntN n -> String #

showList :: [SymIntN n] -> ShowS #

NFData (SymIntN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBV

Methods

rnf :: SymIntN n -> () #

(KnownNat n, 1 <= n) => Eq (SymIntN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBV

Methods

(==) :: SymIntN n -> SymIntN n -> Bool #

(/=) :: SymIntN n -> SymIntN n -> Bool #

(KnownNat n, 1 <= n) => EvaluateSym (SymIntN n) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.EvaluateSym

Methods

evaluateSym :: Bool -> Model -> SymIntN n -> SymIntN n Source #

(KnownNat n, 1 <= n) => ExtractSymbolics (SymIntN n) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSymbolics

(KnownNat n, 1 <= n) => Apply (SymIntN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBV

Associated Types

type FunType (SymIntN n) Source #

Methods

apply :: SymIntN n -> FunType (SymIntN n) Source #

(KnownNat n, 1 <= n) => GPretty (SymIntN n) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.GPretty

Methods

gpretty :: SymIntN n -> Doc ann Source #

gprettyPrec :: Int -> SymIntN n -> Doc ann Source #

gprettyList :: [SymIntN n] -> Doc ann Source #

(KnownNat n, 1 <= n) => ITEOp (SymIntN n) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ITEOp

Methods

symIte :: SymBool -> SymIntN n -> SymIntN n -> SymIntN n Source #

(KnownNat n, 1 <= n) => Mergeable (SymIntN n) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.Mergeable

(KnownNat n, 1 <= n) => SEq (SymIntN n) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.SEq

(KnownNat n, 1 <= n) => SOrd (SymIntN n) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.SOrd

(KnownNat n, 1 <= n) => SimpleMergeable (SymIntN n) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.SimpleMergeable

Methods

mrgIte :: SymBool -> SymIntN n -> SymIntN n -> SymIntN n Source #

(KnownNat n, 1 <= n) => SubstituteSym (SymIntN n) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.SubstituteSym

Methods

substituteSym :: LinkedRep cb sb => TypedSymbol cb -> sb -> SymIntN n -> SymIntN n Source #

(KnownNat n, 1 <= n) => SymRotate (SymIntN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBV

(KnownNat n, 1 <= n) => SymShift (SymIntN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBV

(KnownNat n, 1 <= n) => AllSyms (SymIntN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBV

(KnownNat n, 1 <= n) => ConRep (SymIntN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBV

Associated Types

type ConType (SymIntN n) Source #

(KnownNat n, 1 <= n) => Hashable (SymIntN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBV

Methods

hashWithSalt :: Int -> SymIntN n -> Int #

hash :: SymIntN n -> Int #

ToCon (SymIntN 8) Int8 Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ToCon

Methods

toCon :: SymIntN 8 -> Maybe Int8 Source #

ToCon (SymIntN 16) Int16 Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ToCon

Methods

toCon :: SymIntN 16 -> Maybe Int16 Source #

ToCon (SymIntN 32) Int32 Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ToCon

Methods

toCon :: SymIntN 32 -> Maybe Int32 Source #

ToCon (SymIntN 64) Int64 Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ToCon

Methods

toCon :: SymIntN 64 -> Maybe Int64 Source #

ToCon (SymIntN 64) Int Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ToCon

Methods

toCon :: SymIntN 64 -> Maybe Int Source #

(KnownNat n, 1 <= n) => GenSym (SymIntN n) (SymIntN n) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.GenSym

Methods

fresh :: MonadFresh m => SymIntN n -> m (UnionM (SymIntN n)) Source #

(KnownNat n, 1 <= n) => GenSymSimple (SymIntN n) (SymIntN n) Source # 
Instance details

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 # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBV

(KnownNat n, 1 <= n) => Solvable (IntN n) (SymIntN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBV

(KnownNat n, 1 <= n) => ToCon (SymIntN n) (IntN n) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ToCon

Methods

toCon :: SymIntN n -> Maybe (IntN n) Source #

(KnownNat n, 1 <= n) => ToCon (SymIntN n) (SymIntN n) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ToCon

Methods

toCon :: SymIntN n -> Maybe (SymIntN n) Source #

(KnownNat n, 1 <= n) => ToSym (UnionM (IntN n)) (SymIntN n) Source # 
Instance details

Defined in Grisette.Internal.Core.Control.Monad.UnionM

Methods

toSym :: UnionM (IntN n) -> SymIntN n Source #

(KnownNat n, 1 <= n) => ToSym (IntN n) (SymIntN n) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ToSym

Methods

toSym :: IntN n -> SymIntN n Source #

(KnownNat n, 1 <= n) => ToSym (SymIntN n) (SymIntN n) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ToSym

Methods

toSym :: SymIntN n -> SymIntN n Source #

(KnownNat n, 1 <= n) => LinkedRep (IntN n) (SymIntN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBV

type Rep (SymIntN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBV

type Rep (SymIntN n) = D1 ('MetaData "SymIntN" "Grisette.Internal.SymPrim.SymBV" "grisette-0.5.0.0-2ZDAuzWdzg48yPrBcRstUR" 'True) (C1 ('MetaCons "SymIntN" 'PrefixI 'True) (S1 ('MetaSel ('Just "underlyingIntNTerm") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Term (IntN n)))))
type FunType (SymIntN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBV

type FunType (SymIntN n) = SymIntN n
type ConType (SymIntN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBV

type ConType (SymIntN n) = IntN n

type SomeSymIntN = SomeBV SymIntN Source #

Type synonym for SomeBV with symbolic signed bitvectors.

type SomeSymWordN = SomeBV SymWordN Source #

Type synonym for SomeBV with symbolic unsigned bitvectors.

pattern SomeSymIntN :: () => (KnownNat n, 1 <= n) => SymIntN n -> SomeSymIntN Source #

Pattern synonym for SomeBV with symbolic signed bitvectors.

pattern SomeSymWordN :: () => (KnownNat n, 1 <= n) => SymWordN n -> SomeSymWordN Source #

Pattern synonym for SomeBV with symbolic unsigned bitvectors.

data sa =~> sb where infixr 0 Source #

Symbolic tabular function type.

>>> :set -XTypeOperators -XOverloadedStrings
>>> 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 :: (LinkedRep ca sa, LinkedRep cb sb) => Term (ca =-> cb) -> sa =~> sb 

Instances

Instances details
(SupportedPrim (ca =-> cb), LinkedRep ca sa, LinkedRep cb sb) => GenSym () (sa =~> sb) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.GenSym

Methods

fresh :: MonadFresh m => () -> m (UnionM (sa =~> sb)) Source #

(SupportedPrim (ca =-> cb), LinkedRep ca sa, LinkedRep cb sb) => GenSymSimple () (sa =~> sb) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.GenSym

Methods

simpleFresh :: MonadFresh m => () -> m (sa =~> sb) Source #

Lift (sa =~> sb :: Type) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymTabularFun

Methods

lift :: Quote m => (sa =~> sb) -> m Exp #

liftTyped :: forall (m :: Type -> Type). Quote m => (sa =~> sb) -> Code m (sa =~> sb) #

(SupportedPrim (ca =-> cb), LinkedRep ca sa, LinkedRep cb sb) => ToSym (UnionM (ca =-> cb)) (sa =~> sb) Source # 
Instance details

Defined in Grisette.Internal.Core.Control.Monad.UnionM

Methods

toSym :: UnionM (ca =-> cb) -> sa =~> sb Source #

(SupportedPrim (ca =-> cb), LinkedRep ca sa, LinkedRep cb sb) => IsString (sa =~> sb) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymTabularFun

Methods

fromString :: String -> sa =~> sb #

(SupportedPrim (ca =-> cb), LinkedRep ca sa, LinkedRep cb sb) => Show (sa =~> sb) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymTabularFun

Methods

showsPrec :: Int -> (sa =~> sb) -> ShowS #

show :: (sa =~> sb) -> String #

showList :: [sa =~> sb] -> ShowS #

NFData (sa =~> sb) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymTabularFun

Methods

rnf :: (sa =~> sb) -> () #

(SupportedPrim (ca =-> cb), LinkedRep ca sa, LinkedRep cb sb) => Eq (sa =~> sb) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymTabularFun

Methods

(==) :: (sa =~> sb) -> (sa =~> sb) -> Bool #

(/=) :: (sa =~> sb) -> (sa =~> sb) -> Bool #

(SupportedPrim (ca =-> cb), LinkedRep ca sa, LinkedRep cb sb) => EvaluateSym (sa =~> sb) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.EvaluateSym

Methods

evaluateSym :: Bool -> Model -> (sa =~> sb) -> sa =~> sb Source #

(SupportedPrim (ca =-> cb), LinkedRep ca sa, LinkedRep cb sb) => ExtractSymbolics (sa =~> sb) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSymbolics

Methods

extractSymbolics :: (sa =~> sb) -> SymbolSet Source #

(LinkedRep ca sa, LinkedRep ct st, Apply st, SupportedPrim ca, SupportedPrim ct, SupportedPrim (ca =-> ct)) => Apply (sa =~> st) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymTabularFun

Associated Types

type FunType (sa =~> st) Source #

Methods

apply :: (sa =~> st) -> FunType (sa =~> st) Source #

(SupportedPrim ca, SupportedPrim cb, LinkedRep ca sa, LinkedRep cb sb) => GPretty (sa =~> sb) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.GPretty

Methods

gpretty :: (sa =~> sb) -> Doc ann Source #

gprettyPrec :: Int -> (sa =~> sb) -> Doc ann Source #

gprettyList :: [sa =~> sb] -> Doc ann Source #

(SupportedPrim (ca =-> cb), LinkedRep ca sa, LinkedRep cb sb) => ITEOp (sa =~> sb) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ITEOp

Methods

symIte :: SymBool -> (sa =~> sb) -> (sa =~> sb) -> sa =~> sb Source #

(SupportedPrim (ca =-> cb), LinkedRep ca sa, LinkedRep cb sb) => Mergeable (sa =~> sb) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.Mergeable

(SupportedPrim (ca =-> cb), LinkedRep ca sa, LinkedRep cb sb) => SimpleMergeable (sa =~> sb) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.SimpleMergeable

Methods

mrgIte :: SymBool -> (sa =~> sb) -> (sa =~> sb) -> sa =~> sb Source #

(SupportedPrim (ca =-> cb), LinkedRep ca sa, LinkedRep cb sb) => SubstituteSym (sa =~> sb) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.SubstituteSym

Methods

substituteSym :: LinkedRep cb sb0 => TypedSymbol cb -> sb0 -> (sa =~> sb) -> sa =~> sb Source #

(SupportedPrim (ca =-> cb), LinkedRep ca sa, LinkedRep cb sb) => AllSyms (sa =~> sb) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymTabularFun

Methods

allSymsS :: (sa =~> sb) -> [SomeSym] -> [SomeSym] Source #

allSyms :: (sa =~> sb) -> [SomeSym] Source #

(ConRep a, ConRep b) => ConRep (a =~> b) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymTabularFun

Associated Types

type ConType (a =~> b) Source #

(SupportedPrim (ca =-> cb), LinkedRep ca sa, LinkedRep cb sb) => Hashable (sa =~> sb) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymTabularFun

Methods

hashWithSalt :: Int -> (sa =~> sb) -> Int #

hash :: (sa =~> sb) -> Int #

(SupportedPrim ca, SupportedPrim cb, LinkedRep ca sa, LinkedRep cb sb, SupportedPrim (ca =-> cb)) => Function (sa =~> sb) sa sb Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymTabularFun

Methods

(#) :: (sa =~> sb) -> sa -> sb Source #

(SupportedPrim (ca =-> cb), LinkedRep ca sa, LinkedRep cb sb) => GenSym (sa =~> sb) (sa =~> sb) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.GenSym

Methods

fresh :: MonadFresh m => (sa =~> sb) -> m (UnionM (sa =~> sb)) Source #

(SupportedPrim (ca =-> cb), LinkedRep ca sa, LinkedRep cb sb) => GenSymSimple (sa =~> sb) (sa =~> sb) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.GenSym

Methods

simpleFresh :: MonadFresh m => (sa =~> sb) -> m (sa =~> sb) Source #

(SupportedPrim ca, SupportedPrim cb, LinkedRep ca sa, LinkedRep cb sb, SupportedPrim (ca =-> cb)) => Solvable (ca =-> cb) (sa =~> sb) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymTabularFun

Methods

con :: (ca =-> cb) -> sa =~> sb Source #

conView :: (sa =~> sb) -> Maybe (ca =-> cb) Source #

sym :: Symbol -> sa =~> sb Source #

ssym :: Identifier -> sa =~> sb Source #

isym :: Identifier -> Int -> sa =~> sb Source #

(SupportedPrim a, SupportedPrim b) => ToCon (a =~> b) (a =~> b) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ToCon

Methods

toCon :: (a =~> b) -> Maybe (a =~> b) Source #

(SupportedPrim (ca =-> cb), LinkedRep ca sa, LinkedRep cb sb) => ToCon (sa =~> sb) (ca =-> cb) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ToCon

Methods

toCon :: (sa =~> sb) -> Maybe (ca =-> cb) Source #

(SupportedPrim a, SupportedPrim b) => ToSym (a =~> b) (a =~> b) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ToSym

Methods

toSym :: (a =~> b) -> a =~> b Source #

(SupportedPrim (ca =-> cb), LinkedRep ca sa, LinkedRep cb sb) => ToSym (ca =-> cb) (sa =~> sb) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ToSym

Methods

toSym :: (ca =-> cb) -> sa =~> sb Source #

(LinkedRep ca sa, LinkedRep cb sb, SupportedPrim (ca =-> cb)) => LinkedRep (ca =-> cb) (sa =~> sb) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymTabularFun

Methods

underlyingTerm :: (sa =~> sb) -> Term (ca =-> cb) Source #

wrapTerm :: Term (ca =-> cb) -> sa =~> sb Source #

type FunType (sa =~> st) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymTabularFun

type FunType (sa =~> st) = sa -> FunType st
type ConType (a =~> b) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymTabularFun

type ConType (a =~> b) = ConType a =-> ConType b

data sa -~> sb where infixr 0 Source #

Symbolic general function type.

>>> :set -XTypeOperators -XOverloadedStrings
>>> f' = "f" :: SymInteger -~> SymInteger
>>> f = (f' #)
>>> f 1
(apply f 1)
>>> f' = con ("a" --> "a" + 1) :: SymInteger -~> SymInteger
>>> f'
\(a:ARG :: Integer) -> (+ 1 a:ARG)
>>> f = (f' #)
>>> f 1
2
>>> f 2
3
>>> f 3
4
>>> f "b"
(+ 1 b)

Constructors

SymGeneralFun :: (LinkedRep ca sa, LinkedRep cb sb) => Term (ca --> cb) -> sa -~> sb 

Instances

Instances details
(SupportedPrim (ca --> cb), LinkedRep ca sa, LinkedRep cb sb) => GenSym () (sa -~> sb) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.GenSym

Methods

fresh :: MonadFresh m => () -> m (UnionM (sa -~> sb)) Source #

(SupportedPrim (ca --> cb), LinkedRep ca sa, LinkedRep cb sb) => GenSymSimple () (sa -~> sb) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.GenSym

Methods

simpleFresh :: MonadFresh m => () -> m (sa -~> sb) Source #

Lift (sa -~> sb :: Type) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymGeneralFun

Methods

lift :: Quote m => (sa -~> sb) -> m Exp #

liftTyped :: forall (m :: Type -> Type). Quote m => (sa -~> sb) -> Code m (sa -~> sb) #

(SupportedPrim (ca --> cb), LinkedRep ca sa, LinkedRep cb sb) => ToSym (UnionM (ca --> cb)) (sa -~> sb) Source # 
Instance details

Defined in Grisette.Internal.Core.Control.Monad.UnionM

Methods

toSym :: UnionM (ca --> cb) -> sa -~> sb Source #

(SupportedPrim (ca --> cb), LinkedRep ca sa, LinkedRep cb sb) => IsString (sa -~> sb) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymGeneralFun

Methods

fromString :: String -> sa -~> sb #

(SupportedPrim (ca --> cb), LinkedRep ca sa, LinkedRep cb sb) => Show (sa -~> sb) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymGeneralFun

Methods

showsPrec :: Int -> (sa -~> sb) -> ShowS #

show :: (sa -~> sb) -> String #

showList :: [sa -~> sb] -> ShowS #

NFData (sa -~> sb) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymGeneralFun

Methods

rnf :: (sa -~> sb) -> () #

(SupportedPrim (ca --> cb), LinkedRep ca sa, LinkedRep cb sb) => Eq (sa -~> sb) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymGeneralFun

Methods

(==) :: (sa -~> sb) -> (sa -~> sb) -> Bool #

(/=) :: (sa -~> sb) -> (sa -~> sb) -> Bool #

(SupportedPrim (ca --> cb), LinkedRep ca sa, LinkedRep cb sb) => EvaluateSym (sa -~> sb) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.EvaluateSym

Methods

evaluateSym :: Bool -> Model -> (sa -~> sb) -> sa -~> sb Source #

(SupportedPrim (ca --> cb), LinkedRep ca sa, LinkedRep cb sb) => ExtractSymbolics (sa -~> sb) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ExtractSymbolics

Methods

extractSymbolics :: (sa -~> sb) -> SymbolSet Source #

(LinkedRep ca sa, LinkedRep ct st, Apply st, SupportedNonFuncPrim ca, SupportedPrim ct, SupportedPrim (ca --> ct)) => Apply (sa -~> st) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymGeneralFun

Associated Types

type FunType (sa -~> st) Source #

Methods

apply :: (sa -~> st) -> FunType (sa -~> st) Source #

(SupportedPrim ca, SupportedPrim cb, LinkedRep ca sa, LinkedRep cb sb) => GPretty (sa -~> sb) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.GPretty

Methods

gpretty :: (sa -~> sb) -> Doc ann Source #

gprettyPrec :: Int -> (sa -~> sb) -> Doc ann Source #

gprettyList :: [sa -~> sb] -> Doc ann Source #

(SupportedPrim (ca --> cb), LinkedRep ca sa, LinkedRep cb sb) => ITEOp (sa -~> sb) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ITEOp

Methods

symIte :: SymBool -> (sa -~> sb) -> (sa -~> sb) -> sa -~> sb Source #

(SupportedPrim (ca --> cb), LinkedRep ca sa, LinkedRep cb sb) => Mergeable (sa -~> sb) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.Mergeable

(SupportedPrim (ca --> cb), LinkedRep ca sa, LinkedRep cb sb) => SimpleMergeable (sa -~> sb) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.SimpleMergeable

Methods

mrgIte :: SymBool -> (sa -~> sb) -> (sa -~> sb) -> sa -~> sb Source #

(SupportedPrim (ca --> cb), LinkedRep ca sa, LinkedRep cb sb) => SubstituteSym (sa -~> sb) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.SubstituteSym

Methods

substituteSym :: LinkedRep cb sb0 => TypedSymbol cb -> sb0 -> (sa -~> sb) -> sa -~> sb Source #

(SupportedPrim (ca --> cb), LinkedRep ca sa, LinkedRep cb sb) => AllSyms (sa -~> sb) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymGeneralFun

Methods

allSymsS :: (sa -~> sb) -> [SomeSym] -> [SomeSym] Source #

allSyms :: (sa -~> sb) -> [SomeSym] Source #

(ConRep a, ConRep b) => ConRep (a -~> b) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymGeneralFun

Associated Types

type ConType (a -~> b) Source #

(SupportedPrim (ca --> cb), LinkedRep ca sa, LinkedRep cb sb) => Hashable (sa -~> sb) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymGeneralFun

Methods

hashWithSalt :: Int -> (sa -~> sb) -> Int #

hash :: (sa -~> sb) -> Int #

(SupportedNonFuncPrim ca, SupportedPrim cb, LinkedRep ca sa, LinkedRep cb sb, SupportedPrim (ca --> cb)) => Function (sa -~> sb) sa sb Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymGeneralFun

Methods

(#) :: (sa -~> sb) -> sa -> sb Source #

(SupportedPrim (ca --> cb), LinkedRep ca sa, LinkedRep cb sb) => GenSym (sa -~> sb) (sa -~> sb) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.GenSym

Methods

fresh :: MonadFresh m => (sa -~> sb) -> m (UnionM (sa -~> sb)) Source #

(SupportedPrim (ca --> cb), LinkedRep ca sa, LinkedRep cb sb) => GenSymSimple (sa -~> sb) (sa -~> sb) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.GenSym

Methods

simpleFresh :: MonadFresh m => (sa -~> sb) -> m (sa -~> sb) Source #

(SupportedPrim ca, SupportedPrim cb, LinkedRep ca sa, LinkedRep cb sb, SupportedPrim (ca --> cb)) => Solvable (ca --> cb) (sa -~> sb) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymGeneralFun

Methods

con :: (ca --> cb) -> sa -~> sb Source #

conView :: (sa -~> sb) -> Maybe (ca --> cb) Source #

sym :: Symbol -> sa -~> sb Source #

ssym :: Identifier -> sa -~> sb Source #

isym :: Identifier -> Int -> sa -~> sb Source #

(SupportedPrim a, SupportedPrim b) => ToCon (a -~> b) (a -~> b) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ToCon

Methods

toCon :: (a -~> b) -> Maybe (a -~> b) Source #

(SupportedPrim (ca --> cb), LinkedRep ca sa, LinkedRep cb sb) => ToCon (sa -~> sb) (ca --> cb) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ToCon

Methods

toCon :: (sa -~> sb) -> Maybe (ca --> cb) Source #

(SupportedPrim (ca --> cb), LinkedRep ca sa, LinkedRep cb sb) => ToSym (ca --> cb) (sa -~> sb) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ToSym

Methods

toSym :: (ca --> cb) -> sa -~> sb Source #

(SupportedPrim a, SupportedPrim b) => ToSym (a -~> b) (a -~> b) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Class.ToSym

Methods

toSym :: (a -~> b) -> a -~> b Source #

(LinkedRep ca sa, LinkedRep cb sb, SupportedPrim ca, SupportedPrim cb, SupportedPrim (ca --> cb)) => LinkedRep (ca --> cb) (sa -~> sb) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymGeneralFun

Methods

underlyingTerm :: (sa -~> sb) -> Term (ca --> cb) Source #

wrapTerm :: Term (ca --> cb) -> sa -~> sb Source #

type FunType (sa -~> st) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymGeneralFun

type FunType (sa -~> st) = sa -> FunType st
type ConType (a -~> b) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymGeneralFun

type ConType (a -~> b) = ConType a --> ConType b

data TypedSymbol 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:

>>> :set -XOverloadedStrings
>>> "a" :: TypedSymbol Bool
a :: Bool

Constructors

TypedSymbol 

Fields

Instances

Instances details
SymbolSetOps SymbolSet TypedSymbol Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Model

ModelOps Model SymbolSet TypedSymbol Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Model

Lift (TypedSymbol t :: Type) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Methods

lift :: Quote m => TypedSymbol t -> m Exp #

liftTyped :: forall (m :: Type -> Type). Quote m => TypedSymbol t -> Code m (TypedSymbol t) #

SupportedPrim t => IsString (TypedSymbol t) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Show (TypedSymbol t) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

NFData (TypedSymbol t) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Methods

rnf :: TypedSymbol t -> () #

Eq (TypedSymbol t) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Ord (TypedSymbol t) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Hashable (TypedSymbol t) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Methods

hashWithSalt :: Int -> TypedSymbol t -> Int #

hash :: TypedSymbol t -> Int #

SymbolSetRep (TypedSymbol t) SymbolSet TypedSymbol Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Model

SymbolSetRep (TypedSymbol a, TypedSymbol b) SymbolSet TypedSymbol Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Model

SymbolSetRep (TypedSymbol a, TypedSymbol b, TypedSymbol c) SymbolSet TypedSymbol Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Model

SymbolSetRep (TypedSymbol a, TypedSymbol b, TypedSymbol c, TypedSymbol d) SymbolSet TypedSymbol Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Model

SymbolSetRep (TypedSymbol a, TypedSymbol b, TypedSymbol c, TypedSymbol d, TypedSymbol e) SymbolSet TypedSymbol Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Model

SymbolSetRep (TypedSymbol a, TypedSymbol b, TypedSymbol c, TypedSymbol d, TypedSymbol e, TypedSymbol f) SymbolSet TypedSymbol Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Model

SymbolSetRep (TypedSymbol a, TypedSymbol b, TypedSymbol c, TypedSymbol d, TypedSymbol e, TypedSymbol f, TypedSymbol g) SymbolSet TypedSymbol Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Model

SymbolSetRep (TypedSymbol a, TypedSymbol b, TypedSymbol c, TypedSymbol d, TypedSymbol e, TypedSymbol f, TypedSymbol g, TypedSymbol h) SymbolSet TypedSymbol Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Model

symSize :: forall con sym. 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 :: forall con sym. 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

class AllSyms a where Source #

Extract all symbolic primitive values that are represented as SMT terms.

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)

Minimal complete definition

allSymsS | allSyms

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

Instances details
AllSyms Int16 Source # 
Instance details

Defined in Grisette.Internal.SymPrim.AllSyms

AllSyms Int32 Source # 
Instance details

Defined in Grisette.Internal.SymPrim.AllSyms

AllSyms Int64 Source # 
Instance details

Defined in Grisette.Internal.SymPrim.AllSyms

AllSyms Int8 Source # 
Instance details

Defined in Grisette.Internal.SymPrim.AllSyms

AllSyms Word16 Source # 
Instance details

Defined in Grisette.Internal.SymPrim.AllSyms

AllSyms Word32 Source # 
Instance details

Defined in Grisette.Internal.SymPrim.AllSyms

AllSyms Word64 Source # 
Instance details

Defined in Grisette.Internal.SymPrim.AllSyms

AllSyms Word8 Source # 
Instance details

Defined in Grisette.Internal.SymPrim.AllSyms

AllSyms ByteString Source # 
Instance details

Defined in Grisette.Internal.SymPrim.AllSyms

AllSyms AssertionError Source # 
Instance details

Defined in Grisette.Internal.SymPrim.AllSyms

AllSyms VerificationConditions Source # 
Instance details

Defined in Grisette.Internal.SymPrim.AllSyms

AllSyms SymBool Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBool

AllSyms SymInteger Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymInteger

AllSyms Text Source # 
Instance details

Defined in Grisette.Internal.SymPrim.AllSyms

AllSyms Integer Source # 
Instance details

Defined in Grisette.Internal.SymPrim.AllSyms

AllSyms () Source # 
Instance details

Defined in Grisette.Internal.SymPrim.AllSyms

Methods

allSymsS :: () -> [SomeSym] -> [SomeSym] Source #

allSyms :: () -> [SomeSym] Source #

AllSyms Bool Source # 
Instance details

Defined in Grisette.Internal.SymPrim.AllSyms

AllSyms Char Source # 
Instance details

Defined in Grisette.Internal.SymPrim.AllSyms

AllSyms Int Source # 
Instance details

Defined in Grisette.Internal.SymPrim.AllSyms

AllSyms Word Source # 
Instance details

Defined in Grisette.Internal.SymPrim.AllSyms

AllSyms a => AllSyms (Identity a) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.AllSyms

(Generic a, AllSyms' (Rep a)) => AllSyms (Default a) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.AllSyms

AllSyms a => AllSyms (UnionM a) Source # 
Instance details

Defined in Grisette.Internal.Core.Control.Monad.UnionM

AllSyms a => AllSyms (Union a) Source # 
Instance details

Defined in Grisette.Internal.Core.Data.Union

Methods

allSymsS :: Union a -> [SomeSym] -> [SomeSym] Source #

allSyms :: Union a -> [SomeSym] Source #

(forall (n :: Nat). (KnownNat n, 1 <= n) => AllSyms (bv n)) => AllSyms (SomeBV bv) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SomeBV

Methods

allSymsS :: SomeBV bv -> [SomeSym] -> [SomeSym] Source #

allSyms :: SomeBV bv -> [SomeSym] Source #

(KnownNat n, 1 <= n) => AllSyms (SymIntN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBV

(KnownNat n, 1 <= n) => AllSyms (SymWordN n) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBV

AllSyms a => AllSyms (Maybe a) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.AllSyms

Methods

allSymsS :: Maybe a -> [SomeSym] -> [SomeSym] Source #

allSyms :: Maybe a -> [SomeSym] Source #

AllSyms a => AllSyms [a] Source # 
Instance details

Defined in Grisette.Internal.SymPrim.AllSyms

Methods

allSymsS :: [a] -> [SomeSym] -> [SomeSym] Source #

allSyms :: [a] -> [SomeSym] Source #

(AllSyms a, AllSyms b) => AllSyms (Either a b) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.AllSyms

Methods

allSymsS :: Either a b -> [SomeSym] -> [SomeSym] Source #

allSyms :: Either a b -> [SomeSym] Source #

(SupportedPrim (ca --> cb), LinkedRep ca sa, LinkedRep cb sb) => AllSyms (sa -~> sb) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymGeneralFun

Methods

allSymsS :: (sa -~> sb) -> [SomeSym] -> [SomeSym] Source #

allSyms :: (sa -~> sb) -> [SomeSym] Source #

(SupportedPrim (ca =-> cb), LinkedRep ca sa, LinkedRep cb sb) => AllSyms (sa =~> sb) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymTabularFun

Methods

allSymsS :: (sa =~> sb) -> [SomeSym] -> [SomeSym] Source #

allSyms :: (sa =~> sb) -> [SomeSym] Source #

AllSyms (m (Maybe a)) => AllSyms (MaybeT m a) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.AllSyms

Methods

allSymsS :: MaybeT m a -> [SomeSym] -> [SomeSym] Source #

allSyms :: MaybeT m a -> [SomeSym] Source #

(AllSyms a, AllSyms b) => AllSyms (a, b) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.AllSyms

Methods

allSymsS :: (a, b) -> [SomeSym] -> [SomeSym] Source #

allSyms :: (a, b) -> [SomeSym] Source #

AllSyms (m (Either e a)) => AllSyms (ExceptT e m a) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.AllSyms

Methods

allSymsS :: ExceptT e m a -> [SomeSym] -> [SomeSym] Source #

allSyms :: ExceptT e m a -> [SomeSym] Source #

AllSyms (m a) => AllSyms (IdentityT m a) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.AllSyms

AllSyms (m (a, s)) => AllSyms (WriterT s m a) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.AllSyms

Methods

allSymsS :: WriterT s m a -> [SomeSym] -> [SomeSym] Source #

allSyms :: WriterT s m a -> [SomeSym] Source #

AllSyms (m (a, s)) => AllSyms (WriterT s m a) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.AllSyms

Methods

allSymsS :: WriterT s m a -> [SomeSym] -> [SomeSym] Source #

allSyms :: WriterT s m a -> [SomeSym] Source #

(AllSyms a, AllSyms b, AllSyms c) => AllSyms (a, b, c) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.AllSyms

Methods

allSymsS :: (a, b, c) -> [SomeSym] -> [SomeSym] Source #

allSyms :: (a, b, c) -> [SomeSym] Source #

(AllSyms (f a), AllSyms (g a)) => AllSyms (Sum f g a) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.AllSyms

Methods

allSymsS :: Sum f g a -> [SomeSym] -> [SomeSym] Source #

allSyms :: Sum f g a -> [SomeSym] Source #

(AllSyms a, AllSyms b, AllSyms c, AllSyms d) => AllSyms (a, b, c, d) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.AllSyms

Methods

allSymsS :: (a, b, c, d) -> [SomeSym] -> [SomeSym] Source #

allSyms :: (a, b, c, d) -> [SomeSym] Source #

(AllSyms a, AllSyms b, AllSyms c, AllSyms d, AllSyms e) => AllSyms (a, b, c, d, e) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.AllSyms

Methods

allSymsS :: (a, b, c, d, e) -> [SomeSym] -> [SomeSym] Source #

allSyms :: (a, b, c, d, e) -> [SomeSym] Source #

(AllSyms a, AllSyms b, AllSyms c, AllSyms d, AllSyms e, AllSyms f) => AllSyms (a, b, c, d, e, f) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.AllSyms

Methods

allSymsS :: (a, b, c, d, e, f) -> [SomeSym] -> [SomeSym] Source #

allSyms :: (a, b, c, d, e, f) -> [SomeSym] Source #

(AllSyms a, AllSyms b, AllSyms c, AllSyms d, AllSyms e, AllSyms f, AllSyms g) => AllSyms (a, b, c, d, e, f, g) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.AllSyms

Methods

allSymsS :: (a, b, c, d, e, f, g) -> [SomeSym] -> [SomeSym] Source #

allSyms :: (a, b, c, d, e, f, g) -> [SomeSym] Source #

(AllSyms a, AllSyms b, AllSyms c, AllSyms d, AllSyms e, AllSyms f, AllSyms g, AllSyms h) => AllSyms (a, b, c, d, e, f, g, h) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.AllSyms

Methods

allSymsS :: (a, b, c, d, e, f, g, h) -> [SomeSym] -> [SomeSym] Source #

allSyms :: (a, b, c, d, e, f, g, h) -> [SomeSym] Source #

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

Symbolic constant sets and models

newtype SymbolSet Source #

Symbolic constant set.

Instances

Instances details
Monoid SymbolSet Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Model

Semigroup SymbolSet Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Model

Generic SymbolSet Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Model

Associated Types

type Rep SymbolSet :: Type -> Type #

Show SymbolSet Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Model

Eq SymbolSet Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Model

Hashable SymbolSet Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Model

SymbolSetOps SymbolSet TypedSymbol Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Model

ModelOps Model SymbolSet TypedSymbol Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Model

SymbolSetRep (TypedSymbol t) SymbolSet TypedSymbol Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Model

SymbolSetRep (TypedSymbol a, TypedSymbol b) SymbolSet TypedSymbol Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Model

SymbolSetRep (TypedSymbol a, TypedSymbol b, TypedSymbol c) SymbolSet TypedSymbol Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Model

SymbolSetRep (TypedSymbol a, TypedSymbol b, TypedSymbol c, TypedSymbol d) SymbolSet TypedSymbol Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Model

SymbolSetRep (TypedSymbol a, TypedSymbol b, TypedSymbol c, TypedSymbol d, TypedSymbol e) SymbolSet TypedSymbol Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Model

SymbolSetRep (TypedSymbol a, TypedSymbol b, TypedSymbol c, TypedSymbol d, TypedSymbol e, TypedSymbol f) SymbolSet TypedSymbol Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Model

SymbolSetRep (TypedSymbol a, TypedSymbol b, TypedSymbol c, TypedSymbol d, TypedSymbol e, TypedSymbol f, TypedSymbol g) SymbolSet TypedSymbol Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Model

SymbolSetRep (TypedSymbol a, TypedSymbol b, TypedSymbol c, TypedSymbol d, TypedSymbol e, TypedSymbol f, TypedSymbol g, TypedSymbol h) SymbolSet TypedSymbol Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Model

type Rep SymbolSet Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Model

type Rep SymbolSet = D1 ('MetaData "SymbolSet" "Grisette.Internal.SymPrim.Prim.Model" "grisette-0.5.0.0-2ZDAuzWdzg48yPrBcRstUR" 'True) (C1 ('MetaCons "SymbolSet" 'PrefixI 'True) (S1 ('MetaSel ('Just "unSymbolSet") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (HashSet SomeTypedSymbol))))

newtype Model Source #

Model returned by the solver.

Instances

Instances details
Monoid Model Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Model

Methods

mempty :: Model #

mappend :: Model -> Model -> Model #

mconcat :: [Model] -> Model #

Semigroup Model Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Model

Methods

(<>) :: Model -> Model -> Model #

sconcat :: NonEmpty Model -> Model #

stimes :: Integral b => b -> Model -> Model #

Generic Model Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Model

Associated Types

type Rep Model :: Type -> Type #

Methods

from :: Model -> Rep Model x #

to :: Rep Model x -> Model #

Show Model Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Model

Methods

showsPrec :: Int -> Model -> ShowS #

show :: Model -> String #

showList :: [Model] -> ShowS #

Eq Model Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Model

Methods

(==) :: Model -> Model -> Bool #

(/=) :: Model -> Model -> Bool #

Hashable Model Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Model

Methods

hashWithSalt :: Int -> Model -> Int #

hash :: Model -> Int #

ModelOps Model SymbolSet TypedSymbol Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Model

ModelRep (ModelValuePair t) Model Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Model

ModelRep (ModelSymPair ct st) Model Source # 
Instance details

Defined in Grisette.Internal.SymPrim.ModelRep

Methods

buildModel :: ModelSymPair ct st -> Model Source #

(ModelRep a Model, ModelRep b Model) => ModelRep (a, b) Model Source # 
Instance details

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 # 
Instance details

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 # 
Instance details

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 # 
Instance details

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 # 
Instance details

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 # 
Instance details

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 # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Model

Methods

buildModel :: (a, b, c, d, e, f, g, h) -> Model Source #

type Rep Model Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Model

type Rep Model = D1 ('MetaData "Model" "Grisette.Internal.SymPrim.Prim.Model" "grisette-0.5.0.0-2ZDAuzWdzg48yPrBcRstUR" 'True) (C1 ('MetaCons "Model" 'PrefixI 'True) (S1 ('MetaSel ('Just "unModel") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (HashMap SomeTypedSymbol 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

(TypedSymbol t) ::= t 

Instances

Instances details
Show t => Show (ModelValuePair t) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Model

ModelRep (ModelValuePair t) Model Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Model

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

(:=) :: LinkedRep ct st => st -> ct -> ModelSymPair ct st 

Instances

Instances details
ModelRep (ModelSymPair ct st) Model Source # 
Instance details

Defined in Grisette.Internal.SymPrim.ModelRep

Methods

buildModel :: ModelSymPair ct st -> Model Source #