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

Language.Hasmtlib.Equatable

Synopsis

Documentation

class Equatable a where Source #

Test two as on equality as SMT-Expression.

You can derive an instance of this class if your type is Generic.

    x <- var @RealType
    y <- var
    assert $ y === x && not (y /== x)

Minimal complete definition

Nothing

Methods

(===) :: a -> a -> Expr BoolSort infix 4 Source #

Test whether two values are equal in the SMT-Problem.

default (===) :: (Generic a, GEquatable (Rep a)) => a -> a -> Expr BoolSort Source #

(/==) :: a -> a -> Expr BoolSort infix 4 Source #

Test whether two values are not equal in the SMT-Problem.

Instances

Instances details
Equatable Void Source # 
Instance details

Defined in Language.Hasmtlib.Equatable

Equatable Int16 Source # 
Instance details

Defined in Language.Hasmtlib.Equatable

Equatable Int32 Source # 
Instance details

Defined in Language.Hasmtlib.Equatable

Equatable Int64 Source # 
Instance details

Defined in Language.Hasmtlib.Equatable

Equatable Int8 Source # 
Instance details

Defined in Language.Hasmtlib.Equatable

Equatable Word16 Source # 
Instance details

Defined in Language.Hasmtlib.Equatable

Equatable Word32 Source # 
Instance details

Defined in Language.Hasmtlib.Equatable

Equatable Word64 Source # 
Instance details

Defined in Language.Hasmtlib.Equatable

Equatable Word8 Source # 
Instance details

Defined in Language.Hasmtlib.Equatable

Equatable Ordering Source # 
Instance details

Defined in Language.Hasmtlib.Equatable

Equatable Integer Source # 
Instance details

Defined in Language.Hasmtlib.Equatable

Equatable Natural Source # 
Instance details

Defined in Language.Hasmtlib.Equatable

Equatable () Source # 
Instance details

Defined in Language.Hasmtlib.Equatable

Methods

(===) :: () -> () -> Expr 'BoolSort Source #

(/==) :: () -> () -> Expr 'BoolSort Source #

Equatable Bool Source # 
Instance details

Defined in Language.Hasmtlib.Equatable

Equatable Char Source # 
Instance details

Defined in Language.Hasmtlib.Equatable

Equatable Double Source # 
Instance details

Defined in Language.Hasmtlib.Equatable

Equatable Float Source # 
Instance details

Defined in Language.Hasmtlib.Equatable

Equatable Int Source # 
Instance details

Defined in Language.Hasmtlib.Equatable

Equatable Word Source # 
Instance details

Defined in Language.Hasmtlib.Equatable

Equatable a => Equatable (Identity a) Source # 
Instance details

Defined in Language.Hasmtlib.Equatable

Equatable a => Equatable (First a) Source # 
Instance details

Defined in Language.Hasmtlib.Equatable

Methods

(===) :: First a -> First a -> Expr 'BoolSort Source #

(/==) :: First a -> First a -> Expr 'BoolSort Source #

Equatable a => Equatable (Last a) Source # 
Instance details

Defined in Language.Hasmtlib.Equatable

Methods

(===) :: Last a -> Last a -> Expr 'BoolSort Source #

(/==) :: Last a -> Last a -> Expr 'BoolSort Source #

Equatable a => Equatable (Dual a) Source # 
Instance details

Defined in Language.Hasmtlib.Equatable

Methods

(===) :: Dual a -> Dual a -> Expr 'BoolSort Source #

(/==) :: Dual a -> Dual a -> Expr 'BoolSort Source #

Equatable a => Equatable (Product a) Source # 
Instance details

Defined in Language.Hasmtlib.Equatable

Equatable a => Equatable (Sum a) Source # 
Instance details

Defined in Language.Hasmtlib.Equatable

Methods

(===) :: Sum a -> Sum a -> Expr 'BoolSort Source #

(/==) :: Sum a -> Sum a -> Expr 'BoolSort Source #

Equatable a => Equatable (Tree a) Source # 
Instance details

Defined in Language.Hasmtlib.Equatable

Methods

(===) :: Tree a -> Tree a -> Expr 'BoolSort Source #

(/==) :: Tree a -> Tree a -> Expr 'BoolSort Source #

(KnownSMTSort t, Eq (HaskellType t)) => Equatable (Expr t) Source # 
Instance details

Defined in Language.Hasmtlib.Equatable

Methods

(===) :: Expr t -> Expr t -> Expr 'BoolSort Source #

(/==) :: Expr t -> Expr t -> Expr 'BoolSort Source #

Equatable a => Equatable (Maybe a) Source # 
Instance details

Defined in Language.Hasmtlib.Equatable

Methods

(===) :: Maybe a -> Maybe a -> Expr 'BoolSort Source #

(/==) :: Maybe a -> Maybe a -> Expr 'BoolSort Source #

Equatable a => Equatable [a] Source # 
Instance details

Defined in Language.Hasmtlib.Equatable

Methods

(===) :: [a] -> [a] -> Expr 'BoolSort Source #

(/==) :: [a] -> [a] -> Expr 'BoolSort Source #

(Equatable a, Equatable b) => Equatable (Either a b) Source # 
Instance details

Defined in Language.Hasmtlib.Equatable

Methods

(===) :: Either a b -> Either a b -> Expr 'BoolSort Source #

(/==) :: Either a b -> Either a b -> Expr 'BoolSort Source #

(Equatable a, Equatable b) => Equatable (a, b) Source # 
Instance details

Defined in Language.Hasmtlib.Equatable

Methods

(===) :: (a, b) -> (a, b) -> Expr 'BoolSort Source #

(/==) :: (a, b) -> (a, b) -> Expr 'BoolSort Source #

(Equatable a, Equatable b, Equatable c) => Equatable (a, b, c) Source # 
Instance details

Defined in Language.Hasmtlib.Equatable

Methods

(===) :: (a, b, c) -> (a, b, c) -> Expr 'BoolSort Source #

(/==) :: (a, b, c) -> (a, b, c) -> Expr 'BoolSort Source #

(Equatable a, Equatable b, Equatable c, Equatable d) => Equatable (a, b, c, d) Source # 
Instance details

Defined in Language.Hasmtlib.Equatable

Methods

(===) :: (a, b, c, d) -> (a, b, c, d) -> Expr 'BoolSort Source #

(/==) :: (a, b, c, d) -> (a, b, c, d) -> Expr 'BoolSort Source #

(Equatable a, Equatable b, Equatable c, Equatable d, Equatable e) => Equatable (a, b, c, d, e) Source # 
Instance details

Defined in Language.Hasmtlib.Equatable

Methods

(===) :: (a, b, c, d, e) -> (a, b, c, d, e) -> Expr 'BoolSort Source #

(/==) :: (a, b, c, d, e) -> (a, b, c, d, e) -> Expr 'BoolSort Source #

(Equatable a, Equatable b, Equatable c, Equatable d, Equatable e, Equatable f) => Equatable (a, b, c, d, e, f) Source # 
Instance details

Defined in Language.Hasmtlib.Equatable

Methods

(===) :: (a, b, c, d, e, f) -> (a, b, c, d, e, f) -> Expr 'BoolSort Source #

(/==) :: (a, b, c, d, e, f) -> (a, b, c, d, e, f) -> Expr 'BoolSort Source #

(Equatable a, Equatable b, Equatable c, Equatable d, Equatable e, Equatable f, Equatable g) => Equatable (a, b, c, d, e, f, g) Source # 
Instance details

Defined in Language.Hasmtlib.Equatable

Methods

(===) :: (a, b, c, d, e, f, g) -> (a, b, c, d, e, f, g) -> Expr 'BoolSort Source #

(/==) :: (a, b, c, d, e, f, g) -> (a, b, c, d, e, f, g) -> Expr 'BoolSort Source #

(Equatable a, Equatable b, Equatable c, Equatable d, Equatable e, Equatable f, Equatable g, Equatable h) => Equatable (a, b, c, d, e, f, g, h) Source # 
Instance details

Defined in Language.Hasmtlib.Equatable

Methods

(===) :: (a, b, c, d, e, f, g, h) -> (a, b, c, d, e, f, g, h) -> Expr 'BoolSort Source #

(/==) :: (a, b, c, d, e, f, g, h) -> (a, b, c, d, e, f, g, h) -> Expr 'BoolSort Source #

class GEquatable f where Source #

Methods

(===#) :: f a -> f a -> Expr BoolSort Source #

Instances

Instances details
GEquatable (U1 :: k -> Type) Source # 
Instance details

Defined in Language.Hasmtlib.Equatable

Methods

(===#) :: forall (a :: k0). U1 a -> U1 a -> Expr 'BoolSort Source #

GEquatable (V1 :: k -> Type) Source # 
Instance details

Defined in Language.Hasmtlib.Equatable

Methods

(===#) :: forall (a :: k0). V1 a -> V1 a -> Expr 'BoolSort Source #

(GEquatable f, GEquatable g) => GEquatable (f :*: g :: k -> Type) Source # 
Instance details

Defined in Language.Hasmtlib.Equatable

Methods

(===#) :: forall (a :: k0). (f :*: g) a -> (f :*: g) a -> Expr 'BoolSort Source #

(GEquatable f, GEquatable g) => GEquatable (f :+: g :: k -> Type) Source # 
Instance details

Defined in Language.Hasmtlib.Equatable

Methods

(===#) :: forall (a :: k0). (f :+: g) a -> (f :+: g) a -> Expr 'BoolSort Source #

Equatable a => GEquatable (K1 i a :: k -> Type) Source # 
Instance details

Defined in Language.Hasmtlib.Equatable

Methods

(===#) :: forall (a0 :: k0). K1 i a a0 -> K1 i a a0 -> Expr 'BoolSort Source #

GEquatable f => GEquatable (M1 i c f :: k -> Type) Source # 
Instance details

Defined in Language.Hasmtlib.Equatable

Methods

(===#) :: forall (a :: k0). M1 i c f a -> M1 i c f a -> Expr 'BoolSort Source #