grisette-0.11.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.Internal.SymPrim.Prim.Internal.Term

Description

 
Synopsis

Supported primitive types

class SupportedPrimConstraint t Source #

Type class for resolving the constraint for a supported primitive type.

Associated Types

type PrimConstraint t :: Constraint Source #

type PrimConstraint _ = ()

Instances

Instances details
SupportedPrimConstraint AlgReal Source # 
Instance details

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

Associated Types

type PrimConstraint AlgReal Source #

SupportedPrimConstraint FPRoundingMode Source # 
Instance details

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

Associated Types

type PrimConstraint FPRoundingMode Source #

SupportedPrimConstraint Integer Source # 
Instance details

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

Associated Types

type PrimConstraint Integer Source #

SupportedPrimConstraint Bool Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Associated Types

type PrimConstraint Bool Source #

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

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

Associated Types

type PrimConstraint (IntN 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 (WordN w) Source #

ValidFP eb sb => SupportedPrimConstraint (FP eb sb) Source # 
Instance details

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

Associated Types

type PrimConstraint (FP eb sb) Source #

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

Defined in Grisette.Internal.SymPrim.GeneralFun

Associated Types

type PrimConstraint (a --> b) Source #

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

Defined in Grisette.Internal.SymPrim.TabularFun

Associated Types

type PrimConstraint (a =-> b) Source #

class (Lift t, NFData t, SupportedPrimConstraint t, SBVRep t) => SupportedPrim t where Source #

Indicates that a type is supported, can be represented as a symbolic term, and can be lowered to an SBV term.

Methods

primTypeRep :: TypeRep t Source #

default primTypeRep :: Typeable t => TypeRep t Source #

sameCon :: t -> t -> Bool Source #

default sameCon :: Eq t => t -> t -> Bool Source #

hashConWithSalt :: Int -> t -> Int Source #

default hashConWithSalt :: Hashable t => Int -> t -> Int Source #

pformatCon :: t -> String Source #

default pformatCon :: Show t => t -> String Source #

defaultValue :: t Source #

pevalITETerm :: Term Bool -> Term t -> Term t -> Term t Source #

pevalEqTerm :: Term t -> Term t -> Term Bool Source #

pevalDistinctTerm :: NonEmpty (Term t) -> Term Bool Source #

conSBVTerm :: t -> SBVType t Source #

symSBVName :: TypedSymbol 'AnyKind t -> Int -> String Source #

symSBVTerm :: SBVFreshMonad m => String -> m (SBVType t) Source #

withPrim :: ((PrimConstraint t, SMTDefinable (SBVType t), Mergeable (SBVType t), Typeable (SBVType t)) => a) -> a Source #

sbvIte :: SBV Bool -> SBVType t -> SBVType t -> SBVType t Source #

sbvEq :: SBVType t -> SBVType t -> SBV Bool Source #

default sbvEq :: EqSymbolic (SBVType t) => SBVType t -> SBVType t -> SBV Bool Source #

sbvDistinct :: NonEmpty (SBVType t) -> SBV Bool Source #

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

castTypedSymbol :: IsSymbolKind knd' => TypedSymbol knd t -> Maybe (TypedSymbol knd' t) Source #

funcDummyConstraint :: SBVType t -> SBV Bool Source #

Instances

Instances details
SupportedPrim AlgReal Source # 
Instance details

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

SupportedPrim FPRoundingMode Source # 
Instance details

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

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

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

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

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

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

ValidFP eb sb => SupportedPrim (FP eb sb) Source # 
Instance details

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

Methods

primTypeRep :: TypeRep (FP eb sb) Source #

sameCon :: FP eb sb -> FP eb sb -> Bool Source #

hashConWithSalt :: Int -> FP eb sb -> Int Source #

pformatCon :: FP eb sb -> String Source #

defaultValue :: FP eb sb Source #

pevalITETerm :: Term Bool -> Term (FP eb sb) -> Term (FP eb sb) -> Term (FP eb sb) Source #

pevalEqTerm :: Term (FP eb sb) -> Term (FP eb sb) -> Term Bool Source #

pevalDistinctTerm :: NonEmpty (Term (FP eb sb)) -> Term Bool Source #

conSBVTerm :: FP eb sb -> SBVType (FP eb sb) Source #

symSBVName :: TypedSymbol 'AnyKind (FP eb sb) -> Int -> String Source #

symSBVTerm :: SBVFreshMonad m => String -> m (SBVType (FP eb sb)) Source #

withPrim :: ((PrimConstraint (FP eb sb), SMTDefinable (SBVType (FP eb sb)), Mergeable (SBVType (FP eb sb)), Typeable (SBVType (FP eb sb))) => a) -> a Source #

sbvIte :: SBV Bool -> SBVType (FP eb sb) -> SBVType (FP eb sb) -> SBVType (FP eb sb) Source #

sbvEq :: SBVType (FP eb sb) -> SBVType (FP eb sb) -> SBV Bool Source #

sbvDistinct :: NonEmpty (SBVType (FP eb sb)) -> SBV Bool Source #

parseSMTModelResult :: Int -> ([([CV], CV)], CV) -> FP eb sb Source #

castTypedSymbol :: forall (knd' :: SymbolKind) (knd :: SymbolKind). IsSymbolKind knd' => TypedSymbol knd (FP eb sb) -> Maybe (TypedSymbol knd' (FP eb sb)) Source #

funcDummyConstraint :: SBVType (FP eb sb) -> SBV Bool Source #

(SupportedNonFuncPrim a0, Eq a0, Show a0, Hashable a0, Typeable a0, SupportedNonFuncPrim a1, Eq a1, Show a1, Hashable a1, Typeable a1, SupportedNonFuncPrim a2, Eq a2, Show a2, Hashable a2, Typeable a2, SupportedNonFuncPrim a3, Eq a3, Show a3, Hashable a3, Typeable a3, SupportedNonFuncPrim a4, Eq a4, Show a4, Hashable a4, Typeable a4, SupportedNonFuncPrim a5, Eq a5, Show a5, Hashable a5, Typeable a5, SupportedNonFuncPrim a6, Eq a6, Show a6, Hashable a6, Typeable a6, SupportedNonFuncPrim a7, Eq a7, Show a7, Hashable a7, Typeable a7) => SupportedPrim (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7))))))) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.GeneralFun

Methods

primTypeRep :: TypeRep (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7))))))) Source #

sameCon :: (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7))))))) -> (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7))))))) -> Bool Source #

hashConWithSalt :: Int -> (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7))))))) -> Int Source #

pformatCon :: (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7))))))) -> String Source #

defaultValue :: a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7)))))) Source #

pevalITETerm :: Term Bool -> Term (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7))))))) -> Term (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7))))))) -> Term (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7))))))) Source #

pevalEqTerm :: Term (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7))))))) -> Term (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7))))))) -> Term Bool Source #

pevalDistinctTerm :: NonEmpty (Term (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7)))))))) -> Term Bool Source #

conSBVTerm :: (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7))))))) -> SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7))))))) Source #

symSBVName :: TypedSymbol 'AnyKind (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7))))))) -> Int -> String Source #

symSBVTerm :: SBVFreshMonad m => String -> m (SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7)))))))) Source #

withPrim :: ((PrimConstraint (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7))))))), SMTDefinable (SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7)))))))), Mergeable (SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7)))))))), Typeable (SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7))))))))) => a) -> a Source #

sbvIte :: SBV Bool -> SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7))))))) -> SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7))))))) -> SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7))))))) Source #

sbvEq :: SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7))))))) -> SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7))))))) -> SBV Bool Source #

sbvDistinct :: NonEmpty (SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7)))))))) -> SBV Bool Source #

parseSMTModelResult :: Int -> ([([CV], CV)], CV) -> a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7)))))) Source #

castTypedSymbol :: forall (knd' :: SymbolKind) (knd :: SymbolKind). IsSymbolKind knd' => TypedSymbol knd (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7))))))) -> Maybe (TypedSymbol knd' (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7)))))))) Source #

funcDummyConstraint :: SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> (a6 --> a7))))))) -> SBV Bool Source #

(SupportedNonFuncPrim a0, Eq a0, Show a0, Hashable a0, Typeable a0, SupportedNonFuncPrim a1, Eq a1, Show a1, Hashable a1, Typeable a1, SupportedNonFuncPrim a2, Eq a2, Show a2, Hashable a2, Typeable a2, SupportedNonFuncPrim a3, Eq a3, Show a3, Hashable a3, Typeable a3, SupportedNonFuncPrim a4, Eq a4, Show a4, Hashable a4, Typeable a4, SupportedNonFuncPrim a5, Eq a5, Show a5, Hashable a5, Typeable a5, SupportedNonFuncPrim a6, Eq a6, Show a6, Hashable a6, Typeable a6) => SupportedPrim (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6)))))) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.GeneralFun

Methods

primTypeRep :: TypeRep (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6)))))) Source #

sameCon :: (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6)))))) -> (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6)))))) -> Bool Source #

hashConWithSalt :: Int -> (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6)))))) -> Int Source #

pformatCon :: (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6)))))) -> String Source #

defaultValue :: a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6))))) Source #

pevalITETerm :: Term Bool -> Term (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6)))))) -> Term (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6)))))) -> Term (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6)))))) Source #

pevalEqTerm :: Term (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6)))))) -> Term (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6)))))) -> Term Bool Source #

pevalDistinctTerm :: NonEmpty (Term (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6))))))) -> Term Bool Source #

conSBVTerm :: (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6)))))) -> SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6)))))) Source #

symSBVName :: TypedSymbol 'AnyKind (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6)))))) -> Int -> String Source #

symSBVTerm :: SBVFreshMonad m => String -> m (SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6))))))) Source #

withPrim :: ((PrimConstraint (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6)))))), SMTDefinable (SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6))))))), Mergeable (SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6))))))), Typeable (SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6)))))))) => a) -> a Source #

sbvIte :: SBV Bool -> SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6)))))) -> SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6)))))) -> SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6)))))) Source #

sbvEq :: SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6)))))) -> SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6)))))) -> SBV Bool Source #

sbvDistinct :: NonEmpty (SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6))))))) -> SBV Bool Source #

parseSMTModelResult :: Int -> ([([CV], CV)], CV) -> a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6))))) Source #

castTypedSymbol :: forall (knd' :: SymbolKind) (knd :: SymbolKind). IsSymbolKind knd' => TypedSymbol knd (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6)))))) -> Maybe (TypedSymbol knd' (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6))))))) Source #

funcDummyConstraint :: SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> (a5 --> a6)))))) -> SBV Bool Source #

(SupportedNonFuncPrim a0, Eq a0, Show a0, Hashable a0, Typeable a0, SupportedNonFuncPrim a1, Eq a1, Show a1, Hashable a1, Typeable a1, SupportedNonFuncPrim a2, Eq a2, Show a2, Hashable a2, Typeable a2, SupportedNonFuncPrim a3, Eq a3, Show a3, Hashable a3, Typeable a3, SupportedNonFuncPrim a4, Eq a4, Show a4, Hashable a4, Typeable a4, SupportedNonFuncPrim a5, Eq a5, Show a5, Hashable a5, Typeable a5) => SupportedPrim (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5))))) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.GeneralFun

Methods

primTypeRep :: TypeRep (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5))))) Source #

sameCon :: (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5))))) -> (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5))))) -> Bool Source #

hashConWithSalt :: Int -> (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5))))) -> Int Source #

pformatCon :: (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5))))) -> String Source #

defaultValue :: a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5)))) Source #

pevalITETerm :: Term Bool -> Term (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5))))) -> Term (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5))))) -> Term (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5))))) Source #

pevalEqTerm :: Term (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5))))) -> Term (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5))))) -> Term Bool Source #

pevalDistinctTerm :: NonEmpty (Term (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5)))))) -> Term Bool Source #

conSBVTerm :: (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5))))) -> SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5))))) Source #

symSBVName :: TypedSymbol 'AnyKind (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5))))) -> Int -> String Source #

symSBVTerm :: SBVFreshMonad m => String -> m (SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5)))))) Source #

withPrim :: ((PrimConstraint (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5))))), SMTDefinable (SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5)))))), Mergeable (SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5)))))), Typeable (SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5))))))) => a) -> a Source #

sbvIte :: SBV Bool -> SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5))))) -> SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5))))) -> SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5))))) Source #

sbvEq :: SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5))))) -> SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5))))) -> SBV Bool Source #

sbvDistinct :: NonEmpty (SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5)))))) -> SBV Bool Source #

parseSMTModelResult :: Int -> ([([CV], CV)], CV) -> a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5)))) Source #

castTypedSymbol :: forall (knd' :: SymbolKind) (knd :: SymbolKind). IsSymbolKind knd' => TypedSymbol knd (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5))))) -> Maybe (TypedSymbol knd' (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5)))))) Source #

funcDummyConstraint :: SBVType (a0 --> (a1 --> (a2 --> (a3 --> (a4 --> a5))))) -> SBV Bool Source #

(SupportedNonFuncPrim a0, Eq a0, Show a0, Hashable a0, Typeable a0, SupportedNonFuncPrim a1, Eq a1, Show a1, Hashable a1, Typeable a1, SupportedNonFuncPrim a2, Eq a2, Show a2, Hashable a2, Typeable a2, SupportedNonFuncPrim a3, Eq a3, Show a3, Hashable a3, Typeable a3, SupportedNonFuncPrim a4, Eq a4, Show a4, Hashable a4, Typeable a4) => SupportedPrim (a0 --> (a1 --> (a2 --> (a3 --> a4)))) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.GeneralFun

Methods

primTypeRep :: TypeRep (a0 --> (a1 --> (a2 --> (a3 --> a4)))) Source #

sameCon :: (a0 --> (a1 --> (a2 --> (a3 --> a4)))) -> (a0 --> (a1 --> (a2 --> (a3 --> a4)))) -> Bool Source #

hashConWithSalt :: Int -> (a0 --> (a1 --> (a2 --> (a3 --> a4)))) -> Int Source #

pformatCon :: (a0 --> (a1 --> (a2 --> (a3 --> a4)))) -> String Source #

defaultValue :: a0 --> (a1 --> (a2 --> (a3 --> a4))) Source #

pevalITETerm :: Term Bool -> Term (a0 --> (a1 --> (a2 --> (a3 --> a4)))) -> Term (a0 --> (a1 --> (a2 --> (a3 --> a4)))) -> Term (a0 --> (a1 --> (a2 --> (a3 --> a4)))) Source #

pevalEqTerm :: Term (a0 --> (a1 --> (a2 --> (a3 --> a4)))) -> Term (a0 --> (a1 --> (a2 --> (a3 --> a4)))) -> Term Bool Source #

pevalDistinctTerm :: NonEmpty (Term (a0 --> (a1 --> (a2 --> (a3 --> a4))))) -> Term Bool Source #

conSBVTerm :: (a0 --> (a1 --> (a2 --> (a3 --> a4)))) -> SBVType (a0 --> (a1 --> (a2 --> (a3 --> a4)))) Source #

symSBVName :: TypedSymbol 'AnyKind (a0 --> (a1 --> (a2 --> (a3 --> a4)))) -> Int -> String Source #

symSBVTerm :: SBVFreshMonad m => String -> m (SBVType (a0 --> (a1 --> (a2 --> (a3 --> a4))))) Source #

withPrim :: ((PrimConstraint (a0 --> (a1 --> (a2 --> (a3 --> a4)))), SMTDefinable (SBVType (a0 --> (a1 --> (a2 --> (a3 --> a4))))), Mergeable (SBVType (a0 --> (a1 --> (a2 --> (a3 --> a4))))), Typeable (SBVType (a0 --> (a1 --> (a2 --> (a3 --> a4)))))) => a) -> a Source #

sbvIte :: SBV Bool -> SBVType (a0 --> (a1 --> (a2 --> (a3 --> a4)))) -> SBVType (a0 --> (a1 --> (a2 --> (a3 --> a4)))) -> SBVType (a0 --> (a1 --> (a2 --> (a3 --> a4)))) Source #

sbvEq :: SBVType (a0 --> (a1 --> (a2 --> (a3 --> a4)))) -> SBVType (a0 --> (a1 --> (a2 --> (a3 --> a4)))) -> SBV Bool Source #

sbvDistinct :: NonEmpty (SBVType (a0 --> (a1 --> (a2 --> (a3 --> a4))))) -> SBV Bool Source #

parseSMTModelResult :: Int -> ([([CV], CV)], CV) -> a0 --> (a1 --> (a2 --> (a3 --> a4))) Source #

castTypedSymbol :: forall (knd' :: SymbolKind) (knd :: SymbolKind). IsSymbolKind knd' => TypedSymbol knd (a0 --> (a1 --> (a2 --> (a3 --> a4)))) -> Maybe (TypedSymbol knd' (a0 --> (a1 --> (a2 --> (a3 --> a4))))) Source #

funcDummyConstraint :: SBVType (a0 --> (a1 --> (a2 --> (a3 --> a4)))) -> SBV Bool Source #

(SupportedNonFuncPrim a0, Eq a0, Show a0, Hashable a0, Typeable a0, SupportedNonFuncPrim a1, Eq a1, Show a1, Hashable a1, Typeable a1, SupportedNonFuncPrim a2, Eq a2, Show a2, Hashable a2, Typeable a2, SupportedNonFuncPrim a3, Eq a3, Show a3, Hashable a3, Typeable a3) => SupportedPrim (a0 --> (a1 --> (a2 --> a3))) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.GeneralFun

Methods

primTypeRep :: TypeRep (a0 --> (a1 --> (a2 --> a3))) Source #

sameCon :: (a0 --> (a1 --> (a2 --> a3))) -> (a0 --> (a1 --> (a2 --> a3))) -> Bool Source #

hashConWithSalt :: Int -> (a0 --> (a1 --> (a2 --> a3))) -> Int Source #

pformatCon :: (a0 --> (a1 --> (a2 --> a3))) -> String Source #

defaultValue :: a0 --> (a1 --> (a2 --> a3)) Source #

pevalITETerm :: Term Bool -> Term (a0 --> (a1 --> (a2 --> a3))) -> Term (a0 --> (a1 --> (a2 --> a3))) -> Term (a0 --> (a1 --> (a2 --> a3))) Source #

pevalEqTerm :: Term (a0 --> (a1 --> (a2 --> a3))) -> Term (a0 --> (a1 --> (a2 --> a3))) -> Term Bool Source #

pevalDistinctTerm :: NonEmpty (Term (a0 --> (a1 --> (a2 --> a3)))) -> Term Bool Source #

conSBVTerm :: (a0 --> (a1 --> (a2 --> a3))) -> SBVType (a0 --> (a1 --> (a2 --> a3))) Source #

symSBVName :: TypedSymbol 'AnyKind (a0 --> (a1 --> (a2 --> a3))) -> Int -> String Source #

symSBVTerm :: SBVFreshMonad m => String -> m (SBVType (a0 --> (a1 --> (a2 --> a3)))) Source #

withPrim :: ((PrimConstraint (a0 --> (a1 --> (a2 --> a3))), SMTDefinable (SBVType (a0 --> (a1 --> (a2 --> a3)))), Mergeable (SBVType (a0 --> (a1 --> (a2 --> a3)))), Typeable (SBVType (a0 --> (a1 --> (a2 --> a3))))) => a) -> a Source #

sbvIte :: SBV Bool -> SBVType (a0 --> (a1 --> (a2 --> a3))) -> SBVType (a0 --> (a1 --> (a2 --> a3))) -> SBVType (a0 --> (a1 --> (a2 --> a3))) Source #

sbvEq :: SBVType (a0 --> (a1 --> (a2 --> a3))) -> SBVType (a0 --> (a1 --> (a2 --> a3))) -> SBV Bool Source #

sbvDistinct :: NonEmpty (SBVType (a0 --> (a1 --> (a2 --> a3)))) -> SBV Bool Source #

parseSMTModelResult :: Int -> ([([CV], CV)], CV) -> a0 --> (a1 --> (a2 --> a3)) Source #

castTypedSymbol :: forall (knd' :: SymbolKind) (knd :: SymbolKind). IsSymbolKind knd' => TypedSymbol knd (a0 --> (a1 --> (a2 --> a3))) -> Maybe (TypedSymbol knd' (a0 --> (a1 --> (a2 --> a3)))) Source #

funcDummyConstraint :: SBVType (a0 --> (a1 --> (a2 --> a3))) -> SBV Bool Source #

(SupportedNonFuncPrim a0, Eq a0, Show a0, Hashable a0, Typeable a0, SupportedNonFuncPrim a1, Eq a1, Show a1, Hashable a1, Typeable a1, SupportedNonFuncPrim a2, Eq a2, Show a2, Hashable a2, Typeable a2) => SupportedPrim (a0 --> (a1 --> a2)) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.GeneralFun

Methods

primTypeRep :: TypeRep (a0 --> (a1 --> a2)) Source #

sameCon :: (a0 --> (a1 --> a2)) -> (a0 --> (a1 --> a2)) -> Bool Source #

hashConWithSalt :: Int -> (a0 --> (a1 --> a2)) -> Int Source #

pformatCon :: (a0 --> (a1 --> a2)) -> String Source #

defaultValue :: a0 --> (a1 --> a2) Source #

pevalITETerm :: Term Bool -> Term (a0 --> (a1 --> a2)) -> Term (a0 --> (a1 --> a2)) -> Term (a0 --> (a1 --> a2)) Source #

pevalEqTerm :: Term (a0 --> (a1 --> a2)) -> Term (a0 --> (a1 --> a2)) -> Term Bool Source #

pevalDistinctTerm :: NonEmpty (Term (a0 --> (a1 --> a2))) -> Term Bool Source #

conSBVTerm :: (a0 --> (a1 --> a2)) -> SBVType (a0 --> (a1 --> a2)) Source #

symSBVName :: TypedSymbol 'AnyKind (a0 --> (a1 --> a2)) -> Int -> String Source #

symSBVTerm :: SBVFreshMonad m => String -> m (SBVType (a0 --> (a1 --> a2))) Source #

withPrim :: ((PrimConstraint (a0 --> (a1 --> a2)), SMTDefinable (SBVType (a0 --> (a1 --> a2))), Mergeable (SBVType (a0 --> (a1 --> a2))), Typeable (SBVType (a0 --> (a1 --> a2)))) => a) -> a Source #

sbvIte :: SBV Bool -> SBVType (a0 --> (a1 --> a2)) -> SBVType (a0 --> (a1 --> a2)) -> SBVType (a0 --> (a1 --> a2)) Source #

sbvEq :: SBVType (a0 --> (a1 --> a2)) -> SBVType (a0 --> (a1 --> a2)) -> SBV Bool Source #

sbvDistinct :: NonEmpty (SBVType (a0 --> (a1 --> a2))) -> SBV Bool Source #

parseSMTModelResult :: Int -> ([([CV], CV)], CV) -> a0 --> (a1 --> a2) Source #

castTypedSymbol :: forall (knd' :: SymbolKind) (knd :: SymbolKind). IsSymbolKind knd' => TypedSymbol knd (a0 --> (a1 --> a2)) -> Maybe (TypedSymbol knd' (a0 --> (a1 --> a2))) Source #

funcDummyConstraint :: SBVType (a0 --> (a1 --> a2)) -> SBV Bool Source #

(SupportedNonFuncPrim a0, Eq a0, Show a0, Hashable a0, Typeable a0, SupportedNonFuncPrim a1, Eq a1, Show a1, Hashable a1, Typeable a1) => SupportedPrim (a0 --> a1) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.GeneralFun

Methods

primTypeRep :: TypeRep (a0 --> a1) Source #

sameCon :: (a0 --> a1) -> (a0 --> a1) -> Bool Source #

hashConWithSalt :: Int -> (a0 --> a1) -> Int Source #

pformatCon :: (a0 --> a1) -> String Source #

defaultValue :: a0 --> a1 Source #

pevalITETerm :: Term Bool -> Term (a0 --> a1) -> Term (a0 --> a1) -> Term (a0 --> a1) Source #

pevalEqTerm :: Term (a0 --> a1) -> Term (a0 --> a1) -> Term Bool Source #

pevalDistinctTerm :: NonEmpty (Term (a0 --> a1)) -> Term Bool Source #

conSBVTerm :: (a0 --> a1) -> SBVType (a0 --> a1) Source #

symSBVName :: TypedSymbol 'AnyKind (a0 --> a1) -> Int -> String Source #

symSBVTerm :: SBVFreshMonad m => String -> m (SBVType (a0 --> a1)) Source #

withPrim :: ((PrimConstraint (a0 --> a1), SMTDefinable (SBVType (a0 --> a1)), Mergeable (SBVType (a0 --> a1)), Typeable (SBVType (a0 --> a1))) => a) -> a Source #

sbvIte :: SBV Bool -> SBVType (a0 --> a1) -> SBVType (a0 --> a1) -> SBVType (a0 --> a1) Source #

sbvEq :: SBVType (a0 --> a1) -> SBVType (a0 --> a1) -> SBV Bool Source #

sbvDistinct :: NonEmpty (SBVType (a0 --> a1)) -> SBV Bool Source #

parseSMTModelResult :: Int -> ([([CV], CV)], CV) -> a0 --> a1 Source #

castTypedSymbol :: forall (knd' :: SymbolKind) (knd :: SymbolKind). IsSymbolKind knd' => TypedSymbol knd (a0 --> a1) -> Maybe (TypedSymbol knd' (a0 --> a1)) Source #

funcDummyConstraint :: SBVType (a0 --> a1) -> SBV Bool Source #

(SupportedNonFuncPrim a0, Eq a0, Show a0, Hashable a0, Typeable a0, SupportedNonFuncPrim a1, Eq a1, Show a1, Hashable a1, Typeable a1, SupportedNonFuncPrim a2, Eq a2, Show a2, Hashable a2, Typeable a2, SupportedNonFuncPrim a3, Eq a3, Show a3, Hashable a3, Typeable a3, SupportedNonFuncPrim a4, Eq a4, Show a4, Hashable a4, Typeable a4, SupportedNonFuncPrim a5, Eq a5, Show a5, Hashable a5, Typeable a5, SupportedNonFuncPrim a6, Eq a6, Show a6, Hashable a6, Typeable a6, SupportedNonFuncPrim a7, Eq a7, Show a7, Hashable a7, Typeable a7) => SupportedPrim (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7))))))) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.TabularFun

Methods

primTypeRep :: TypeRep (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7))))))) Source #

sameCon :: (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7))))))) -> (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7))))))) -> Bool Source #

hashConWithSalt :: Int -> (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7))))))) -> Int Source #

pformatCon :: (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7))))))) -> String Source #

defaultValue :: a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7)))))) Source #

pevalITETerm :: Term Bool -> Term (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7))))))) -> Term (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7))))))) -> Term (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7))))))) Source #

pevalEqTerm :: Term (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7))))))) -> Term (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7))))))) -> Term Bool Source #

pevalDistinctTerm :: NonEmpty (Term (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7)))))))) -> Term Bool Source #

conSBVTerm :: (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7))))))) -> SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7))))))) Source #

symSBVName :: TypedSymbol 'AnyKind (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7))))))) -> Int -> String Source #

symSBVTerm :: SBVFreshMonad m => String -> m (SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7)))))))) Source #

withPrim :: ((PrimConstraint (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7))))))), SMTDefinable (SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7)))))))), Mergeable (SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7)))))))), Typeable (SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7))))))))) => a) -> a Source #

sbvIte :: SBV Bool -> SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7))))))) -> SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7))))))) -> SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7))))))) Source #

sbvEq :: SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7))))))) -> SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7))))))) -> SBV Bool Source #

sbvDistinct :: NonEmpty (SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7)))))))) -> SBV Bool Source #

parseSMTModelResult :: Int -> ([([CV], CV)], CV) -> a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7)))))) Source #

castTypedSymbol :: forall (knd' :: SymbolKind) (knd :: SymbolKind). IsSymbolKind knd' => TypedSymbol knd (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7))))))) -> Maybe (TypedSymbol knd' (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7)))))))) Source #

funcDummyConstraint :: SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> (a6 =-> a7))))))) -> SBV Bool Source #

(SupportedNonFuncPrim a0, Eq a0, Show a0, Hashable a0, Typeable a0, SupportedNonFuncPrim a1, Eq a1, Show a1, Hashable a1, Typeable a1, SupportedNonFuncPrim a2, Eq a2, Show a2, Hashable a2, Typeable a2, SupportedNonFuncPrim a3, Eq a3, Show a3, Hashable a3, Typeable a3, SupportedNonFuncPrim a4, Eq a4, Show a4, Hashable a4, Typeable a4, SupportedNonFuncPrim a5, Eq a5, Show a5, Hashable a5, Typeable a5, SupportedNonFuncPrim a6, Eq a6, Show a6, Hashable a6, Typeable a6) => SupportedPrim (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6)))))) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.TabularFun

Methods

primTypeRep :: TypeRep (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6)))))) Source #

sameCon :: (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6)))))) -> (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6)))))) -> Bool Source #

hashConWithSalt :: Int -> (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6)))))) -> Int Source #

pformatCon :: (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6)))))) -> String Source #

defaultValue :: a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6))))) Source #

pevalITETerm :: Term Bool -> Term (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6)))))) -> Term (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6)))))) -> Term (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6)))))) Source #

pevalEqTerm :: Term (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6)))))) -> Term (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6)))))) -> Term Bool Source #

pevalDistinctTerm :: NonEmpty (Term (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6))))))) -> Term Bool Source #

conSBVTerm :: (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6)))))) -> SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6)))))) Source #

symSBVName :: TypedSymbol 'AnyKind (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6)))))) -> Int -> String Source #

symSBVTerm :: SBVFreshMonad m => String -> m (SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6))))))) Source #

withPrim :: ((PrimConstraint (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6)))))), SMTDefinable (SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6))))))), Mergeable (SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6))))))), Typeable (SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6)))))))) => a) -> a Source #

sbvIte :: SBV Bool -> SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6)))))) -> SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6)))))) -> SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6)))))) Source #

sbvEq :: SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6)))))) -> SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6)))))) -> SBV Bool Source #

sbvDistinct :: NonEmpty (SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6))))))) -> SBV Bool Source #

parseSMTModelResult :: Int -> ([([CV], CV)], CV) -> a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6))))) Source #

castTypedSymbol :: forall (knd' :: SymbolKind) (knd :: SymbolKind). IsSymbolKind knd' => TypedSymbol knd (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6)))))) -> Maybe (TypedSymbol knd' (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6))))))) Source #

funcDummyConstraint :: SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> (a5 =-> a6)))))) -> SBV Bool Source #

(SupportedNonFuncPrim a0, Eq a0, Show a0, Hashable a0, Typeable a0, SupportedNonFuncPrim a1, Eq a1, Show a1, Hashable a1, Typeable a1, SupportedNonFuncPrim a2, Eq a2, Show a2, Hashable a2, Typeable a2, SupportedNonFuncPrim a3, Eq a3, Show a3, Hashable a3, Typeable a3, SupportedNonFuncPrim a4, Eq a4, Show a4, Hashable a4, Typeable a4, SupportedNonFuncPrim a5, Eq a5, Show a5, Hashable a5, Typeable a5) => SupportedPrim (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5))))) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.TabularFun

Methods

primTypeRep :: TypeRep (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5))))) Source #

sameCon :: (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5))))) -> (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5))))) -> Bool Source #

hashConWithSalt :: Int -> (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5))))) -> Int Source #

pformatCon :: (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5))))) -> String Source #

defaultValue :: a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5)))) Source #

pevalITETerm :: Term Bool -> Term (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5))))) -> Term (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5))))) -> Term (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5))))) Source #

pevalEqTerm :: Term (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5))))) -> Term (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5))))) -> Term Bool Source #

pevalDistinctTerm :: NonEmpty (Term (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5)))))) -> Term Bool Source #

conSBVTerm :: (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5))))) -> SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5))))) Source #

symSBVName :: TypedSymbol 'AnyKind (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5))))) -> Int -> String Source #

symSBVTerm :: SBVFreshMonad m => String -> m (SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5)))))) Source #

withPrim :: ((PrimConstraint (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5))))), SMTDefinable (SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5)))))), Mergeable (SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5)))))), Typeable (SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5))))))) => a) -> a Source #

sbvIte :: SBV Bool -> SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5))))) -> SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5))))) -> SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5))))) Source #

sbvEq :: SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5))))) -> SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5))))) -> SBV Bool Source #

sbvDistinct :: NonEmpty (SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5)))))) -> SBV Bool Source #

parseSMTModelResult :: Int -> ([([CV], CV)], CV) -> a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5)))) Source #

castTypedSymbol :: forall (knd' :: SymbolKind) (knd :: SymbolKind). IsSymbolKind knd' => TypedSymbol knd (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5))))) -> Maybe (TypedSymbol knd' (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5)))))) Source #

funcDummyConstraint :: SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> (a4 =-> a5))))) -> SBV Bool Source #

(SupportedNonFuncPrim a0, Eq a0, Show a0, Hashable a0, Typeable a0, SupportedNonFuncPrim a1, Eq a1, Show a1, Hashable a1, Typeable a1, SupportedNonFuncPrim a2, Eq a2, Show a2, Hashable a2, Typeable a2, SupportedNonFuncPrim a3, Eq a3, Show a3, Hashable a3, Typeable a3, SupportedNonFuncPrim a4, Eq a4, Show a4, Hashable a4, Typeable a4) => SupportedPrim (a0 =-> (a1 =-> (a2 =-> (a3 =-> a4)))) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.TabularFun

Methods

primTypeRep :: TypeRep (a0 =-> (a1 =-> (a2 =-> (a3 =-> a4)))) Source #

sameCon :: (a0 =-> (a1 =-> (a2 =-> (a3 =-> a4)))) -> (a0 =-> (a1 =-> (a2 =-> (a3 =-> a4)))) -> Bool Source #

hashConWithSalt :: Int -> (a0 =-> (a1 =-> (a2 =-> (a3 =-> a4)))) -> Int Source #

pformatCon :: (a0 =-> (a1 =-> (a2 =-> (a3 =-> a4)))) -> String Source #

defaultValue :: a0 =-> (a1 =-> (a2 =-> (a3 =-> a4))) Source #

pevalITETerm :: Term Bool -> Term (a0 =-> (a1 =-> (a2 =-> (a3 =-> a4)))) -> Term (a0 =-> (a1 =-> (a2 =-> (a3 =-> a4)))) -> Term (a0 =-> (a1 =-> (a2 =-> (a3 =-> a4)))) Source #

pevalEqTerm :: Term (a0 =-> (a1 =-> (a2 =-> (a3 =-> a4)))) -> Term (a0 =-> (a1 =-> (a2 =-> (a3 =-> a4)))) -> Term Bool Source #

pevalDistinctTerm :: NonEmpty (Term (a0 =-> (a1 =-> (a2 =-> (a3 =-> a4))))) -> Term Bool Source #

conSBVTerm :: (a0 =-> (a1 =-> (a2 =-> (a3 =-> a4)))) -> SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> a4)))) Source #

symSBVName :: TypedSymbol 'AnyKind (a0 =-> (a1 =-> (a2 =-> (a3 =-> a4)))) -> Int -> String Source #

symSBVTerm :: SBVFreshMonad m => String -> m (SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> a4))))) Source #

withPrim :: ((PrimConstraint (a0 =-> (a1 =-> (a2 =-> (a3 =-> a4)))), SMTDefinable (SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> a4))))), Mergeable (SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> a4))))), Typeable (SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> a4)))))) => a) -> a Source #

sbvIte :: SBV Bool -> SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> a4)))) -> SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> a4)))) -> SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> a4)))) Source #

sbvEq :: SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> a4)))) -> SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> a4)))) -> SBV Bool Source #

sbvDistinct :: NonEmpty (SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> a4))))) -> SBV Bool Source #

parseSMTModelResult :: Int -> ([([CV], CV)], CV) -> a0 =-> (a1 =-> (a2 =-> (a3 =-> a4))) Source #

castTypedSymbol :: forall (knd' :: SymbolKind) (knd :: SymbolKind). IsSymbolKind knd' => TypedSymbol knd (a0 =-> (a1 =-> (a2 =-> (a3 =-> a4)))) -> Maybe (TypedSymbol knd' (a0 =-> (a1 =-> (a2 =-> (a3 =-> a4))))) Source #

funcDummyConstraint :: SBVType (a0 =-> (a1 =-> (a2 =-> (a3 =-> a4)))) -> SBV Bool Source #

(SupportedNonFuncPrim a0, Eq a0, Show a0, Hashable a0, Typeable a0, SupportedNonFuncPrim a1, Eq a1, Show a1, Hashable a1, Typeable a1, SupportedNonFuncPrim a2, Eq a2, Show a2, Hashable a2, Typeable a2, SupportedNonFuncPrim a3, Eq a3, Show a3, Hashable a3, Typeable a3) => SupportedPrim (a0 =-> (a1 =-> (a2 =-> a3))) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.TabularFun

Methods

primTypeRep :: TypeRep (a0 =-> (a1 =-> (a2 =-> a3))) Source #

sameCon :: (a0 =-> (a1 =-> (a2 =-> a3))) -> (a0 =-> (a1 =-> (a2 =-> a3))) -> Bool Source #

hashConWithSalt :: Int -> (a0 =-> (a1 =-> (a2 =-> a3))) -> Int Source #

pformatCon :: (a0 =-> (a1 =-> (a2 =-> a3))) -> String Source #

defaultValue :: a0 =-> (a1 =-> (a2 =-> a3)) Source #

pevalITETerm :: Term Bool -> Term (a0 =-> (a1 =-> (a2 =-> a3))) -> Term (a0 =-> (a1 =-> (a2 =-> a3))) -> Term (a0 =-> (a1 =-> (a2 =-> a3))) Source #

pevalEqTerm :: Term (a0 =-> (a1 =-> (a2 =-> a3))) -> Term (a0 =-> (a1 =-> (a2 =-> a3))) -> Term Bool Source #

pevalDistinctTerm :: NonEmpty (Term (a0 =-> (a1 =-> (a2 =-> a3)))) -> Term Bool Source #

conSBVTerm :: (a0 =-> (a1 =-> (a2 =-> a3))) -> SBVType (a0 =-> (a1 =-> (a2 =-> a3))) Source #

symSBVName :: TypedSymbol 'AnyKind (a0 =-> (a1 =-> (a2 =-> a3))) -> Int -> String Source #

symSBVTerm :: SBVFreshMonad m => String -> m (SBVType (a0 =-> (a1 =-> (a2 =-> a3)))) Source #

withPrim :: ((PrimConstraint (a0 =-> (a1 =-> (a2 =-> a3))), SMTDefinable (SBVType (a0 =-> (a1 =-> (a2 =-> a3)))), Mergeable (SBVType (a0 =-> (a1 =-> (a2 =-> a3)))), Typeable (SBVType (a0 =-> (a1 =-> (a2 =-> a3))))) => a) -> a Source #

sbvIte :: SBV Bool -> SBVType (a0 =-> (a1 =-> (a2 =-> a3))) -> SBVType (a0 =-> (a1 =-> (a2 =-> a3))) -> SBVType (a0 =-> (a1 =-> (a2 =-> a3))) Source #

sbvEq :: SBVType (a0 =-> (a1 =-> (a2 =-> a3))) -> SBVType (a0 =-> (a1 =-> (a2 =-> a3))) -> SBV Bool Source #

sbvDistinct :: NonEmpty (SBVType (a0 =-> (a1 =-> (a2 =-> a3)))) -> SBV Bool Source #

parseSMTModelResult :: Int -> ([([CV], CV)], CV) -> a0 =-> (a1 =-> (a2 =-> a3)) Source #

castTypedSymbol :: forall (knd' :: SymbolKind) (knd :: SymbolKind). IsSymbolKind knd' => TypedSymbol knd (a0 =-> (a1 =-> (a2 =-> a3))) -> Maybe (TypedSymbol knd' (a0 =-> (a1 =-> (a2 =-> a3)))) Source #

funcDummyConstraint :: SBVType (a0 =-> (a1 =-> (a2 =-> a3))) -> SBV Bool Source #

(SupportedNonFuncPrim a0, Eq a0, Show a0, Hashable a0, Typeable a0, SupportedNonFuncPrim a1, Eq a1, Show a1, Hashable a1, Typeable a1, SupportedNonFuncPrim a2, Eq a2, Show a2, Hashable a2, Typeable a2) => SupportedPrim (a0 =-> (a1 =-> a2)) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.TabularFun

Methods

primTypeRep :: TypeRep (a0 =-> (a1 =-> a2)) Source #

sameCon :: (a0 =-> (a1 =-> a2)) -> (a0 =-> (a1 =-> a2)) -> Bool Source #

hashConWithSalt :: Int -> (a0 =-> (a1 =-> a2)) -> Int Source #

pformatCon :: (a0 =-> (a1 =-> a2)) -> String Source #

defaultValue :: a0 =-> (a1 =-> a2) Source #

pevalITETerm :: Term Bool -> Term (a0 =-> (a1 =-> a2)) -> Term (a0 =-> (a1 =-> a2)) -> Term (a0 =-> (a1 =-> a2)) Source #

pevalEqTerm :: Term (a0 =-> (a1 =-> a2)) -> Term (a0 =-> (a1 =-> a2)) -> Term Bool Source #

pevalDistinctTerm :: NonEmpty (Term (a0 =-> (a1 =-> a2))) -> Term Bool Source #

conSBVTerm :: (a0 =-> (a1 =-> a2)) -> SBVType (a0 =-> (a1 =-> a2)) Source #

symSBVName :: TypedSymbol 'AnyKind (a0 =-> (a1 =-> a2)) -> Int -> String Source #

symSBVTerm :: SBVFreshMonad m => String -> m (SBVType (a0 =-> (a1 =-> a2))) Source #

withPrim :: ((PrimConstraint (a0 =-> (a1 =-> a2)), SMTDefinable (SBVType (a0 =-> (a1 =-> a2))), Mergeable (SBVType (a0 =-> (a1 =-> a2))), Typeable (SBVType (a0 =-> (a1 =-> a2)))) => a) -> a Source #

sbvIte :: SBV Bool -> SBVType (a0 =-> (a1 =-> a2)) -> SBVType (a0 =-> (a1 =-> a2)) -> SBVType (a0 =-> (a1 =-> a2)) Source #

sbvEq :: SBVType (a0 =-> (a1 =-> a2)) -> SBVType (a0 =-> (a1 =-> a2)) -> SBV Bool Source #

sbvDistinct :: NonEmpty (SBVType (a0 =-> (a1 =-> a2))) -> SBV Bool Source #

parseSMTModelResult :: Int -> ([([CV], CV)], CV) -> a0 =-> (a1 =-> a2) Source #

castTypedSymbol :: forall (knd' :: SymbolKind) (knd :: SymbolKind). IsSymbolKind knd' => TypedSymbol knd (a0 =-> (a1 =-> a2)) -> Maybe (TypedSymbol knd' (a0 =-> (a1 =-> a2))) Source #

funcDummyConstraint :: SBVType (a0 =-> (a1 =-> a2)) -> SBV Bool Source #

(SupportedNonFuncPrim a0, Eq a0, Show a0, Hashable a0, Typeable a0, SupportedNonFuncPrim a1, Eq a1, Show a1, Hashable a1, Typeable a1) => SupportedPrim (a0 =-> a1) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.TabularFun

Methods

primTypeRep :: TypeRep (a0 =-> a1) Source #

sameCon :: (a0 =-> a1) -> (a0 =-> a1) -> Bool Source #

hashConWithSalt :: Int -> (a0 =-> a1) -> Int Source #

pformatCon :: (a0 =-> a1) -> String Source #

defaultValue :: a0 =-> a1 Source #

pevalITETerm :: Term Bool -> Term (a0 =-> a1) -> Term (a0 =-> a1) -> Term (a0 =-> a1) Source #

pevalEqTerm :: Term (a0 =-> a1) -> Term (a0 =-> a1) -> Term Bool Source #

pevalDistinctTerm :: NonEmpty (Term (a0 =-> a1)) -> Term Bool Source #

conSBVTerm :: (a0 =-> a1) -> SBVType (a0 =-> a1) Source #

symSBVName :: TypedSymbol 'AnyKind (a0 =-> a1) -> Int -> String Source #

symSBVTerm :: SBVFreshMonad m => String -> m (SBVType (a0 =-> a1)) Source #

withPrim :: ((PrimConstraint (a0 =-> a1), SMTDefinable (SBVType (a0 =-> a1)), Mergeable (SBVType (a0 =-> a1)), Typeable (SBVType (a0 =-> a1))) => a) -> a Source #

sbvIte :: SBV Bool -> SBVType (a0 =-> a1) -> SBVType (a0 =-> a1) -> SBVType (a0 =-> a1) Source #

sbvEq :: SBVType (a0 =-> a1) -> SBVType (a0 =-> a1) -> SBV Bool Source #

sbvDistinct :: NonEmpty (SBVType (a0 =-> a1)) -> SBV Bool Source #

parseSMTModelResult :: Int -> ([([CV], CV)], CV) -> a0 =-> a1 Source #

castTypedSymbol :: forall (knd' :: SymbolKind) (knd :: SymbolKind). IsSymbolKind knd' => TypedSymbol knd (a0 =-> a1) -> Maybe (TypedSymbol knd' (a0 =-> a1)) Source #

funcDummyConstraint :: SBVType (a0 =-> a1) -> SBV Bool Source #

withSupportedPrimTypeable :: forall a b. SupportedPrim a => (Typeable a => b) -> b Source #

Introduce the Typeable constraint from SupportedPrim.

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

Defined in Grisette.Internal.SymPrim.SymAlgReal

Associated Types

type SymType AlgReal Source #

SymRep FPRoundingMode Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymFP

Associated Types

type SymType FPRoundingMode Source #

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 #

ValidFP eb sb => SymRep (FP eb sb) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymFP

Associated Types

type SymType (FP eb sb) 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 SymAlgReal Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymAlgReal

Associated Types

type ConType SymAlgReal Source #

ConRep SymBool Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBool

Associated Types

type ConType SymBool Source #

ConRep SymFPRoundingMode Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymFP

Associated Types

type ConType SymFPRoundingMode 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 (SymFP eb sb) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymFP

Associated Types

type ConType (SymFP eb sb) 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 where Source #

One-to-one mapping between symbolic types and concrete types.

Methods

underlyingTerm :: sym -> Term con Source #

wrapTerm :: Term con -> sym Source #

Instances

Instances details
LinkedRep AlgReal SymAlgReal Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymAlgReal

LinkedRep FPRoundingMode SymFPRoundingMode Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymFP

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

ValidFP eb sb => LinkedRep (FP eb sb) (SymFP eb sb) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymFP

Methods

underlyingTerm :: SymFP eb sb -> Term (FP eb sb) Source #

wrapTerm :: Term (FP eb sb) -> SymFP eb sb Source #

(LinkedRep ca sa, LinkedRep cb sb, SupportedPrim cb, SupportedPrim (ca --> cb), SupportedNonFuncPrim ca) => LinkedRep (ca --> cb) (sa -~> sb) Source # 
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), SupportedNonFuncPrim ca) => 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 #

Partial evaluation for the terms

class PEvalApplyTerm f a b | f -> a b where Source #

Partial evaluation and lowering for function application terms.

Instances

Instances details
(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 :: SBVType (a --> b) -> SBVType a -> SBVType b Source #

(SupportedPrim a, SupportedPrim b, Eq a, 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 :: SBVType (a =-> b) -> SBVType a -> SBVType b Source #

class PEvalBitwiseTerm t where Source #

Partial evaluation and lowering for bitwise operation terms.

Instances

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

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

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

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

class PEvalShiftTerm t where Source #

Partial evaluation and lowering for symbolic shifting terms.

class PEvalRotateTerm t where Source #

Partial evaluation and lowering for symbolic rotate terms.

class Num t => PEvalNumTerm t where Source #

Partial evaluation and lowering for number terms.

Instances

Instances details
PEvalNumTerm AlgReal Source # 
Instance details

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

PEvalNumTerm Integer Source # 
Instance details

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

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

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

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

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

ValidFP eb sb => PEvalNumTerm (FP eb sb) Source # 
Instance details

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

Methods

pevalAddNumTerm :: Term (FP eb sb) -> Term (FP eb sb) -> Term (FP eb sb) Source #

pevalNegNumTerm :: Term (FP eb sb) -> Term (FP eb sb) Source #

pevalMulNumTerm :: Term (FP eb sb) -> Term (FP eb sb) -> Term (FP eb sb) Source #

pevalAbsNumTerm :: Term (FP eb sb) -> Term (FP eb sb) Source #

pevalSignumNumTerm :: Term (FP eb sb) -> Term (FP eb sb) Source #

withSbvNumTermConstraint :: (Num (SBVType (FP eb sb)) => r) -> r Source #

sbvAddNumTerm :: SBVType (FP eb sb) -> SBVType (FP eb sb) -> SBVType (FP eb sb) Source #

sbvNegNumTerm :: SBVType (FP eb sb) -> SBVType (FP eb sb) Source #

sbvMulNumTerm :: SBVType (FP eb sb) -> SBVType (FP eb sb) -> SBVType (FP eb sb) Source #

sbvAbsNumTerm :: SBVType (FP eb sb) -> SBVType (FP eb sb) Source #

sbvSignumNumTerm :: SBVType (FP eb sb) -> SBVType (FP eb sb) Source #

pevalSubNumTerm :: PEvalNumTerm a => Term a -> Term a -> Term a Source #

Partial evaluation for subtraction terms.

class PEvalOrdTerm t where Source #

Partial evaluation and lowering for comparison terms.

Instances

Instances details
PEvalOrdTerm AlgReal Source # 
Instance details

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

PEvalOrdTerm FPRoundingMode Source # 
Instance details

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

PEvalOrdTerm Integer Source # 
Instance details

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

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

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

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

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

ValidFP eb sb => PEvalOrdTerm (FP eb sb) Source # 
Instance details

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

Methods

pevalLtOrdTerm :: Term (FP eb sb) -> Term (FP eb sb) -> Term Bool Source #

pevalLeOrdTerm :: Term (FP eb sb) -> Term (FP eb sb) -> Term Bool Source #

withSbvOrdTermConstraint :: (OrdSymbolic (SBVType (FP eb sb)) => r) -> r Source #

sbvLtOrdTerm :: SBVType (FP eb sb) -> SBVType (FP eb sb) -> SBV Bool Source #

sbvLeOrdTerm :: SBVType (FP eb sb) -> SBVType (FP eb sb) -> SBV Bool Source #

pevalGtOrdTerm :: PEvalOrdTerm a => Term a -> Term a -> Term Bool Source #

Partial evaluation for greater than terms.

pevalGeOrdTerm :: PEvalOrdTerm a => Term a -> Term a -> Term Bool Source #

Partial evaluation for greater than or equal to terms.

pevalNEqTerm :: SupportedPrim a => Term a -> Term a -> Term Bool Source #

Partial evaluation for inequality terms.

class PEvalDivModIntegralTerm t where Source #

Partial evaluation and lowering for integer division and modulo terms.

Instances

Instances details
PEvalDivModIntegralTerm Integer Source # 
Instance details

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

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

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

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

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

class BitCast a b => PEvalBitCastTerm a b where Source #

Partial evaluation and lowering for bitcast terms.

Instances

Instances details
PEvalBitCastTerm Bool (IntN 1) Source # 
Instance details

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

PEvalBitCastTerm Bool (WordN 1) Source # 
Instance details

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

PEvalBitCastTerm (IntN 1) Bool Source # 
Instance details

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

PEvalBitCastTerm (WordN 1) Bool Source # 
Instance details

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

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

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

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

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

(n ~ (eb + sb), ValidFP eb sb, KnownNat n, 1 <= n) => PEvalBitCastTerm (IntN n) (FP eb sb) Source # 
Instance details

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

Methods

pevalBitCastTerm :: Term (IntN n) -> Term (FP eb sb) Source #

sbvBitCast :: SBVType (IntN n) -> SBVType (FP eb sb) Source #

(n ~ (eb + sb), ValidFP eb sb, KnownNat n, 1 <= n) => PEvalBitCastTerm (WordN n) (FP eb sb) Source # 
Instance details

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

Methods

pevalBitCastTerm :: Term (WordN n) -> Term (FP eb sb) Source #

sbvBitCast :: SBVType (WordN n) -> SBVType (FP eb sb) Source #

class BitCastOr a b => PEvalBitCastOrTerm a b where Source #

Partial evaluation and lowering for bitcast or default value terms.

Instances

Instances details
(n ~ (eb + sb), ValidFP eb sb, KnownNat n, 1 <= n) => PEvalBitCastOrTerm (FP eb sb) (IntN n) Source # 
Instance details

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

Methods

pevalBitCastOrTerm :: Term (IntN n) -> Term (FP eb sb) -> Term (IntN n) Source #

sbvBitCastOr :: SBVType (IntN n) -> SBVType (FP eb sb) -> SBVType (IntN n) Source #

(n ~ (eb + sb), ValidFP eb sb, KnownNat n, 1 <= n) => PEvalBitCastOrTerm (FP eb sb) (WordN n) Source # 
Instance details

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

Methods

pevalBitCastOrTerm :: Term (WordN n) -> Term (FP eb sb) -> Term (WordN n) Source #

sbvBitCastOr :: SBVType (WordN n) -> SBVType (FP eb sb) -> SBVType (WordN n) Source #

class SizedBV bv => PEvalBVTerm bv where Source #

Partial evaluation and lowering for bit-vector terms.

Methods

pevalBVConcatTerm :: (KnownNat l, KnownNat r, 1 <= l, 1 <= r) => Term (bv l) -> Term (bv r) -> Term (bv (l + r)) Source #

pevalBVExtendTerm :: (KnownNat l, KnownNat r, 1 <= l, 1 <= r, l <= r) => Bool -> proxy r -> Term (bv l) -> Term (bv r) Source #

pevalBVSelectTerm :: (KnownNat n, KnownNat ix, KnownNat w, 1 <= n, 1 <= w, (ix + w) <= n) => p ix -> q w -> Term (bv n) -> Term (bv w) Source #

sbvBVConcatTerm :: (KnownNat l, KnownNat r, 1 <= l, 1 <= r) => p1 l -> p2 r -> SBVType (bv l) -> SBVType (bv r) -> SBVType (bv (l + r)) Source #

sbvBVExtendTerm :: (KnownNat l, KnownNat r, 1 <= l, 1 <= r, l <= r) => p1 l -> p2 r -> Bool -> SBVType (bv l) -> SBVType (bv r) Source #

sbvBVSelectTerm :: (KnownNat ix, KnownNat w, KnownNat n, 1 <= n, 1 <= w, (ix + w) <= n) => p1 ix -> p2 w -> p3 n -> SBVType (bv n) -> SBVType (bv w) Source #

Instances

Instances details
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 (l :: Nat) (r :: Nat) p1 p2. (KnownNat l, KnownNat r, 1 <= l, 1 <= r) => p1 l -> p2 r -> SBVType (IntN l) -> SBVType (IntN r) -> SBVType (IntN (l + r)) Source #

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

sbvBVSelectTerm :: forall (ix :: Nat) (w :: Nat) (n :: Nat) p1 p2 p3. (KnownNat ix, KnownNat w, KnownNat n, 1 <= n, 1 <= w, (ix + w) <= n) => p1 ix -> p2 w -> p3 n -> SBVType (IntN n) -> SBVType (IntN w) 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 (l :: Nat) (r :: Nat) p1 p2. (KnownNat l, KnownNat r, 1 <= l, 1 <= r) => p1 l -> p2 r -> SBVType (WordN l) -> SBVType (WordN r) -> SBVType (WordN (l + r)) Source #

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

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

class Fractional t => PEvalFractionalTerm t where Source #

Partial evaluation and lowering for fractional terms.

class PEvalFloatingTerm t where Source #

Partial evaluation and lowering for floating point terms.

class (Integral a, Num b) => PEvalFromIntegralTerm a b where Source #

Partial evaluation and lowering for integral terms.

Instances

Instances details
PEvalFromIntegralTerm Integer AlgReal Source # 
Instance details

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

PEvalFromIntegralTerm Integer Integer Source # 
Instance details

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

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

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

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

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

ValidFP eb sb => PEvalFromIntegralTerm Integer (FP eb sb) Source # 
Instance details

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

(KnownNat n, 1 <= n, ValidFP eb sb) => PEvalFromIntegralTerm (IntN n) (FP eb sb) Source # 
Instance details

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

(KnownNat n, 1 <= n, ValidFP eb sb) => PEvalFromIntegralTerm (WordN n) (FP eb sb) Source # 
Instance details

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

class PEvalIEEEFPConvertibleTerm a where Source #

Partial evaluation and lowering for converting from and to IEEE floating point terms.

Instances

Instances details
PEvalIEEEFPConvertibleTerm AlgReal Source # 
Instance details

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

Methods

pevalFromFPOrTerm :: forall (eb :: Nat) (sb :: Nat). ValidFP eb sb => Term AlgReal -> Term FPRoundingMode -> Term (FP eb sb) -> Term AlgReal Source #

pevalToFPTerm :: forall (eb :: Nat) (sb :: Nat). ValidFP eb sb => Term FPRoundingMode -> Term AlgReal -> Term (FP eb sb) Source #

sbvFromFPOrTerm :: forall (eb :: Nat) (sb :: Nat). ValidFP eb sb => SBVType AlgReal -> SBVType FPRoundingMode -> SBVType (FP eb sb) -> SBVType AlgReal Source #

sbvToFPTerm :: forall (eb :: Nat) (sb :: Nat). ValidFP eb sb => SBVType FPRoundingMode -> SBVType AlgReal -> SBVType (FP eb sb) Source #

PEvalIEEEFPConvertibleTerm Integer Source # 
Instance details

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

Methods

pevalFromFPOrTerm :: forall (eb :: Nat) (sb :: Nat). ValidFP eb sb => Term Integer -> Term FPRoundingMode -> Term (FP eb sb) -> Term Integer Source #

pevalToFPTerm :: forall (eb :: Nat) (sb :: Nat). ValidFP eb sb => Term FPRoundingMode -> Term Integer -> Term (FP eb sb) Source #

sbvFromFPOrTerm :: forall (eb :: Nat) (sb :: Nat). ValidFP eb sb => SBVType Integer -> SBVType FPRoundingMode -> SBVType (FP eb sb) -> SBVType Integer Source #

sbvToFPTerm :: forall (eb :: Nat) (sb :: Nat). ValidFP eb sb => SBVType FPRoundingMode -> SBVType Integer -> SBVType (FP eb sb) Source #

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

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

Methods

pevalFromFPOrTerm :: forall (eb :: Nat) (sb :: Nat). ValidFP eb sb => Term (IntN n) -> Term FPRoundingMode -> Term (FP eb sb) -> Term (IntN n) Source #

pevalToFPTerm :: forall (eb :: Nat) (sb :: Nat). ValidFP eb sb => Term FPRoundingMode -> Term (IntN n) -> Term (FP eb sb) Source #

sbvFromFPOrTerm :: forall (eb :: Nat) (sb :: Nat). ValidFP eb sb => SBVType (IntN n) -> SBVType FPRoundingMode -> SBVType (FP eb sb) -> SBVType (IntN n) Source #

sbvToFPTerm :: forall (eb :: Nat) (sb :: Nat). ValidFP eb sb => SBVType FPRoundingMode -> SBVType (IntN n) -> SBVType (FP eb sb) Source #

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

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

Methods

pevalFromFPOrTerm :: forall (eb :: Nat) (sb :: Nat). ValidFP eb sb => Term (WordN n) -> Term FPRoundingMode -> Term (FP eb sb) -> Term (WordN n) Source #

pevalToFPTerm :: forall (eb :: Nat) (sb :: Nat). ValidFP eb sb => Term FPRoundingMode -> Term (WordN n) -> Term (FP eb sb) Source #

sbvFromFPOrTerm :: forall (eb :: Nat) (sb :: Nat). ValidFP eb sb => SBVType (WordN n) -> SBVType FPRoundingMode -> SBVType (FP eb sb) -> SBVType (WordN n) Source #

sbvToFPTerm :: forall (eb :: Nat) (sb :: Nat). ValidFP eb sb => SBVType FPRoundingMode -> SBVType (WordN n) -> SBVType (FP eb sb) Source #

ValidFP eb sb => PEvalIEEEFPConvertibleTerm (FP eb sb) Source # 
Instance details

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

Methods

pevalFromFPOrTerm :: forall (eb0 :: Nat) (sb0 :: Nat). ValidFP eb0 sb0 => Term (FP eb sb) -> Term FPRoundingMode -> Term (FP eb0 sb0) -> Term (FP eb sb) Source #

pevalToFPTerm :: forall (eb0 :: Nat) (sb0 :: Nat). ValidFP eb0 sb0 => Term FPRoundingMode -> Term (FP eb sb) -> Term (FP eb0 sb0) Source #

sbvFromFPOrTerm :: forall (eb0 :: Nat) (sb0 :: Nat). ValidFP eb0 sb0 => SBVType (FP eb sb) -> SBVType FPRoundingMode -> SBVType (FP eb0 sb0) -> SBVType (FP eb sb) Source #

sbvToFPTerm :: forall (eb0 :: Nat) (sb0 :: Nat). ValidFP eb0 sb0 => SBVType FPRoundingMode -> SBVType (FP eb sb) -> SBVType (FP eb0 sb0) Source #

Typed symbols

data SymbolKind Source #

The kind of a symbol.

All symbols are AnyKind, and all symbols other than general/tabular functions are ConstantKind.

Constructors

ConstantKind 
AnyKind 

data TypedSymbol (knd :: SymbolKind) t where Source #

A typed symbol is a symbol that is associated with a type. Note that the same symbol bodies with different types are considered different symbols and can coexist in a term.

Simple symbols can be created with the OverloadedStrings extension:

>>> "a" :: TypedSymbol 'AnyKind Bool
a :: Bool

Constructors

TypedSymbol 

Fields

Instances

Instances details
ModelOps Model AnySymbolSet TypedAnySymbol Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Model

Lift (TypedSymbol knd t :: Type) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Methods

lift :: Quote m => TypedSymbol knd t -> m Exp #

liftTyped :: forall (m :: Type -> Type). Quote m => TypedSymbol knd t -> Code m (TypedSymbol knd t) #

SymbolSetOps (SymbolSet knd) (TypedSymbol knd) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Model

SymbolSetRep (SomeTypedSymbol knd) (SymbolSet knd) (TypedSymbol knd) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Model

SymbolSetRep [SomeTypedSymbol knd] (SymbolSet knd) (TypedSymbol knd) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Model

SymbolSetRep [TypedSymbol knd t] (SymbolSet knd) (TypedSymbol knd) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Model

Methods

buildSymbolSet :: [TypedSymbol knd t] -> SymbolSet knd Source #

(SupportedPrim t, SymbolKindConstraint knd t, IsSymbolKind knd) => IsString (TypedSymbol knd t) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Methods

fromString :: String -> TypedSymbol knd t #

Show (TypedSymbol knd t) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Methods

showsPrec :: Int -> TypedSymbol knd t -> ShowS #

show :: TypedSymbol knd t -> String #

showList :: [TypedSymbol knd t] -> ShowS #

(IsSymbolKind knd, Typeable a) => Binary (TypedSymbol knd a) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Serialize

Methods

put :: TypedSymbol knd a -> Put #

get :: Get (TypedSymbol knd a) #

putList :: [TypedSymbol knd a] -> Put #

(IsSymbolKind knd, Typeable a) => Serial (TypedSymbol knd a) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Serialize

Methods

serialize :: MonadPut m => TypedSymbol knd a -> m () #

deserialize :: MonadGet m => m (TypedSymbol knd a) #

(IsSymbolKind knd, Typeable a) => Serialize (TypedSymbol knd a) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Serialize

Methods

put :: Putter (TypedSymbol knd a) #

get :: Get (TypedSymbol knd a) #

NFData (TypedSymbol knd t) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Methods

rnf :: TypedSymbol knd t -> () #

Eq (TypedSymbol knd t) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Methods

(==) :: TypedSymbol knd t -> TypedSymbol knd t -> Bool #

(/=) :: TypedSymbol knd t -> TypedSymbol knd t -> Bool #

Ord (TypedSymbol knd t) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Methods

compare :: TypedSymbol knd t -> TypedSymbol knd t -> Ordering #

(<) :: TypedSymbol knd t -> TypedSymbol knd t -> Bool #

(<=) :: TypedSymbol knd t -> TypedSymbol knd t -> Bool #

(>) :: TypedSymbol knd t -> TypedSymbol knd t -> Bool #

(>=) :: TypedSymbol knd t -> TypedSymbol knd t -> Bool #

max :: TypedSymbol knd t -> TypedSymbol knd t -> TypedSymbol knd t #

min :: TypedSymbol knd t -> TypedSymbol knd t -> TypedSymbol knd t #

PPrint (TypedSymbol knd t) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Methods

pformat :: TypedSymbol knd t -> Doc ann Source #

pformatPrec :: Int -> TypedSymbol knd t -> Doc ann Source #

pformatList :: [TypedSymbol knd t] -> Doc ann Source #

Hashable (TypedSymbol knd t) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Methods

hashWithSalt :: Int -> TypedSymbol knd t -> Int #

hash :: TypedSymbol knd t -> Int #

SymbolSetRep (TypedSymbol knd t) (SymbolSet knd) (TypedSymbol knd) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Model

SymbolSetRep (TypedSymbol knd a, TypedSymbol knd b) (SymbolSet knd) (TypedSymbol knd) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Model

Methods

buildSymbolSet :: (TypedSymbol knd a, TypedSymbol knd b) -> SymbolSet knd Source #

SymbolSetRep (TypedSymbol knd a, TypedSymbol knd b, TypedSymbol knd c) (SymbolSet knd) (TypedSymbol knd) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Model

Methods

buildSymbolSet :: (TypedSymbol knd a, TypedSymbol knd b, TypedSymbol knd c) -> SymbolSet knd Source #

SymbolSetRep (TypedSymbol knd a, TypedSymbol knd b, TypedSymbol knd c, TypedSymbol knd d) (SymbolSet knd) (TypedSymbol knd) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Model

Methods

buildSymbolSet :: (TypedSymbol knd a, TypedSymbol knd b, TypedSymbol knd c, TypedSymbol knd d) -> SymbolSet knd Source #

SymbolSetRep (TypedSymbol knd a, TypedSymbol knd b, TypedSymbol knd c, TypedSymbol knd d, TypedSymbol knd e) (SymbolSet knd) (TypedSymbol knd) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Model

Methods

buildSymbolSet :: (TypedSymbol knd a, TypedSymbol knd b, TypedSymbol knd c, TypedSymbol knd d, TypedSymbol knd e) -> SymbolSet knd Source #

SymbolSetRep (TypedSymbol knd a, TypedSymbol knd b, TypedSymbol knd c, TypedSymbol knd d, TypedSymbol knd e, TypedSymbol knd f) (SymbolSet knd) (TypedSymbol knd) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Model

Methods

buildSymbolSet :: (TypedSymbol knd a, TypedSymbol knd b, TypedSymbol knd c, TypedSymbol knd d, TypedSymbol knd e, TypedSymbol knd f) -> SymbolSet knd Source #

SymbolSetRep (TypedSymbol knd a, TypedSymbol knd b, TypedSymbol knd c, TypedSymbol knd d, TypedSymbol knd e, TypedSymbol knd f, TypedSymbol knd g) (SymbolSet knd) (TypedSymbol knd) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Model

Methods

buildSymbolSet :: (TypedSymbol knd a, TypedSymbol knd b, TypedSymbol knd c, TypedSymbol knd d, TypedSymbol knd e, TypedSymbol knd f, TypedSymbol knd g) -> SymbolSet knd Source #

SymbolSetRep (TypedSymbol knd a, TypedSymbol knd b, TypedSymbol knd c, TypedSymbol knd d, TypedSymbol knd e, TypedSymbol knd f, TypedSymbol knd g, TypedSymbol knd h) (SymbolSet knd) (TypedSymbol knd) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Model

Methods

buildSymbolSet :: (TypedSymbol knd a, TypedSymbol knd b, TypedSymbol knd c, TypedSymbol knd d, TypedSymbol knd e, TypedSymbol knd f, TypedSymbol knd g, TypedSymbol knd h) -> SymbolSet knd Source #

typedConstantSymbol :: forall t. SupportedNonFuncPrim t => Symbol -> TypedSymbol 'ConstantKind t Source #

Create a typed symbol with constant kinds.

typedAnySymbol :: forall t. SupportedPrim t => Symbol -> TypedSymbol 'AnyKind t Source #

Create a typed symbol with any kinds.

data SomeTypedSymbol knd where Source #

A non-indexed symbol. Type information are checked at runtime.

Constructors

SomeTypedSymbol :: forall knd t. TypedSymbol knd t -> SomeTypedSymbol knd 

Instances

Instances details
Lift (SomeTypedSymbol knd :: Type) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Methods

lift :: Quote m => SomeTypedSymbol knd -> m Exp #

liftTyped :: forall (m :: Type -> Type). Quote m => SomeTypedSymbol knd -> Code m (SomeTypedSymbol knd) #

Show (SomeTypedSymbol knd) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

IsSymbolKind knd => Binary (SomeTypedSymbol knd) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Serialize

Methods

put :: SomeTypedSymbol knd -> Put #

get :: Get (SomeTypedSymbol knd) #

putList :: [SomeTypedSymbol knd] -> Put #

IsSymbolKind knd => Serial (SomeTypedSymbol knd) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Serialize

Methods

serialize :: MonadPut m => SomeTypedSymbol knd -> m () #

deserialize :: MonadGet m => m (SomeTypedSymbol knd) #

IsSymbolKind knd => Serialize (SomeTypedSymbol knd) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Serialize

NFData (SomeTypedSymbol knd) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Methods

rnf :: SomeTypedSymbol knd -> () #

Eq (SomeTypedSymbol knd) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Ord (SomeTypedSymbol knd) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

PPrint (SomeTypedSymbol knd) Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Hashable (SomeTypedSymbol knd) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

SymbolSetRep (SomeTypedSymbol knd) (SymbolSet knd) (TypedSymbol knd) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Model

SymbolSetRep [SomeTypedSymbol knd] (SymbolSet knd) (TypedSymbol knd) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Model

type SomeTypedConstantSymbol = SomeTypedSymbol 'ConstantKind Source #

Non-indexed constant symbol

type SomeTypedAnySymbol = SomeTypedSymbol 'AnyKind Source #

Non-indexed any symbol

showUntyped :: TypedSymbol knd t -> String Source #

Show a typed symbol without the type information.

withSymbolSupported :: forall knd t a. TypedSymbol knd t -> ((SupportedPrim t, Typeable t) => a) -> a Source #

Introduce the SupportedPrim constraint from the TypedSymbol.

withConstantSymbolSupported :: forall t a. TypedSymbol 'ConstantKind t -> ((SupportedNonFuncPrim t, Typeable t) => a) -> a Source #

Introduce the SupportedPrim constraint from the TypedSymbol.

someTypedSymbol :: forall knd t. TypedSymbol knd t -> SomeTypedSymbol knd Source #

Construct a SomeTypedSymbol from a TypedSymbol.

eqHeteroSymbol :: forall ta a tb b. TypedSymbol ta a -> TypedSymbol tb b -> Bool Source #

Compare two TypedSymbols for equality.

castSomeTypedSymbol :: IsSymbolKind knd' => SomeTypedSymbol knd -> Maybe (SomeTypedSymbol knd') Source #

Cast a typed symbol to a different kind. Check if the kind is compatible.

withSymbolKind :: TypedSymbol knd t -> (IsSymbolKind knd => a) -> a Source #

Introduce the IsSymbolKind constraint from the TypedSymbol.

Terms

data FPTrait Source #

Traits for IEEE floating point numbers.

Instances

Instances details
Generic FPTrait Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Associated Types

type Rep FPTrait :: Type -> Type #

Methods

from :: FPTrait -> Rep FPTrait x #

to :: Rep FPTrait x -> FPTrait #

Show FPTrait Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Binary FPTrait Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Methods

put :: FPTrait -> Put #

get :: Get FPTrait #

putList :: [FPTrait] -> Put #

Serial FPTrait Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Methods

serialize :: MonadPut m => FPTrait -> m () #

deserialize :: MonadGet m => m FPTrait #

Serialize FPTrait Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

NFData FPTrait Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Methods

rnf :: FPTrait -> () #

Eq FPTrait Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Methods

(==) :: FPTrait -> FPTrait -> Bool #

(/=) :: FPTrait -> FPTrait -> Bool #

Ord FPTrait Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Hashable FPTrait Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Methods

hashWithSalt :: Int -> FPTrait -> Int #

hash :: FPTrait -> Int #

Lift FPTrait Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Methods

lift :: Quote m => FPTrait -> m Exp #

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

type Rep FPTrait Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

type Rep FPTrait = D1 ('MetaData "FPTrait" "Grisette.Internal.SymPrim.Prim.Internal.Term" "grisette-0.11.0.0-En6Ko5xIwnQLAUQ39GJ2kN" 'False) (((C1 ('MetaCons "FPIsNaN" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "FPIsPositive" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "FPIsNegative" 'PrefixI 'False) (U1 :: Type -> Type))) :+: (C1 ('MetaCons "FPIsPositiveInfinite" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "FPIsNegativeInfinite" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "FPIsInfinite" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: ((C1 ('MetaCons "FPIsPositiveZero" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "FPIsNegativeZero" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "FPIsZero" 'PrefixI 'False) (U1 :: Type -> Type))) :+: (C1 ('MetaCons "FPIsNormal" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "FPIsSubnormal" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "FPIsPoint" 'PrefixI 'False) (U1 :: Type -> Type)))))

data FPUnaryOp Source #

Unary floating point operations.

Constructors

FPAbs 
FPNeg 

Instances

Instances details
Generic FPUnaryOp Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Associated Types

type Rep FPUnaryOp :: Type -> Type #

Show FPUnaryOp Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Binary FPUnaryOp Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Serial FPUnaryOp Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Methods

serialize :: MonadPut m => FPUnaryOp -> m () #

deserialize :: MonadGet m => m FPUnaryOp #

Serialize FPUnaryOp Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

NFData FPUnaryOp Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Methods

rnf :: FPUnaryOp -> () #

Eq FPUnaryOp Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Ord FPUnaryOp Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Hashable FPUnaryOp Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Lift FPUnaryOp Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Methods

lift :: Quote m => FPUnaryOp -> m Exp #

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

type Rep FPUnaryOp Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

type Rep FPUnaryOp = D1 ('MetaData "FPUnaryOp" "Grisette.Internal.SymPrim.Prim.Internal.Term" "grisette-0.11.0.0-En6Ko5xIwnQLAUQ39GJ2kN" 'False) (C1 ('MetaCons "FPAbs" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "FPNeg" 'PrefixI 'False) (U1 :: Type -> Type))

data FPBinaryOp Source #

Binary floating point operations.

Instances

Instances details
Generic FPBinaryOp Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Associated Types

type Rep FPBinaryOp :: Type -> Type #

Show FPBinaryOp Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Binary FPBinaryOp Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Serial FPBinaryOp Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Methods

serialize :: MonadPut m => FPBinaryOp -> m () #

deserialize :: MonadGet m => m FPBinaryOp #

Serialize FPBinaryOp Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

NFData FPBinaryOp Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Methods

rnf :: FPBinaryOp -> () #

Eq FPBinaryOp Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Ord FPBinaryOp Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Hashable FPBinaryOp Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Lift FPBinaryOp Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Methods

lift :: Quote m => FPBinaryOp -> m Exp #

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

type Rep FPBinaryOp Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

type Rep FPBinaryOp = D1 ('MetaData "FPBinaryOp" "Grisette.Internal.SymPrim.Prim.Internal.Term" "grisette-0.11.0.0-En6Ko5xIwnQLAUQ39GJ2kN" 'False) ((C1 ('MetaCons "FPRem" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "FPMinimum" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "FPMinimumNumber" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "FPMaximum" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "FPMaximumNumber" 'PrefixI 'False) (U1 :: Type -> Type))))

data FPRoundingUnaryOp Source #

Unary floating point operations with rounding modes.

Constructors

FPSqrt 
FPRoundToIntegral 

Instances

Instances details
Generic FPRoundingUnaryOp Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Associated Types

type Rep FPRoundingUnaryOp :: Type -> Type #

Show FPRoundingUnaryOp Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Binary FPRoundingUnaryOp Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Serial FPRoundingUnaryOp Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Serialize FPRoundingUnaryOp Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

NFData FPRoundingUnaryOp Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Methods

rnf :: FPRoundingUnaryOp -> () #

Eq FPRoundingUnaryOp Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Ord FPRoundingUnaryOp Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Hashable FPRoundingUnaryOp Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Lift FPRoundingUnaryOp Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Methods

lift :: Quote m => FPRoundingUnaryOp -> m Exp #

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

type Rep FPRoundingUnaryOp Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

type Rep FPRoundingUnaryOp = D1 ('MetaData "FPRoundingUnaryOp" "Grisette.Internal.SymPrim.Prim.Internal.Term" "grisette-0.11.0.0-En6Ko5xIwnQLAUQ39GJ2kN" 'False) (C1 ('MetaCons "FPSqrt" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "FPRoundToIntegral" 'PrefixI 'False) (U1 :: Type -> Type))

data FPRoundingBinaryOp Source #

Binary floating point operations with rounding modes.

Constructors

FPAdd 
FPSub 
FPMul 
FPDiv 

Instances

Instances details
Generic FPRoundingBinaryOp Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Associated Types

type Rep FPRoundingBinaryOp :: Type -> Type #

Show FPRoundingBinaryOp Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Binary FPRoundingBinaryOp Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Serial FPRoundingBinaryOp Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Serialize FPRoundingBinaryOp Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

NFData FPRoundingBinaryOp Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Methods

rnf :: FPRoundingBinaryOp -> () #

Eq FPRoundingBinaryOp Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Ord FPRoundingBinaryOp Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Hashable FPRoundingBinaryOp Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Lift FPRoundingBinaryOp Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

type Rep FPRoundingBinaryOp Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

type Rep FPRoundingBinaryOp = D1 ('MetaData "FPRoundingBinaryOp" "Grisette.Internal.SymPrim.Prim.Internal.Term" "grisette-0.11.0.0-En6Ko5xIwnQLAUQ39GJ2kN" 'False) ((C1 ('MetaCons "FPAdd" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "FPSub" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "FPMul" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "FPDiv" 'PrefixI 'False) (U1 :: Type -> Type)))

data FloatingUnaryOp Source #

Unary floating point operations.

Instances

Instances details
Generic FloatingUnaryOp Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Associated Types

type Rep FloatingUnaryOp :: Type -> Type #

Show FloatingUnaryOp Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Binary FloatingUnaryOp Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Serial FloatingUnaryOp Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Serialize FloatingUnaryOp Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

NFData FloatingUnaryOp Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Methods

rnf :: FloatingUnaryOp -> () #

Eq FloatingUnaryOp Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Ord FloatingUnaryOp Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Hashable FloatingUnaryOp Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Lift FloatingUnaryOp Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Methods

lift :: Quote m => FloatingUnaryOp -> m Exp #

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

type Rep FloatingUnaryOp Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

type Rep FloatingUnaryOp = D1 ('MetaData "FloatingUnaryOp" "Grisette.Internal.SymPrim.Prim.Internal.Term" "grisette-0.11.0.0-En6Ko5xIwnQLAUQ39GJ2kN" 'False) (((C1 ('MetaCons "FloatingExp" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "FloatingLog" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "FloatingSqrt" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "FloatingSin" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "FloatingCos" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "FloatingTan" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "FloatingAsin" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: (((C1 ('MetaCons "FloatingAcos" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "FloatingAtan" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "FloatingSinh" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "FloatingCosh" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "FloatingTanh" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "FloatingAsinh" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "FloatingAcosh" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "FloatingAtanh" 'PrefixI 'False) (U1 :: Type -> Type)))))

data Term t where Source #

Internal representation for Grisette symbolic terms.

Constructors

ConTerm :: SupportedPrim t => WeakThreadId -> !Digest -> Id -> Ident -> !t -> Term t 
SymTerm :: WeakThreadId -> !Digest -> Id -> Ident -> !(TypedSymbol 'AnyKind t) -> Term t 
ForallTerm :: WeakThreadId -> !Digest -> Id -> Ident -> !(TypedSymbol 'ConstantKind t) -> !(Term Bool) -> Term Bool 
ExistsTerm :: WeakThreadId -> !Digest -> Id -> Ident -> !(TypedSymbol 'ConstantKind t) -> !(Term Bool) -> Term Bool 
NotTerm :: WeakThreadId -> !Digest -> Id -> Ident -> !(Term Bool) -> Term Bool 
OrTerm :: WeakThreadId -> !Digest -> Id -> Ident -> !(Term Bool) -> !(Term Bool) -> Term Bool 
AndTerm :: WeakThreadId -> !Digest -> Id -> Ident -> !(Term Bool) -> !(Term Bool) -> Term Bool 
EqTerm :: WeakThreadId -> !Digest -> Id -> Ident -> !(Term t) -> !(Term t) -> Term Bool 
DistinctTerm :: WeakThreadId -> !Digest -> Id -> Ident -> !(NonEmpty (Term t)) -> Term Bool 
ITETerm :: SupportedPrim t => WeakThreadId -> !Digest -> Id -> Ident -> !(Term Bool) -> !(Term t) -> !(Term t) -> Term t 
AddNumTerm :: (SupportedPrim t, PEvalNumTerm t) => WeakThreadId -> !Digest -> Id -> Ident -> !(Term t) -> !(Term t) -> Term t 
NegNumTerm :: (SupportedPrim t, PEvalNumTerm t) => WeakThreadId -> !Digest -> Id -> Ident -> !(Term t) -> Term t 
MulNumTerm :: (SupportedPrim t, PEvalNumTerm t) => WeakThreadId -> !Digest -> Id -> Ident -> !(Term t) -> !(Term t) -> Term t 
AbsNumTerm :: (SupportedPrim t, PEvalNumTerm t) => WeakThreadId -> !Digest -> Id -> Ident -> !(Term t) -> Term t 
SignumNumTerm :: (SupportedPrim t, PEvalNumTerm t) => WeakThreadId -> !Digest -> Id -> Ident -> !(Term t) -> Term t 
LtOrdTerm :: (SupportedPrim t, PEvalOrdTerm t) => WeakThreadId -> !Digest -> Id -> Ident -> !(Term t) -> !(Term t) -> Term Bool 
LeOrdTerm :: (SupportedPrim t, PEvalOrdTerm t) => WeakThreadId -> !Digest -> Id -> Ident -> !(Term t) -> !(Term t) -> Term Bool 
AndBitsTerm :: (SupportedPrim t, PEvalBitwiseTerm t) => WeakThreadId -> !Digest -> Id -> Ident -> !(Term t) -> !(Term t) -> Term t 
OrBitsTerm :: (SupportedPrim t, PEvalBitwiseTerm t) => WeakThreadId -> !Digest -> Id -> Ident -> !(Term t) -> !(Term t) -> Term t 
XorBitsTerm :: (SupportedPrim t, PEvalBitwiseTerm t) => WeakThreadId -> !Digest -> Id -> Ident -> !(Term t) -> !(Term t) -> Term t 
ComplementBitsTerm :: (SupportedPrim t, PEvalBitwiseTerm t) => WeakThreadId -> !Digest -> Id -> Ident -> !(Term t) -> Term t 
ShiftLeftTerm :: (SupportedPrim t, PEvalShiftTerm t) => WeakThreadId -> !Digest -> Id -> Ident -> !(Term t) -> !(Term t) -> Term t 
ShiftRightTerm :: (SupportedPrim t, PEvalShiftTerm t) => WeakThreadId -> !Digest -> Id -> Ident -> !(Term t) -> !(Term t) -> Term t 
RotateLeftTerm :: (SupportedPrim t, PEvalRotateTerm t) => WeakThreadId -> !Digest -> Id -> Ident -> !(Term t) -> !(Term t) -> Term t 
RotateRightTerm :: (SupportedPrim t, PEvalRotateTerm t) => WeakThreadId -> !Digest -> Id -> Ident -> !(Term t) -> !(Term t) -> Term t 
BitCastTerm :: (SupportedPrim b, PEvalBitCastTerm a b) => WeakThreadId -> !Digest -> Id -> Ident -> !(Term a) -> Term b 
BitCastOrTerm :: (SupportedPrim b, PEvalBitCastOrTerm a b) => WeakThreadId -> !Digest -> Id -> Ident -> !(Term b) -> !(Term a) -> Term b 
BVConcatTerm :: (PEvalBVTerm bv, KnownNat l, KnownNat r, KnownNat (l + r), 1 <= l, 1 <= r, 1 <= (l + r), SupportedPrim (bv (l + r))) => WeakThreadId -> !Digest -> Id -> Ident -> !(Term (bv l)) -> !(Term (bv r)) -> Term (bv (l + r)) 
BVSelectTerm :: (PEvalBVTerm bv, KnownNat n, KnownNat ix, KnownNat w, 1 <= n, 1 <= w, (ix + w) <= n, SupportedPrim (bv w)) => WeakThreadId -> !Digest -> Id -> Ident -> !(Proxy ix) -> !(Proxy w) -> !(Term (bv n)) -> Term (bv w) 
BVExtendTerm :: (PEvalBVTerm bv, KnownNat l, KnownNat r, 1 <= l, 1 <= r, l <= r, SupportedPrim (bv r)) => WeakThreadId -> !Digest -> Id -> Ident -> !Bool -> !(Proxy r) -> !(Term (bv l)) -> Term (bv r) 
ApplyTerm :: (PEvalApplyTerm f a b, SupportedPrim b) => WeakThreadId -> !Digest -> Id -> Ident -> !(Term f) -> !(Term a) -> Term b 
DivIntegralTerm :: (SupportedPrim t, PEvalDivModIntegralTerm t) => WeakThreadId -> !Digest -> Id -> Ident -> !(Term t) -> !(Term t) -> Term t 
ModIntegralTerm :: (SupportedPrim t, PEvalDivModIntegralTerm t) => WeakThreadId -> !Digest -> Id -> Ident -> !(Term t) -> !(Term t) -> Term t 
QuotIntegralTerm :: (SupportedPrim t, PEvalDivModIntegralTerm t) => WeakThreadId -> !Digest -> Id -> Ident -> !(Term t) -> !(Term t) -> Term t 
RemIntegralTerm :: (SupportedPrim t, PEvalDivModIntegralTerm t) => WeakThreadId -> !Digest -> Id -> Ident -> !(Term t) -> !(Term t) -> Term t 
FPTraitTerm :: (ValidFP eb sb, SupportedPrim (FP eb sb)) => WeakThreadId -> !Digest -> Id -> Ident -> !FPTrait -> !(Term (FP eb sb)) -> Term Bool 
FdivTerm :: (SupportedPrim t, PEvalFractionalTerm t) => WeakThreadId -> !Digest -> Id -> Ident -> !(Term t) -> !(Term t) -> Term t 
RecipTerm :: (SupportedPrim t, PEvalFractionalTerm t) => WeakThreadId -> !Digest -> Id -> Ident -> !(Term t) -> Term t 
FloatingUnaryTerm :: (SupportedPrim t, PEvalFloatingTerm t) => WeakThreadId -> !Digest -> Id -> Ident -> !FloatingUnaryOp -> !(Term t) -> Term t 
PowerTerm :: (SupportedPrim t, PEvalFloatingTerm t) => WeakThreadId -> !Digest -> Id -> Ident -> !(Term t) -> !(Term t) -> Term t 
FPUnaryTerm :: (ValidFP eb sb, SupportedPrim (FP eb sb)) => WeakThreadId -> !Digest -> Id -> Ident -> !FPUnaryOp -> !(Term (FP eb sb)) -> Term (FP eb sb) 
FPBinaryTerm :: (ValidFP eb sb, SupportedPrim (FP eb sb)) => WeakThreadId -> !Digest -> Id -> Ident -> !FPBinaryOp -> !(Term (FP eb sb)) -> !(Term (FP eb sb)) -> Term (FP eb sb) 
FPRoundingUnaryTerm :: (ValidFP eb sb, SupportedPrim (FP eb sb)) => WeakThreadId -> !Digest -> Id -> Ident -> !FPRoundingUnaryOp -> !(Term FPRoundingMode) -> !(Term (FP eb sb)) -> Term (FP eb sb) 
FPRoundingBinaryTerm :: (ValidFP eb sb, SupportedPrim (FP eb sb)) => WeakThreadId -> !Digest -> Id -> Ident -> !FPRoundingBinaryOp -> !(Term FPRoundingMode) -> !(Term (FP eb sb)) -> !(Term (FP eb sb)) -> Term (FP eb sb) 
FPFMATerm :: (ValidFP eb sb, SupportedPrim (FP eb sb)) => WeakThreadId -> !Digest -> Id -> Ident -> !(Term FPRoundingMode) -> !(Term (FP eb sb)) -> !(Term (FP eb sb)) -> !(Term (FP eb sb)) -> Term (FP eb sb) 
FromIntegralTerm :: (PEvalFromIntegralTerm a b, SupportedPrim b) => WeakThreadId -> !Digest -> Id -> Ident -> !(Term a) -> Term b 
FromFPOrTerm :: (PEvalIEEEFPConvertibleTerm a, ValidFP eb sb, SupportedPrim a) => WeakThreadId -> !Digest -> Id -> Ident -> !(Term a) -> !(Term FPRoundingMode) -> !(Term (FP eb sb)) -> Term a 
ToFPTerm :: (PEvalIEEEFPConvertibleTerm a, ValidFP eb sb, SupportedPrim (FP eb sb)) => WeakThreadId -> !Digest -> Id -> Ident -> !(Term FPRoundingMode) -> !(Term a) -> Proxy eb -> Proxy sb -> Term (FP eb sb) 

Instances

Instances details
Lift (Term t :: Type) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Methods

lift :: Quote m => Term t -> m Exp #

liftTyped :: forall (m :: Type -> Type). Quote m => Term t -> Code m (Term t) #

Show (Term ty) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Methods

showsPrec :: Int -> Term ty -> ShowS #

show :: Term ty -> String #

showList :: [Term ty] -> ShowS #

SupportedPrim a => Binary (Term a) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Serialize

Methods

put :: Term a -> Put #

get :: Get (Term a) #

putList :: [Term a] -> Put #

SupportedPrim a => Serial (Term a) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Serialize

Methods

serialize :: MonadPut m => Term a -> m () #

deserialize :: MonadGet m => m (Term a) #

SupportedPrim a => Serialize (Term a) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Serialize

Methods

put :: Putter (Term a) #

get :: Get (Term a) #

NFData (Term a) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Methods

rnf :: Term a -> () #

Eq (Description (Term t)) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Methods

(==) :: Description (Term t) -> Description (Term t) -> Bool #

(/=) :: Description (Term t) -> Description (Term t) -> Bool #

SupportedPrim t => Eq (Term t) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Methods

(==) :: Term t -> Term t -> Bool #

(/=) :: Term t -> Term t -> Bool #

Interned (Term t) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Associated Types

data Description (Term t) Source #

type Uninterned (Term t) Source #

Hashable (Description (Term t)) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Methods

hashWithSalt :: Int -> Description (Term t) -> Int #

hash :: Description (Term t) -> Int #

SupportedPrim t => Hashable (Term t) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Methods

hashWithSalt :: Int -> Term t -> Int #

hash :: Term t -> Int #

data Description (Term t) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

data Description (Term t) where
type Uninterned (Term t) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

type Uninterned (Term t) = UTerm t

defaultValueDynamic :: forall t proxy. SupportedPrim t => proxy t -> ModelValue Source #

The default value in a dynamic ModelValue.

pattern DynTerm :: forall a b. SupportedPrim a => Term a -> Term b Source #

Pattern for term with dynamic typing.

toCurThread :: forall t. Term t -> IO (Term t) Source #

Convert a term to the current thread.

termId :: Term t -> Id Source #

Return the ID of a term.

termIdent :: Term t -> Ident Source #

The identity of the term.

typeHashId :: forall t. Term t -> TypeHashId Source #

Return the ID and the type representation of a term.

introSupportedPrimConstraint :: forall t a. Term t -> ((SupportedPrim t, Typeable t) => a) -> a Source #

Introduce the SupportedPrim constraint from a term.

pformatTerm :: forall t. Term t -> String Source #

Pretty-print a term.

data ModelValue where Source #

A value with its type information.

Constructors

ModelValue :: forall v. SupportedPrim v => v -> ModelValue 

Instances

Instances details
Show ModelValue Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Binary ModelValue Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Serialize

Serial ModelValue Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Serialize

Methods

serialize :: MonadPut m => ModelValue -> m () #

deserialize :: MonadGet m => m ModelValue #

Serialize ModelValue Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Serialize

NFData ModelValue Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Methods

rnf :: ModelValue -> () #

Eq ModelValue Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

PPrint ModelValue Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Data.Class.PPrint

Hashable ModelValue Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Lift ModelValue Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Methods

lift :: Quote m => ModelValue -> m Exp #

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

toModelValue :: forall a. SupportedPrim a => a -> ModelValue Source #

Convert to a model value.

unsafeFromModelValue :: forall a. Typeable a => ModelValue -> a Source #

Convert from a model value. Crashes if the types does not match.

Interning

data UTerm t where Source #

Term without identity (before internalizing).

Constructors

UConTerm :: SupportedPrim t => !t -> UTerm t 
USymTerm :: !(TypedSymbol 'AnyKind t) -> UTerm t 
UForallTerm :: !(TypedSymbol 'ConstantKind t) -> !(Term Bool) -> UTerm Bool 
UExistsTerm :: !(TypedSymbol 'ConstantKind t) -> !(Term Bool) -> UTerm Bool 
UNotTerm :: !(Term Bool) -> UTerm Bool 
UOrTerm :: !(Term Bool) -> !(Term Bool) -> UTerm Bool 
UAndTerm :: !(Term Bool) -> !(Term Bool) -> UTerm Bool 
UEqTerm :: !(Term t) -> !(Term t) -> UTerm Bool 
UDistinctTerm :: !(NonEmpty (Term t)) -> UTerm Bool 
UITETerm :: SupportedPrim t => !(Term Bool) -> !(Term t) -> !(Term t) -> UTerm t 
UAddNumTerm :: (SupportedPrim t, PEvalNumTerm t) => !(Term t) -> !(Term t) -> UTerm t 
UNegNumTerm :: (SupportedPrim t, PEvalNumTerm t) => !(Term t) -> UTerm t 
UMulNumTerm :: (SupportedPrim t, PEvalNumTerm t) => !(Term t) -> !(Term t) -> UTerm t 
UAbsNumTerm :: (SupportedPrim t, PEvalNumTerm t) => !(Term t) -> UTerm t 
USignumNumTerm :: (SupportedPrim t, PEvalNumTerm t) => !(Term t) -> UTerm t 
ULtOrdTerm :: (SupportedPrim t, PEvalOrdTerm t) => !(Term t) -> !(Term t) -> UTerm Bool 
ULeOrdTerm :: (SupportedPrim t, PEvalOrdTerm t) => !(Term t) -> !(Term t) -> UTerm Bool 
UAndBitsTerm :: (SupportedPrim t, PEvalBitwiseTerm t) => !(Term t) -> !(Term t) -> UTerm t 
UOrBitsTerm :: (SupportedPrim t, PEvalBitwiseTerm t) => !(Term t) -> !(Term t) -> UTerm t 
UXorBitsTerm :: (SupportedPrim t, PEvalBitwiseTerm t) => !(Term t) -> !(Term t) -> UTerm t 
UComplementBitsTerm :: (SupportedPrim t, PEvalBitwiseTerm t) => !(Term t) -> UTerm t 
UShiftLeftTerm :: (SupportedPrim t, PEvalShiftTerm t) => !(Term t) -> !(Term t) -> UTerm t 
UShiftRightTerm :: (SupportedPrim t, PEvalShiftTerm t) => !(Term t) -> !(Term t) -> UTerm t 
URotateLeftTerm :: (SupportedPrim t, PEvalRotateTerm t) => !(Term t) -> !(Term t) -> UTerm t 
URotateRightTerm :: (SupportedPrim t, PEvalRotateTerm t) => !(Term t) -> !(Term t) -> UTerm t 
UBitCastTerm :: (SupportedPrim b, PEvalBitCastTerm a b) => !(Term a) -> UTerm b 
UBitCastOrTerm :: (SupportedPrim b, PEvalBitCastOrTerm a b) => !(Term b) -> !(Term a) -> UTerm b 
UBVConcatTerm :: (PEvalBVTerm bv, KnownNat l, KnownNat r, KnownNat (l + r), 1 <= l, 1 <= r, 1 <= (l + r), SupportedPrim (bv (l + r))) => !(Term (bv l)) -> !(Term (bv r)) -> UTerm (bv (l + r)) 
UBVSelectTerm :: (PEvalBVTerm bv, KnownNat n, KnownNat ix, KnownNat w, 1 <= n, 1 <= w, (ix + w) <= n, SupportedPrim (bv w)) => !(Proxy ix) -> !(Proxy w) -> !(Term (bv n)) -> UTerm (bv w) 
UBVExtendTerm :: (PEvalBVTerm bv, KnownNat l, KnownNat r, 1 <= l, 1 <= r, l <= r, SupportedPrim (bv r)) => !Bool -> !(Proxy r) -> !(Term (bv l)) -> UTerm (bv r) 
UApplyTerm :: (PEvalApplyTerm f a b, SupportedPrim b) => Term f -> Term a -> UTerm b 
UDivIntegralTerm :: (SupportedPrim t, PEvalDivModIntegralTerm t) => !(Term t) -> !(Term t) -> UTerm t 
UModIntegralTerm :: (SupportedPrim t, PEvalDivModIntegralTerm t) => !(Term t) -> !(Term t) -> UTerm t 
UQuotIntegralTerm :: (SupportedPrim t, PEvalDivModIntegralTerm t) => !(Term t) -> !(Term t) -> UTerm t 
URemIntegralTerm :: (SupportedPrim t, PEvalDivModIntegralTerm t) => !(Term t) -> !(Term t) -> UTerm t 
UFPTraitTerm :: (ValidFP eb sb, SupportedPrim (FP eb sb)) => !FPTrait -> !(Term (FP eb sb)) -> UTerm Bool 
UFdivTerm :: (SupportedPrim t, PEvalFractionalTerm t) => !(Term t) -> !(Term t) -> UTerm t 
URecipTerm :: (SupportedPrim t, PEvalFractionalTerm t) => !(Term t) -> UTerm t 
UFloatingUnaryTerm :: (SupportedPrim t, PEvalFloatingTerm t) => !FloatingUnaryOp -> !(Term t) -> UTerm t 
UPowerTerm :: (SupportedPrim t, PEvalFloatingTerm t) => !(Term t) -> !(Term t) -> UTerm t 
UFPUnaryTerm :: (ValidFP eb sb, SupportedPrim (FP eb sb)) => !FPUnaryOp -> !(Term (FP eb sb)) -> UTerm (FP eb sb) 
UFPBinaryTerm :: (ValidFP eb sb, SupportedPrim (FP eb sb)) => !FPBinaryOp -> !(Term (FP eb sb)) -> !(Term (FP eb sb)) -> UTerm (FP eb sb) 
UFPRoundingUnaryTerm :: (ValidFP eb sb, SupportedPrim (FP eb sb)) => !FPRoundingUnaryOp -> !(Term FPRoundingMode) -> !(Term (FP eb sb)) -> UTerm (FP eb sb) 
UFPRoundingBinaryTerm :: (ValidFP eb sb, SupportedPrim (FP eb sb)) => !FPRoundingBinaryOp -> !(Term FPRoundingMode) -> !(Term (FP eb sb)) -> !(Term (FP eb sb)) -> UTerm (FP eb sb) 
UFPFMATerm :: (ValidFP eb sb, SupportedPrim (FP eb sb)) => !(Term FPRoundingMode) -> !(Term (FP eb sb)) -> !(Term (FP eb sb)) -> !(Term (FP eb sb)) -> UTerm (FP eb sb) 
UFromIntegralTerm :: (PEvalFromIntegralTerm a b, SupportedPrim b) => !(Term a) -> UTerm b 
UFromFPOrTerm :: (PEvalIEEEFPConvertibleTerm a, SupportedPrim a, ValidFP eb sb) => Term a -> !(Term FPRoundingMode) -> !(Term (FP eb sb)) -> UTerm a 
UToFPTerm :: (PEvalIEEEFPConvertibleTerm a, ValidFP eb sb, SupportedPrim (FP eb sb)) => !(Term FPRoundingMode) -> !(Term a) -> Proxy eb -> Proxy sb -> UTerm (FP eb sb) 

prettyPrintTerm :: Term t -> Doc ann Source #

Pretty-print a term, possibly eliding parts of it.

forallTerm :: TypedSymbol 'ConstantKind t -> Term Bool -> Term Bool Source #

Construct and internalizing a ForallTerm.

existsTerm :: TypedSymbol 'ConstantKind t -> Term Bool -> Term Bool Source #

Construct and internalizing a ExistsTerm.

conTerm :: SupportedPrim t => t -> Term t Source #

Construct and internalizing a ConTerm.

symTerm :: TypedSymbol knd t -> Term t Source #

Construct and internalizing a SymTerm.

ssymTerm :: SupportedPrim t => Identifier -> Term t Source #

Construct and internalizing a SymTerm with an identifier, using simple symbols.

isymTerm :: SupportedPrim t => Identifier -> Int -> Term t Source #

Construct and internalizing a SymTerm with an identifier and an index, using indexed symbols.

notTerm :: Term Bool -> Term Bool Source #

Construct and internalizing a NotTerm.

orTerm :: Term Bool -> Term Bool -> Term Bool Source #

Construct and internalizing a OrTerm.

andTerm :: Term Bool -> Term Bool -> Term Bool Source #

Construct and internalizing a AndTerm.

eqTerm :: Term a -> Term a -> Term Bool Source #

Construct and internalizing a EqTerm.

distinctTerm :: NonEmpty (Term a) -> Term Bool Source #

Construct and internalizing a DistinctTerm.

iteTerm :: Term Bool -> Term a -> Term a -> Term a Source #

Construct and internalizing a ITETerm.

addNumTerm :: PEvalNumTerm a => Term a -> Term a -> Term a Source #

Construct and internalizing a AddNumTerm.

negNumTerm :: PEvalNumTerm a => Term a -> Term a Source #

Construct and internalizing a NegNumTerm.

mulNumTerm :: PEvalNumTerm a => Term a -> Term a -> Term a Source #

Construct and internalizing a MulNumTerm.

absNumTerm :: PEvalNumTerm a => Term a -> Term a Source #

Construct and internalizing a AbsNumTerm.

signumNumTerm :: PEvalNumTerm a => Term a -> Term a Source #

Construct and internalizing a SignumNumTerm.

ltOrdTerm :: PEvalOrdTerm a => Term a -> Term a -> Term Bool Source #

Construct and internalizing a LtOrdTerm.

leOrdTerm :: PEvalOrdTerm a => Term a -> Term a -> Term Bool Source #

Construct and internalizing a LeOrdTerm.

andBitsTerm :: PEvalBitwiseTerm a => Term a -> Term a -> Term a Source #

Construct and internalizing a AndBitsTerm.

orBitsTerm :: PEvalBitwiseTerm a => Term a -> Term a -> Term a Source #

Construct and internalizing a OrBitsTerm.

xorBitsTerm :: PEvalBitwiseTerm a => Term a -> Term a -> Term a Source #

Construct and internalizing a XorBitsTerm.

complementBitsTerm :: PEvalBitwiseTerm a => Term a -> Term a Source #

Construct and internalizing a ComplementBitsTerm.

shiftLeftTerm :: PEvalShiftTerm a => Term a -> Term a -> Term a Source #

Construct and internalizing a ShiftLeftTerm.

shiftRightTerm :: PEvalShiftTerm a => Term a -> Term a -> Term a Source #

Construct and internalizing a ShiftRightTerm.

rotateLeftTerm :: PEvalRotateTerm a => Term a -> Term a -> Term a Source #

Construct and internalizing a RotateLeftTerm.

rotateRightTerm :: PEvalRotateTerm a => Term a -> Term a -> Term a Source #

Construct and internalizing a RotateRightTerm.

bitCastTerm :: (PEvalBitCastTerm a b, SupportedPrim b) => Term a -> Term b Source #

Construct and internalizing a BitCastTerm.

bitCastOrTerm :: PEvalBitCastOrTerm a b => Term b -> Term a -> Term b Source #

Construct and internalizing a BitCastOrTerm.

bvConcatTerm :: forall bv l r. (PEvalBVTerm bv, KnownNat l, KnownNat r, KnownNat (l + r), 1 <= l, 1 <= r, 1 <= (l + r), SupportedPrim (bv (l + r))) => Term (bv l) -> Term (bv r) -> Term (bv (l + r)) Source #

Construct and internalizing a BVConcatTerm.

bvSelectTerm :: forall bv n ix w p q. (PEvalBVTerm bv, KnownNat n, KnownNat ix, KnownNat w, 1 <= n, 1 <= w, (ix + w) <= n, SupportedPrim (bv w)) => p ix -> q w -> Term (bv n) -> Term (bv w) Source #

Construct and internalizing a BVSelectTerm.

bvExtendTerm :: forall bv l r proxy. (PEvalBVTerm bv, KnownNat l, KnownNat r, 1 <= l, 1 <= r, l <= r, SupportedPrim (bv r)) => Bool -> proxy r -> Term (bv l) -> Term (bv r) Source #

Construct and internalizing a BVExtendTerm.

bvsignExtendTerm :: forall bv l r proxy. (PEvalBVTerm bv, KnownNat l, KnownNat r, 1 <= l, 1 <= r, l <= r, SupportedPrim (bv r)) => proxy r -> Term (bv l) -> Term (bv r) Source #

Construct and internalizing a BVExtendTerm with sign extension.

bvzeroExtendTerm :: forall bv l r proxy. (PEvalBVTerm bv, KnownNat l, KnownNat r, 1 <= l, 1 <= r, l <= r, SupportedPrim (bv r)) => proxy r -> Term (bv l) -> Term (bv r) Source #

Construct and internalizing a BVExtendTerm with zero extension.

applyTerm :: (PEvalApplyTerm f a b, SupportedPrim b) => Term f -> Term a -> Term b Source #

Construct and internalizing a ApplyTerm.

divIntegralTerm :: PEvalDivModIntegralTerm a => Term a -> Term a -> Term a Source #

Construct and internalizing a DivIntegralTerm.

modIntegralTerm :: PEvalDivModIntegralTerm a => Term a -> Term a -> Term a Source #

Construct and internalizing a ModIntegralTerm.

quotIntegralTerm :: PEvalDivModIntegralTerm a => Term a -> Term a -> Term a Source #

Construct and internalizing a QuotIntegralTerm.

remIntegralTerm :: PEvalDivModIntegralTerm a => Term a -> Term a -> Term a Source #

Construct and internalizing a RemIntegralTerm.

fpTraitTerm :: (ValidFP eb sb, SupportedPrim (FP eb sb)) => FPTrait -> Term (FP eb sb) -> Term Bool Source #

Construct and internalizing a FPTraitTerm.

fdivTerm :: PEvalFractionalTerm a => Term a -> Term a -> Term a Source #

Construct and internalizing a FdivTerm.

recipTerm :: PEvalFractionalTerm a => Term a -> Term a Source #

Construct and internalizing a RecipTerm.

floatingUnaryTerm :: PEvalFloatingTerm a => FloatingUnaryOp -> Term a -> Term a Source #

Construct and internalizing a FloatingUnaryTerm.

powerTerm :: PEvalFloatingTerm a => Term a -> Term a -> Term a Source #

Construct and internalizing a PowerTerm.

fpUnaryTerm :: (ValidFP eb sb, SupportedPrim (FP eb sb)) => FPUnaryOp -> Term (FP eb sb) -> Term (FP eb sb) Source #

Construct and internalizing a FPUnaryTerm.

fpBinaryTerm :: (ValidFP eb sb, SupportedPrim (FP eb sb)) => FPBinaryOp -> Term (FP eb sb) -> Term (FP eb sb) -> Term (FP eb sb) Source #

Construct and internalizing a FPBinaryTerm.

fpRoundingUnaryTerm :: (ValidFP eb sb, SupportedPrim (FP eb sb)) => FPRoundingUnaryOp -> Term FPRoundingMode -> Term (FP eb sb) -> Term (FP eb sb) Source #

Construct and internalizing a FPRoundingUnaryTerm.

fpRoundingBinaryTerm :: (ValidFP eb sb, SupportedPrim (FP eb sb)) => FPRoundingBinaryOp -> Term FPRoundingMode -> Term (FP eb sb) -> Term (FP eb sb) -> Term (FP eb sb) Source #

Construct and internalizing a FPRoundingBinaryTerm.

fpFMATerm :: (ValidFP eb sb, SupportedPrim (FP eb sb)) => Term FPRoundingMode -> Term (FP eb sb) -> Term (FP eb sb) -> Term (FP eb sb) -> Term (FP eb sb) Source #

Construct and internalizing a FPFMATerm.

fromIntegralTerm :: (PEvalFromIntegralTerm a b, SupportedPrim b) => Term a -> Term b Source #

Construct and internalizing a FromIntegralTerm.

fromFPOrTerm :: (PEvalIEEEFPConvertibleTerm a, ValidFP eb sb) => Term a -> Term FPRoundingMode -> Term (FP eb sb) -> Term a Source #

Construct and internalizing a FromFPOrTerm.

toFPTerm :: forall a eb sb. (PEvalIEEEFPConvertibleTerm a, ValidFP eb sb, SupportedPrim (FP eb sb)) => Term FPRoundingMode -> Term a -> Term (FP eb sb) Source #

Construct and internalizing a ToFPTerm.

Support for boolean type

trueTerm :: Term Bool Source #

Construct and internalizing True term.

falseTerm :: Term Bool Source #

Construct and internalizing False term.

pattern BoolConTerm :: Bool -> Term a Source #

Pattern matcher for concrete Bool terms.

pattern TrueTerm :: Term a Source #

Pattern matcher for True term.

pattern FalseTerm :: Term a Source #

Pattern matcher for False term.

pattern BoolTerm :: Term Bool -> Term a Source #

Pattern matcher for Bool terms.

pevalNotTerm :: Term Bool -> Term Bool Source #

Partial evaluation for not terms.

pevalOrTerm :: Term Bool -> Term Bool -> Term Bool Source #

Partial evaluation for or terms.

pevalAndTerm :: Term Bool -> Term Bool -> Term Bool Source #

Partial evaluation for and terms.

pevalImplyTerm :: Term Bool -> Term Bool -> Term Bool Source #

Partial evaluation for imply terms.

pevalXorTerm :: Term Bool -> Term Bool -> Term Bool Source #

Partial evaluation for xor terms.

pevalITEBasic :: SupportedPrim a => Term Bool -> Term a -> Term a -> Maybe (Term a) Source #

Basic partial evaluation for ITE terms.

pevalITEBasicTerm :: SupportedPrim a => Term Bool -> Term a -> Term a -> Term a Source #

Basic partial evaluation for ITE terms.

pevalDefaultEqTerm :: SupportedNonFuncPrim a => Term a -> Term a -> Term Bool Source #

Default partial evaluation for equality terms.

type NonFuncPrimConstraint a = (SymVal (NonFuncSBVBaseType a), EqSymbolic (SBVType a), Mergeable (SBVType a), SMTDefinable (SBVType a), Mergeable (SBVType a), SBVType a ~ SBV (NonFuncSBVBaseType a), PrimConstraint a) Source #

Type class for resolving the constraint for a supported non-function primitive type.

class (SupportedPrim a, Ord a) => NonFuncSBVRep a Source #

Type class for resolving the base type for the SBV type for the primitive type.

Associated Types

type NonFuncSBVBaseType a Source #

class NonFuncSBVRep a => SupportedNonFuncPrim a where Source #

Indicates that a type is supported, can be represented as a symbolic term, is not a function type, and can be lowered to an SBV term.

Instances

Instances details
SupportedNonFuncPrim AlgReal Source # 
Instance details

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

SupportedNonFuncPrim FPRoundingMode Source # 
Instance details

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

SupportedNonFuncPrim Integer Source # 
Instance details

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

SupportedNonFuncPrim Bool Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

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

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

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

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

ValidFP eb sb => SupportedNonFuncPrim (FP eb sb) Source # 
Instance details

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

class SBVRep t Source #

Type class for resolving the SBV type for the primitive type.

Associated Types

type SBVType t Source #

Instances

Instances details
SBVRep AlgReal Source # 
Instance details

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

Associated Types

type SBVType AlgReal Source #

SBVRep FPRoundingMode Source # 
Instance details

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

Associated Types

type SBVType FPRoundingMode Source #

SBVRep Integer Source # 
Instance details

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

Associated Types

type SBVType Integer Source #

SBVRep Bool Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Associated Types

type SBVType Bool Source #

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

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

Associated Types

type SBVType (IntN w) Source #

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

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

Associated Types

type SBVType (WordN w) Source #

ValidFP eb sb => SBVRep (FP eb sb) Source # 
Instance details

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

Associated Types

type SBVType (FP eb sb) Source #

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

Defined in Grisette.Internal.SymPrim.GeneralFun

Associated Types

type SBVType (a --> b) Source #

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

Defined in Grisette.Internal.SymPrim.TabularFun

Associated Types

type SBVType (a =-> b) Source #

class MonadIO m => SBVFreshMonad m where Source #

Monads that supports generating sbv fresh variables.

Methods

sbvFresh :: SymVal a => String -> m (SBV a) Source #

Instances

Instances details
MonadIO m => SBVFreshMonad (QueryT m) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Methods

sbvFresh :: SymVal a => String -> QueryT m (SBV a) Source #

MonadIO m => SBVFreshMonad (SymbolicT m) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Methods

sbvFresh :: SymVal a => String -> SymbolicT m (SBV a) Source #

SBVFreshMonad m => SBVFreshMonad (ReaderT r m) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Methods

sbvFresh :: SymVal a => String -> ReaderT r m (SBV a) Source #

SBVFreshMonad m => SBVFreshMonad (StateT s m) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Methods

sbvFresh :: SymVal a => String -> StateT s m (SBV a) Source #

SBVFreshMonad m => SBVFreshMonad (StateT s m) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Methods

sbvFresh :: SymVal a => String -> StateT s m (SBV a) Source #

(SBVFreshMonad m, Monoid w) => SBVFreshMonad (WriterT w m) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Methods

sbvFresh :: SymVal a => String -> WriterT w m (SBV a) Source #

(SBVFreshMonad m, Monoid w) => SBVFreshMonad (WriterT w m) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Methods

sbvFresh :: SymVal a => String -> WriterT w m (SBV a) Source #

(SBVFreshMonad m, Monoid w) => SBVFreshMonad (RWST r w s m) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Methods

sbvFresh :: SymVal a => String -> RWST r w s m (SBV a) Source #

(SBVFreshMonad m, Monoid w) => SBVFreshMonad (RWST r w s m) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.Prim.Internal.Term

Methods

sbvFresh :: SymVal a => String -> RWST r w s m (SBV a) Source #

translateTypeError :: HasCallStack => Maybe String -> TypeRep a -> b Source #

Error message for unsupported types.

parseSMTModelResultError :: HasCallStack => TypeRep a -> ([([CV], CV)], CV) -> a Source #

Error message for failure to parse the SBV model result.

partitionCVArg :: forall a. SupportedNonFuncPrim a => [([CV], CV)] -> [(a, [([CV], CV)])] Source #

Partition the list of CVs for models for functions.

parseScalarSMTModelResult :: forall v r. (SatModel r, Typeable v) => (r -> v) -> ([([CV], CV)], CV) -> v Source #

Parse the scalar model result.