Safe Haskell | Safe-Inferred |
---|---|
Language | GHC2021 |
Synopsis
- data SMTSort
- type family HaskellType (t :: SMTSort) = (r :: Type) | r -> t where ...
- data SSMTSort (t :: SMTSort) where
- SIntSort :: SSMTSort IntSort
- SRealSort :: SSMTSort RealSort
- SBoolSort :: SSMTSort BoolSort
- SBvSort :: (KnownBvEnc enc, KnownNat n) => Proxy enc -> Proxy n -> SSMTSort (BvSort enc n)
- SArraySort :: (KnownSMTSort k, KnownSMTSort v, Ord (HaskellType k), Ord (HaskellType v)) => Proxy k -> Proxy v -> SSMTSort (ArraySort k v)
- SStringSort :: SSMTSort StringSort
- class KnownSMTSort (t :: SMTSort) where
- sortSing' :: forall prxy t. KnownSMTSort t => prxy t -> SSMTSort t
- type SomeKnownSMTSort f = Some1 ((~) f) KnownSMTSort
Type
Sorts in SMTLib2 - used as promoted type (data-kind).
BoolSort | Sort of Bool |
IntSort | Sort of Int |
RealSort | Sort of Real |
BvSort BvEnc Nat | Sort of BitVec with type of encoding enc and length n |
ArraySort SMTSort SMTSort | Sort of Array with indices k and values v |
StringSort | Sort of String |
Instances
GNFData Expr Source # | |
Defined in Language.Hasmtlib.Type.Expr | |
GCompare Expr Source # | |
GCompare SSMTSort Source # | |
GCompare Value Source # | |
GEq Expr Source # | |
GEq SSMTSort Source # | |
GEq Value Source # | |
Uniplate1 Expr '[KnownSMTSort] Source # | Caution for quantified expressions: |
Defined in Language.Hasmtlib.Type.Expr uniplate1 :: forall m (b :: k). (Applicative m, AllC '[KnownSMTSort] b) => (forall (a :: k). AllC '[KnownSMTSort] a => Expr a -> m (Expr a)) -> Expr b -> m (Expr b) Source # |
type family HaskellType (t :: SMTSort) = (r :: Type) | r -> t where ... Source #
HaskellType IntSort = Integer | |
HaskellType RealSort = Rational | |
HaskellType BoolSort = Bool | |
HaskellType (BvSort enc n) = Bitvec enc n | |
HaskellType (ArraySort k v) = ConstArray (HaskellType k) (HaskellType v) | |
HaskellType StringSort = Text |
Singleton
data SSMTSort (t :: SMTSort) where Source #
Singleton for SMTSort
.
SIntSort :: SSMTSort IntSort | |
SRealSort :: SSMTSort RealSort | |
SBoolSort :: SSMTSort BoolSort | |
SBvSort :: (KnownBvEnc enc, KnownNat n) => Proxy enc -> Proxy n -> SSMTSort (BvSort enc n) | |
SArraySort :: (KnownSMTSort k, KnownSMTSort v, Ord (HaskellType k), Ord (HaskellType v)) => Proxy k -> Proxy v -> SSMTSort (ArraySort k v) | |
SStringSort :: SSMTSort StringSort |
Instances
GCompare SSMTSort Source # | |
GEq SSMTSort Source # | |
Show (SSMTSort t) Source # | |
Eq (SSMTSort t) Source # | |
Ord (SSMTSort t) Source # | |
Defined in Language.Hasmtlib.Type.SMTSort | |
Render (SSMTSort t) Source # | |
class KnownSMTSort (t :: SMTSort) where Source #
Instances
KnownSMTSort 'BoolSort Source # | |
KnownSMTSort 'IntSort Source # | |
KnownSMTSort 'RealSort Source # | |
KnownSMTSort 'StringSort Source # | |
Defined in Language.Hasmtlib.Type.SMTSort | |
Uniplate1 Expr '[KnownSMTSort] Source # | Caution for quantified expressions: |
Defined in Language.Hasmtlib.Type.Expr uniplate1 :: forall m (b :: k). (Applicative m, AllC '[KnownSMTSort] b) => (forall (a :: k). AllC '[KnownSMTSort] a => Expr a -> m (Expr a)) -> Expr b -> m (Expr b) Source # | |
(KnownSMTSort k, KnownSMTSort v, Ord (HaskellType k), Ord (HaskellType v)) => KnownSMTSort ('ArraySort k v) Source # | |
(KnownBvEnc enc, KnownNat n) => KnownSMTSort ('BvSort enc n) Source # | |
sortSing' :: forall prxy t. KnownSMTSort t => prxy t -> SSMTSort t Source #
Existential
type SomeKnownSMTSort f = Some1 ((~) f) KnownSMTSort Source #
An existential wrapper that hides some known SMTSort
.