| Safe Haskell | Safe-Inferred |
|---|---|
| Language | GHC2021 |
Language.Hasmtlib.Type.SMTSort
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 :: KnownNat n => Proxy n -> SSMTSort (BvSort n)
- SArraySort :: (KnownSMTSort k, KnownSMTSort v, Ord (HaskellType k), Eq (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
- data SomeSMTSort cs f where
- SomeSMTSort :: forall cs f (t :: SMTSort). AllC cs t => f t -> SomeSMTSort cs f
Documentation
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 |
| StringSort | Sort of String |
Instances
| GNFData Expr Source # | |
Defined in Language.Hasmtlib.Type.Expr | |
| GCompare SSMTSort Source # | |
| GEq Value Source # | |
| GEq SSMTSort Source # | |
| Uniplate1 Expr '[KnownSMTSort] Source # | Caution for quantified expressions: |
Defined in Language.Hasmtlib.Type.Expr Methods 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 #
Equations
| HaskellType IntSort = Integer | |
| HaskellType RealSort = Double | |
| HaskellType BoolSort = Bool | |
| HaskellType (BvSort n) = Bitvec n | |
| HaskellType (ArraySort k v) = ConstArray (HaskellType k) (HaskellType v) | |
| HaskellType StringSort = Text |
data SSMTSort (t :: SMTSort) where Source #
Singleton for SMTSort.
Constructors
| SIntSort :: SSMTSort IntSort | |
| SRealSort :: SSMTSort RealSort | |
| SBoolSort :: SSMTSort BoolSort | |
| SBvSort :: KnownNat n => Proxy n -> SSMTSort (BvSort n) | |
| SArraySort :: (KnownSMTSort k, KnownSMTSort v, Ord (HaskellType k), Eq (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 Methods | |
| Uniplate1 Expr '[KnownSMTSort] Source # | Caution for quantified expressions: |
Defined in Language.Hasmtlib.Type.Expr Methods 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 # | |
| KnownNat n => KnownSMTSort ('BvSort n) Source # | |
| (KnownSMTSort k, KnownSMTSort v, Ord (HaskellType k), Eq (HaskellType v)) => KnownSMTSort ('ArraySort k v) Source # | |
sortSing' :: forall prxy t. KnownSMTSort t => prxy t -> SSMTSort t Source #
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 |
Instances
| (forall (t :: SMTSort). Show (f t)) => Show (SomeSMTSort cs f) Source # | |
Defined in Language.Hasmtlib.Type.SMTSort Methods showsPrec :: Int -> SomeSMTSort cs f -> ShowS # show :: SomeSMTSort cs f -> String # showList :: [SomeSMTSort cs f] -> ShowS # | |