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

Grisette.IR.SymPrim.Data.Prim.InternedTerm.InternedCtors

Description

 

Documentation

constructUnary :: forall tag arg t. (SupportedPrim t, UnaryOp tag arg t, Typeable tag, Typeable t, Show tag) => tag -> Term arg -> Term t Source #

constructBinary :: forall tag arg1 arg2 t. (SupportedPrim t, BinaryOp tag arg1 arg2 t, Typeable tag, Typeable t, Show tag) => tag -> Term arg1 -> Term arg2 -> Term t Source #

constructTernary :: forall tag arg1 arg2 arg3 t. (SupportedPrim t, TernaryOp tag arg1 arg2 arg3 t, Typeable tag, Typeable t, Show tag) => tag -> Term arg1 -> Term arg2 -> Term arg3 -> Term t Source #

conTerm :: (SupportedPrim t, Typeable t, Hashable t, Eq t, Show t) => t -> Term t Source #

symTerm :: forall t. (SupportedPrim t, Typeable t) => TypedSymbol t -> Term t Source #

addNumTerm :: (SupportedPrim a, Num a) => Term a -> Term a -> Term a Source #

timesNumTerm :: (SupportedPrim a, Num a) => Term a -> Term a -> Term a Source #

ltNumTerm :: (SupportedPrim a, Num a, Ord a) => Term a -> Term a -> Term Bool Source #

leNumTerm :: (SupportedPrim a, Num a, Ord a) => Term a -> Term a -> Term Bool Source #

andBitsTerm :: (SupportedPrim a, Bits a) => Term a -> Term a -> Term a Source #

orBitsTerm :: (SupportedPrim a, Bits a) => Term a -> Term a -> Term a Source #

xorBitsTerm :: (SupportedPrim a, Bits a) => Term a -> Term a -> Term a Source #

bvconcatTerm :: (SupportedPrim (bv a), SupportedPrim (bv b), SupportedPrim (bv c), KnownNat a, KnownNat b, KnownNat c, BVConcat (bv a) (bv b) (bv c)) => Term (bv a) -> Term (bv b) -> Term (bv c) Source #

bvselectTerm :: forall bv a ix w proxy. (SupportedPrim (bv a), SupportedPrim (bv w), KnownNat a, KnownNat w, KnownNat ix, BVSelect (bv a) ix w (bv w)) => proxy ix -> proxy w -> Term (bv a) -> Term (bv w) Source #

bvextendTerm :: forall bv a n w proxy. (SupportedPrim (bv a), SupportedPrim (bv w), KnownNat a, KnownNat n, KnownNat w, BVExtend (bv a) n (bv w)) => Bool -> proxy n -> Term (bv a) -> Term (bv w) Source #

bvsignExtendTerm :: forall bv a n w proxy. (SupportedPrim (bv a), SupportedPrim (bv w), KnownNat a, KnownNat n, KnownNat w, BVExtend (bv a) n (bv w)) => proxy n -> Term (bv a) -> Term (bv w) Source #

bvzeroExtendTerm :: forall bv a n w proxy. (SupportedPrim (bv a), SupportedPrim (bv w), KnownNat a, KnownNat n, KnownNat w, BVExtend (bv a) n (bv w)) => proxy n -> Term (bv a) -> Term (bv w) Source #