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

Language.Hasmtlib.Orderable

Synopsis

Documentation

class Equatable a => Orderable a where Source #

Compare two as as SMT-Expression.

x <- var @RealSort
y <- var 
assert $ x >? y
assert $ x === min' 42 100

Minimal complete definition

Nothing

Methods

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

default (<=?) :: (Generic a, GOrderable (Rep a)) => a -> a -> Expr BoolSort Source #

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

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

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

Instances

Instances details
Orderable Void Source # 
Instance details

Defined in Language.Hasmtlib.Orderable

Orderable Int16 Source # 
Instance details

Defined in Language.Hasmtlib.Orderable

Orderable Int32 Source # 
Instance details

Defined in Language.Hasmtlib.Orderable

Orderable Int64 Source # 
Instance details

Defined in Language.Hasmtlib.Orderable

Orderable Int8 Source # 
Instance details

Defined in Language.Hasmtlib.Orderable

Orderable Word16 Source # 
Instance details

Defined in Language.Hasmtlib.Orderable

Orderable Word32 Source # 
Instance details

Defined in Language.Hasmtlib.Orderable

Orderable Word64 Source # 
Instance details

Defined in Language.Hasmtlib.Orderable

Orderable Word8 Source # 
Instance details

Defined in Language.Hasmtlib.Orderable

Orderable Ordering Source # 
Instance details

Defined in Language.Hasmtlib.Orderable

Orderable Integer Source # 
Instance details

Defined in Language.Hasmtlib.Orderable

Orderable Natural Source # 
Instance details

Defined in Language.Hasmtlib.Orderable

Orderable () Source # 
Instance details

Defined in Language.Hasmtlib.Orderable

Methods

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

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

(<?) :: () -> () -> Expr 'BoolSort Source #

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

Orderable Bool Source # 
Instance details

Defined in Language.Hasmtlib.Orderable

Orderable Char Source # 
Instance details

Defined in Language.Hasmtlib.Orderable

Orderable Double Source # 
Instance details

Defined in Language.Hasmtlib.Orderable

Orderable Float Source # 
Instance details

Defined in Language.Hasmtlib.Orderable

Orderable Int Source # 
Instance details

Defined in Language.Hasmtlib.Orderable

Orderable Word Source # 
Instance details

Defined in Language.Hasmtlib.Orderable

KnownNat n => Orderable (Expr ('BvSort n)) Source # 
Instance details

Defined in Language.Hasmtlib.Orderable

Methods

(<=?) :: Expr ('BvSort n) -> Expr ('BvSort n) -> Expr 'BoolSort Source #

(>=?) :: Expr ('BvSort n) -> Expr ('BvSort n) -> Expr 'BoolSort Source #

(<?) :: Expr ('BvSort n) -> Expr ('BvSort n) -> Expr 'BoolSort Source #

(>?) :: Expr ('BvSort n) -> Expr ('BvSort n) -> Expr 'BoolSort Source #

Orderable (Expr 'IntSort) Source # 
Instance details

Defined in Language.Hasmtlib.Orderable

Orderable (Expr 'RealSort) Source # 
Instance details

Defined in Language.Hasmtlib.Orderable

min' :: (Orderable a, Iteable (Expr BoolSort) a) => a -> a -> a Source #

Minimum of two as SMT-Expression.

max' :: (Orderable a, Iteable (Expr BoolSort) a) => a -> a -> a Source #

Maximum of two as SMT-Expression.

class GEquatable f => GOrderable f where Source #

Methods

(<?#) :: f a -> f a -> Expr BoolSort Source #

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

Instances

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

Defined in Language.Hasmtlib.Orderable

Methods

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

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

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

Defined in Language.Hasmtlib.Orderable

Methods

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

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

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

Defined in Language.Hasmtlib.Orderable

Methods

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

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

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

Defined in Language.Hasmtlib.Orderable

Methods

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

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

Orderable a => GOrderable (K1 i a :: k -> Type) Source # 
Instance details

Defined in Language.Hasmtlib.Orderable

Methods

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

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

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

Defined in Language.Hasmtlib.Orderable

Methods

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

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