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

Grisette.Internal.SymPrim.SymBool

Description

 
Synopsis

Documentation

newtype SymBool Source #

Symbolic Boolean type.

>>> "a" :: SymBool
a
>>> "a" .&& "b" :: SymBool
(&& a b)

More operations are available. Please refer to Grisette.Core for more information.

Constructors

SymBool (Term Bool) 

Instances

Instances details
Binary SymBool Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBool

Methods

put :: SymBool -> Put #

get :: Get SymBool #

putList :: [SymBool] -> Put #

Serial SymBool Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBool

Methods

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

deserialize :: MonadGet m => m SymBool #

Serialize SymBool Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBool

NFData SymBool Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBool

Methods

rnf :: SymBool -> () #

IsString SymBool Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBool

Methods

fromString :: String -> SymBool #

Generic SymBool Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBool

Associated Types

type Rep SymBool 
Instance details

Defined in Grisette.Internal.SymPrim.SymBool

type Rep SymBool = D1 ('MetaData "SymBool" "Grisette.Internal.SymPrim.SymBool" "grisette-0.12.0.0-2G8wsM3ZzbCKYYnSn6PeBx" 'True) (C1 ('MetaCons "SymBool" 'PrefixI 'True) (S1 ('MetaSel ('Just "underlyingBoolTerm") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Term Bool))))

Methods

from :: SymBool -> Rep SymBool x #

to :: Rep SymBool x -> SymBool #

Show SymBool Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBool

Eq SymBool Source #

This will crash the program.

SymBool cannot be compared concretely.

If you want to use the type as keys in hash maps based on term equality, say memo table, you should use AsKey SymBool instead.

If you want symbolic version of the equality operator, use SymEq instead.

Instance details

Defined in Grisette.Internal.SymPrim.SymBool

Methods

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

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

KeyEq SymBool Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBool

Methods

keyEq :: SymBool -> SymBool -> Bool Source #

KeyHashable SymBool Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBool

Apply SymBool Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBool

Associated Types

type FunType SymBool 
Instance details

Defined in Grisette.Internal.SymPrim.SymBool

ITEOp SymBool Source # 
Instance details

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

LogicalOp SymBool Source # 
Instance details

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

EvalSym SymBool Source # 
Instance details

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

Methods

evalSym :: Bool -> Model -> SymBool -> SymBool Source #

ExtractSym SymBool Source # 
Instance details

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

Mergeable SymBool Source # 
Instance details

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

PPrint SymBool Source # 
Instance details

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

SimpleMergeable SymBool Source # 
Instance details

Defined in Grisette.Internal.Internal.Decl.Core.Data.Class.SimpleMergeable

SubstSym SymBool Source # 
Instance details

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

Methods

substSym :: forall cb sb (knd :: SymbolKind). (LinkedRep cb sb, IsSymbolKind knd) => TypedSymbol knd cb -> sb -> SymBool -> SymBool Source #

SymEq SymBool Source # 
Instance details

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

SymOrd SymBool Source # 
Instance details

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

AllSyms SymBool Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBool

ConRep SymBool Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBool

Associated Types

type ConType SymBool 
Instance details

Defined in Grisette.Internal.SymPrim.SymBool

UnifiedConRep SymBool Source # 
Instance details

Defined in Grisette.Internal.Unified.Class.UnifiedRep

Associated Types

type ConType SymBool 
Instance details

Defined in Grisette.Internal.Unified.Class.UnifiedRep

UnifiedSymRep SymBool Source # 
Instance details

Defined in Grisette.Internal.Unified.Class.UnifiedRep

Associated Types

type SymType SymBool 
Instance details

Defined in Grisette.Internal.Unified.Class.UnifiedRep

GenSym SymBool SymBool Source # 
Instance details

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

Methods

fresh :: MonadFresh m => SymBool -> m (Union SymBool) Source #

GenSym () SymBool Source # 
Instance details

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

Methods

fresh :: MonadFresh m => () -> m (Union SymBool) Source #

GenSymSimple SymBool SymBool Source # 
Instance details

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

GenSymSimple () SymBool Source # 
Instance details

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

Methods

simpleFresh :: MonadFresh m => () -> m SymBool Source #

Solvable Bool SymBool Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBool

ToCon SymBool SymBool Source # 
Instance details

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

ToCon SymBool Bool Source # 
Instance details

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

ToSym SymBool SymBool Source # 
Instance details

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

ToSym Bool SymBool Source # 
Instance details

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

Methods

toSym :: Bool -> SymBool Source #

LinkedRep Bool SymBool Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBool

Lift SymBool Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBool

Methods

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

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

UnifiedSolvable 'S SymBool Bool Source # 
Instance details

Defined in Grisette.Internal.Unified.Class.UnifiedSolvable

BitCast SymBool (SymIntN 1) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBV

Methods

bitCast :: SymBool -> SymIntN 1 Source #

BitCast SymBool (SymWordN 1) Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBV

BitCast (SymIntN 1) SymBool Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBV

Methods

bitCast :: SymIntN 1 -> SymBool Source #

BitCast (SymWordN 1) SymBool Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBV

ToSym (Union Bool) SymBool Source # 
Instance details

Defined in Grisette.Internal.Internal.Impl.Core.Control.Monad.Union

type Rep SymBool Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBool

type Rep SymBool = D1 ('MetaData "SymBool" "Grisette.Internal.SymPrim.SymBool" "grisette-0.12.0.0-2G8wsM3ZzbCKYYnSn6PeBx" 'True) (C1 ('MetaCons "SymBool" 'PrefixI 'True) (S1 ('MetaSel ('Just "underlyingBoolTerm") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Term Bool))))
type FunType SymBool Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBool

type ConType SymBool Source # 
Instance details

Defined in Grisette.Internal.SymPrim.SymBool

type ConType SymBool Source # 
Instance details

Defined in Grisette.Internal.Unified.Class.UnifiedRep

type SymType SymBool Source # 
Instance details

Defined in Grisette.Internal.Unified.Class.UnifiedRep

type SymBoolKey = AsKey SymBool Source #

SymBool type with identity equality.

Orphan instances

SymRep Bool Source # 
Instance details

Associated Types

type SymType Bool 
Instance details

Defined in Grisette.Internal.SymPrim.SymBool

LinkedRep Bool SymBool Source # 
Instance details