hasmtlib-2.1.0: A monad for interfacing with external SMT solvers
Safe HaskellSafe-Inferred
LanguageGHC2021

Language.Hasmtlib.Type.SMTSort

Synopsis

Documentation

data SMTSort Source #

Sorts in SMTLib2 - used as promoted type (data-kind).

Constructors

BoolSort

Sort of Bool

IntSort

Sort of Int

RealSort

Sort of Real

BvSort Nat

Sort of BitVec with length n

ArraySort SMTSort SMTSort

Sort of Array with indices k and values v

Instances

Instances details
GCompare SSMTSort Source # 
Instance details

Defined in Language.Hasmtlib.Type.SMTSort

Methods

gcompare :: forall (a :: k) (b :: k). SSMTSort a -> SSMTSort b -> GOrdering a b #

GEq SSMTSort Source # 
Instance details

Defined in Language.Hasmtlib.Type.SMTSort

Methods

geq :: forall (a :: k) (b :: k). SSMTSort a -> SSMTSort b -> Maybe (a :~: b) #

type family HaskellType (t :: SMTSort) = (r :: Type) | r -> t where ... Source #

Injective type-family that computes the Haskell Type of an SMTSort.

data SSMTSort (t :: SMTSort) where Source #

Singleton for SMTSort.

Instances

Instances details
GCompare SSMTSort Source # 
Instance details

Defined in Language.Hasmtlib.Type.SMTSort

Methods

gcompare :: forall (a :: k) (b :: k). SSMTSort a -> SSMTSort b -> GOrdering a b #

GEq SSMTSort Source # 
Instance details

Defined in Language.Hasmtlib.Type.SMTSort

Methods

geq :: forall (a :: k) (b :: k). SSMTSort a -> SSMTSort b -> Maybe (a :~: b) #

Show (SSMTSort t) Source # 
Instance details

Defined in Language.Hasmtlib.Type.SMTSort

Methods

showsPrec :: Int -> SSMTSort t -> ShowS #

show :: SSMTSort t -> String #

showList :: [SSMTSort t] -> ShowS #

Eq (SSMTSort t) Source # 
Instance details

Defined in Language.Hasmtlib.Type.SMTSort

Methods

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

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

Ord (SSMTSort t) Source # 
Instance details

Defined in Language.Hasmtlib.Type.SMTSort

Methods

compare :: SSMTSort t -> SSMTSort t -> Ordering #

(<) :: SSMTSort t -> SSMTSort t -> Bool #

(<=) :: SSMTSort t -> SSMTSort t -> Bool #

(>) :: SSMTSort t -> SSMTSort t -> Bool #

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

max :: SSMTSort t -> SSMTSort t -> SSMTSort t #

min :: SSMTSort t -> SSMTSort t -> SSMTSort t #

Render (SSMTSort t) Source # 
Instance details

Defined in Language.Hasmtlib.Type.SMTSort

Methods

render :: SSMTSort t -> Builder Source #

class KnownSMTSort (t :: SMTSort) where Source #

Compute singleton SSMTSort from it's promoted type SMTSort.

sortSing' :: forall prxy t. KnownSMTSort t => prxy t -> SSMTSort t Source #

Wrapper for sortSing which takes a Proxy

type family AllC cs k :: Constraint where ... Source #

AllC ensures that a list of constraints is applied to a poly-kinded Type k

AllC '[]       k = ()
AllC (c ': cs) k = (c k, AllC cs k)

Equations

AllC '[] k = () 
AllC (c ': cs) k = (c k, AllC cs k) 

data SomeSMTSort cs f where Source #

An existential wrapper that hides some SMTSort and a list of Constraints holding for it.

Constructors

SomeSMTSort :: forall cs f (t :: SMTSort). AllC cs t => f t -> SomeSMTSort cs f