hasmtlib-2.3.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.

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

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

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

Defined in Language.Hasmtlib.Orderable

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

Defined in Language.Hasmtlib.Orderable

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

Defined in Language.Hasmtlib.Orderable

Methods

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

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

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

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

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

Defined in Language.Hasmtlib.Orderable

Methods

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

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

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

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

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

Defined in Language.Hasmtlib.Orderable

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

Defined in Language.Hasmtlib.Orderable

Methods

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

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

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

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

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

Defined in Language.Hasmtlib.Orderable

Methods

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

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

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

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

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

Orderable (Expr 'StringSort) Source #

Lexicographic ordering for (<?) and reflexive closure of lexicographic ordering for Orderable

Instance details

Defined in Language.Hasmtlib.Orderable

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

Defined in Language.Hasmtlib.Orderable

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

Defined in Language.Hasmtlib.Orderable

Methods

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

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

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

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

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

Defined in Language.Hasmtlib.Orderable

Methods

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

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

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

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

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

Defined in Language.Hasmtlib.Orderable

Methods

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

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

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

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

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

Defined in Language.Hasmtlib.Orderable

Methods

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

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

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

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

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

Defined in Language.Hasmtlib.Orderable

Methods

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

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

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

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

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

Defined in Language.Hasmtlib.Orderable

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 #

(<?) :: (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 #

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

Defined in Language.Hasmtlib.Orderable

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 #

(<?) :: (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 #

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

Defined in Language.Hasmtlib.Orderable

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 #

(<?) :: (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 #

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

Defined in Language.Hasmtlib.Orderable

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 #

(<?) :: (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 #

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 #