{-# LANGUAGE PatternSynonyms #-}
{-# OPTIONS_GHC -Wno-missing-import-lists #-}
module Grisette.Internal.IR.SymPrim
(
UnaryOp (..),
BinaryOp (..),
TernaryOp (..),
Term (..),
showUntyped,
withSymbolSupported,
SomeTypedSymbol (..),
someTypedSymbol,
evaluateTerm,
introSupportedPrimConstraint,
SomeTerm (..),
SupportedPrim (..),
castTerm,
identity,
identityWithTypeRep,
pformat,
constructUnary,
constructBinary,
constructTernary,
conTerm,
symTerm,
ssymTerm,
isymTerm,
sinfosymTerm,
iinfosymTerm,
termSize,
termsSize,
extractSymbolicsTerm,
trueTerm,
falseTerm,
pattern BoolConTerm,
pattern TrueTerm,
pattern FalseTerm,
pattern BoolTerm,
pevalNotTerm,
pevalEqvTerm,
pevalNotEqvTerm,
pevalOrTerm,
pevalAndTerm,
pevalITETerm,
pevalImplyTerm,
pevalXorTerm,
unaryUnfoldOnce,
binaryUnfoldOnce,
pattern UnaryTermPatt,
pattern BinaryTermPatt,
pattern TernaryTermPatt,
PartialFun,
PartialRuleUnary,
TotalRuleUnary,
PartialRuleBinary,
TotalRuleBinary,
totalize,
totalize2,
UnaryPartialStrategy (..),
unaryPartial,
BinaryCommPartialStrategy (..),
BinaryPartialStrategy (..),
binaryPartial,
pattern NumConTerm,
pattern NumOrdConTerm,
pevalAddNumTerm,
pevalMinusNumTerm,
pevalUMinusNumTerm,
pevalAbsNumTerm,
pevalSignumNumTerm,
pevalTimesNumTerm,
pevalLtNumTerm,
pevalLeNumTerm,
pevalGtNumTerm,
pevalGeNumTerm,
pevalTabularFunApplyTerm,
pevalGeneralFunApplyTerm,
pevalDivIntegralTerm,
pevalModIntegralTerm,
pevalQuotIntegralTerm,
pevalRemIntegralTerm,
)
where
import Grisette.IR.SymPrim.Data.Prim.Helpers
( pattern BinaryTermPatt,
pattern TernaryTermPatt,
pattern UnaryTermPatt,
)
import Grisette.IR.SymPrim.Data.Prim.InternedTerm.InternedCtors
( conTerm,
constructBinary,
constructTernary,
constructUnary,
iinfosymTerm,
isymTerm,
sinfosymTerm,
ssymTerm,
symTerm,
)
import Grisette.IR.SymPrim.Data.Prim.InternedTerm.SomeTerm
( SomeTerm (..),
)
import Grisette.IR.SymPrim.Data.Prim.InternedTerm.Term
( BinaryOp (..),
SomeTypedSymbol (..),
SupportedPrim (..),
Term (..),
TernaryOp (..),
UnaryOp (..),
showUntyped,
someTypedSymbol,
withSymbolSupported,
)
import Grisette.IR.SymPrim.Data.Prim.InternedTerm.TermUtils
( castTerm,
extractSymbolicsTerm,
identity,
identityWithTypeRep,
introSupportedPrimConstraint,
pformat,
termSize,
termsSize,
)
import Grisette.IR.SymPrim.Data.Prim.Model (evaluateTerm)
import Grisette.IR.SymPrim.Data.Prim.PartialEval.Bool
( falseTerm,
pevalAndTerm,
pevalEqvTerm,
pevalITETerm,
pevalImplyTerm,
pevalNotEqvTerm,
pevalNotTerm,
pevalOrTerm,
pevalXorTerm,
trueTerm,
pattern BoolConTerm,
pattern BoolTerm,
pattern FalseTerm,
pattern TrueTerm,
)
import Grisette.IR.SymPrim.Data.Prim.PartialEval.GeneralFun
( pevalGeneralFunApplyTerm,
)
import Grisette.IR.SymPrim.Data.Prim.PartialEval.Integral
( pevalDivIntegralTerm,
pevalModIntegralTerm,
pevalQuotIntegralTerm,
pevalRemIntegralTerm,
)
import Grisette.IR.SymPrim.Data.Prim.PartialEval.Num
( pevalAbsNumTerm,
pevalAddNumTerm,
pevalGeNumTerm,
pevalGtNumTerm,
pevalLeNumTerm,
pevalLtNumTerm,
pevalMinusNumTerm,
pevalSignumNumTerm,
pevalTimesNumTerm,
pevalUMinusNumTerm,
pattern NumConTerm,
pattern NumOrdConTerm,
)
import Grisette.IR.SymPrim.Data.Prim.PartialEval.PartialEval
( BinaryCommPartialStrategy (..),
BinaryPartialStrategy (..),
PartialFun,
PartialRuleBinary,
PartialRuleUnary,
TotalRuleBinary,
TotalRuleUnary,
UnaryPartialStrategy (..),
binaryPartial,
totalize,
totalize2,
unaryPartial,
)
import Grisette.IR.SymPrim.Data.Prim.PartialEval.TabularFun
( pevalTabularFunApplyTerm,
)
import Grisette.IR.SymPrim.Data.Prim.PartialEval.Unfold
( binaryUnfoldOnce,
unaryUnfoldOnce,
)