{-# OPTIONS_GHC -Wall -Werror #-}
module Data.SBV.Trans (
  
  
    SBool
  
  , sTrue, sFalse, sNot, (.&&), (.||), (.<+>), (.~&), (.~|), (.=>), (.<=>), fromBool, oneIf
  
  , sAnd, sOr, sAny, sAll
  
  
  , SWord8, SWord16, SWord32, SWord64, SWord, WordN
  
  , SInt8, SInt16, SInt32, SInt64, SInt, IntN
  
  , BVIsNonZero, FromSized, ToSized, fromSized, toSized
  
  , SInteger
  
  , SFloat, SDouble, SFloatingPoint
  
  , SReal, AlgReal, sRealToSInteger
  
  , SChar, SString
  
  , SList
  
  , SymArray(newArray_, newArray, readArray, writeArray, mergeArrays), SArray
  
  
  , sBool, sWord8, sWord16, sWord32, sWord64, sWord, sInt8, sInt16, sInt32, sInt64, sInt, sInteger, sReal, sFloat, sDouble, sChar, sString, sList
  
  , sBools, sWord8s, sWord16s, sWord32s, sWord64s, sWords, sInt8s, sInt16s, sInt32s, sInt64s, sInts, sIntegers, sReals, sFloats, sDoubles, sChars, sStrings, sLists
  
  , EqSymbolic(..), OrdSymbolic(..), Equality(..)
  
  , Mergeable(..), ite, iteLazy
  
  , SIntegral
  
  , SDivisible(..)
  
  
  , sFromIntegral
  
  , sShiftLeft, sShiftRight, sRotateLeft, sBarrelRotateLeft, sRotateRight, sBarrelRotateRight, sSignedShiftArithRight
  
  , SFiniteBits(..)
  
  , bvExtract, (#), zeroExtend, signExtend, bvDrop, bvTake
  
  , (.^)
  
  , IEEEFloating(..), RoundingMode(..), SRoundingMode, nan, infinity, sNaN, sInfinity
  
  , sRoundNearestTiesToEven, sRoundNearestTiesToAway, sRoundTowardPositive, sRoundTowardNegative, sRoundTowardZero, sRNE, sRNA, sRTP, sRTN, sRTZ
  
  , IEEEFloatConvertible(..)
  
  , sFloatAsSWord32,       sWord32AsSFloat
  , sDoubleAsSWord64,      sWord64AsSDouble
  , sFloatingPointAsSWord, sWordAsSFloatingPoint
  
  , blastSFloat
  , blastSDouble
  , blastSFloatingPoint
  
  , mkSymbolicEnumeration
  
  , mkUninterpretedSort, Uninterpreted(..), addAxiom
  
  , Predicate, Goal, MProvable(..), Provable, proveWithAll, proveWithAny , satWithAll
  , proveConcurrentWithAny, proveConcurrentWithAll, satConcurrentWithAny, satConcurrentWithAll
  , satWithAny, generateSMTBenchmark
  , solve
  
  
  , constrain, softConstrain
  
  
  , namedConstraint, constrainWithAttribute
  
  
  , pbAtMost, pbAtLeast, pbExactly, pbLe, pbGe, pbEq, pbMutexed, pbStronglyMutexed
  
  , sAssert, isSafe, SExecutable(..)
  
  , sbvQuickCheck
  
  
  , OptimizeStyle(..)
  
  , Objective(..), Metric(..)
  
  , assertWithPenalty , Penalty(..)
  
  
  , ExtCV(..), GeneralizedCV(..)
  
  
  , ThmResult(..), SatResult(..), AllSatResult(..), SafeResult(..), OptimizeResult(..), SMTResult(..), SMTReasonUnknown(..)
  
  , observe
  
  , SatModel(..), Modelable(..), displayModels, extractModels
  , getModelDictionaries, getModelValues, getModelUninterpretedValues
  
  , SMTConfig(..), Timing(..), SMTLibVersion(..), Solver(..), SMTSolver(..)
  
  
  , boolector, bitwuzla, cvc4, cvc5, dReal, yices, z3, mathSAT, abc
  
  , defaultSolverConfig, defaultSMTCfg, sbvCheckSolverInstallation, getAvailableSolvers
  , setLogic, Logic(..), setOption, setInfo, setTimeOut
  
  , SBVException(..)
  
  , SBV, HasKind(..), Kind(..), SymVal(..)
  , MonadSymbolic(..), Symbolic, SymbolicT, label, output, runSMT, runSMTWith
  
  , module Data.Bits
  , module Data.Word
  , module Data.Int
  , module Data.Ratio
  ) where
import Data.SBV.Core.AlgReals
import Data.SBV.Core.Data
import Data.SBV.Core.Kind
import Data.SBV.Core.Model
import Data.SBV.Core.Floating
import Data.SBV.Core.Sized
import Data.SBV.Core.Symbolic
import Data.SBV.Provers.Prover
import Data.SBV.Client
import Data.SBV.Client.BaseIO  (FromSized, ToSized, fromSized, toSized)
import Data.SBV.Utils.TDiff   (Timing(..))
import Data.Bits
import Data.Int
import Data.Ratio
import Data.Word
import Data.SBV.SMT.Utils (SBVException(..))
import Data.SBV.Control.Types (SMTReasonUnknown(..), Logic(..))