hasmtlib-1.2.0: 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.

    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

(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 #

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 #