This module provides some goodies and utility functions for SMT-LIB.
Author: Jan Tikovsky
Version: January 2018
declVars
:: [(String,Sort)] -> [Command]
Declare a list of variables |
tint
:: Int -> Term
Construct SMT-LIB term from given integer |
tfloat
:: Float -> Term
Construct SMT-LIB term from given float |
tchar
:: Char -> Term
Construct SMT-LIB term from given character |
tvar
:: Int -> Term
Construct SMT-LIB term from given variable index |
var
:: String -> Term
Construct SMT-LIB term from a string |
tcomb
:: String -> [Term] -> Term
Construct SMT-LIB constructor term |
qtcomb
:: QIdent -> [Term] -> Term
Construct qualified SMT-LIB constructor term |
forAll
:: [Int] -> [Sort] -> Term -> Term
Construct universally quantified SMT-LIB term |
tneg
:: Term -> Term
Negate given numeral SMT-LIB term |
tabs
:: Term -> Term
Absolute value of an SMT-LIB term |
(+%)
:: Term -> Term -> Term
Add two SMT-LIB terms |
(-%)
:: Term -> Term -> Term
Subtract an SMT-LIB term from another one |
(*%)
:: Term -> Term -> Term
Multiply two SMT-LIB terms |
(/%)
:: Term -> Term -> Term
Divide an SMT-LIB term by another one |
true
:: Term
SMT-LIB term true
|
false
:: Term
SMT-LIB term false
|
(=%)
:: Term -> Term -> Term
Constrain two SMT-LIB terms to be equal |
(/=%)
:: Term -> Term -> Term
Constrain two SMT-LIB terms to be different |
(<%)
:: Term -> Term -> Term
Constrain two SMT-LIB terms with a less-than-relation |
(<=%)
:: Term -> Term -> Term
Constrain two SMT-LIB terms with a less-than-or-equal-relation |
(>%)
:: Term -> Term -> Term
Constrain two SMT-LIB terms with a greater-than-relation |
(>=%)
:: Term -> Term -> Term
Constrain two SMT-LIB terms with a greater-than-or-equal-relation |
tand
:: [Term] -> Term
Combine a list of SMT-LIB terms using a conjunction |
tor
:: [Term] -> Term
Combine a list of SMT-LIB terms using a disjunction |
(==>)
:: Term -> Term -> Term
Logical implication |
tnot
:: Term -> Term
Logical negation of an SMT-LIB term |
scomb
:: String -> [Sort] -> Sort
Construct an SMT-LIB sort |
orderingSort
:: Sort
Representation of Ordering type as SMT-LIB sort |
boolSort
:: Sort
Representation of Bool type as SMT-LIB sort |
intSort
:: Sort
Representation of Int type as SMT-LIB sort |
floatSort
:: Sort
Representation of Float type as SMT-LIB sort |
funSC
:: [Sort] -> Sort
Representation of -> type constructor as SMT-LIB sort constructor |
nop
:: Command
Generate a nop
SMT-LIB command
|
assert
:: [Term] -> Command
Generate an assert
SMT-LIB command
|
unqual
:: QIdent -> String
Get the unqualified identifier of a qualified SMT-LIB identifier |
isDeclData
:: Command -> Bool
Is given SMT-LIB command a declaration of an algebraic data type |
isEcho
:: Command -> Bool
Is given SMT-LIB command an Echo |
echo
:: String -> Command
Smart constructor for the Echo SMT-LIB command marking every Echo command with an initial @ character which is necessary to recognize Echos during parsing |
comment
:: String -> Command
Smart constructor to generate a comment in an SMT-LIB script |
var2SMT
:: Int -> String
Transform a FlatCurry variable index into an SMT-LIB symbol |
Construct SMT-LIB term from a string
|
Construct SMT-LIB constructor term
|
Construct qualified SMT-LIB constructor term
|
Negate given numeral SMT-LIB term
|
Absolute value of an SMT-LIB term
|
Add two SMT-LIB terms
|
Subtract an SMT-LIB term from another one
|
Multiply two SMT-LIB terms
|
Divide an SMT-LIB term by another one
|
SMT-LIB term
|
SMT-LIB term
|
Constrain two SMT-LIB terms to be equal
|
Constrain two SMT-LIB terms to be different
|
Constrain two SMT-LIB terms with a less-than-relation
|
Constrain two SMT-LIB terms with a less-than-or-equal-relation
|
Constrain two SMT-LIB terms with a greater-than-relation
|
Constrain two SMT-LIB terms with a greater-than-or-equal-relation
|
Combine a list of SMT-LIB terms using a conjunction
|
Combine a list of SMT-LIB terms using a disjunction
|
Logical implication
|
Logical negation of an SMT-LIB term
|
Construct an SMT-LIB sort
|
Representation of Ordering type as SMT-LIB sort
|
Representation of Bool type as SMT-LIB sort
|
Representation of Int type as SMT-LIB sort
|
Representation of Float type as SMT-LIB sort
|
Representation of -> type constructor as SMT-LIB sort constructor
|
Generate a
|
Get the unqualified identifier of a qualified SMT-LIB identifier
|
Is given SMT-LIB command a declaration of an algebraic data type |
Smart constructor for the Echo SMT-LIB command marking every Echo command with an initial @ character which is necessary to recognize Echos during parsing
|
Smart constructor to generate a comment in an SMT-LIB script
|
Transform a FlatCurry variable index into an SMT-LIB symbol |