This module provides an abstract representation of the SMT-LIB language. The implementation is based on the SMT-LIB Standard 2.6 (http://smtlib.cs.uiowa.edu/papers/smt-lib-reference-v2.6-r2017-07-18.pdf) and covers most parts of the language description.
Author: Jan Tikovsky
Version: December 2017
Representation of an SMT-LIB script
Constructors:
SMTLib
:: [Command] -> SMTLib
Type synonym: Symbol = String
Type synonym: Ident = String
Type synonym: Numeral = Int
Constructors:
KW
:: Symbol -> Keyword
S-expressions
Constructors:
Num
:: Numeral -> SpecConstant
Dec
:: Float -> SpecConstant
Str
:: String -> SpecConstant
Constructors:
SEConst
:: SpecConstant -> SExpr
SESym
:: Symbol -> SExpr
SEKW
:: Keyword -> SExpr
SEList
:: [SExpr] -> SExpr
Sorts
Constructors:
Attributes
Constructors:
AVConst
:: SpecConstant -> AttrValue
AVSym
:: Symbol -> AttrValue
AVSExpr
:: [SExpr] -> AttrValue
Constructors:
Terms
Constructors:
Constructors:
Constructors:
Constructors:
TConst
:: SpecConstant -> Term
TComb
:: QIdent -> [Term] -> Term
Let
:: [(Symbol,Term)] -> Term -> Term
Forall
:: [SortedVar] -> Term -> Term
Exists
:: [SortedVar] -> Term -> Term
Match
:: Term -> [(Pattern,Term)] -> Term
Annot
:: Term -> [Attribute] -> Term
Theories
Constructors:
Constructors:
NUMERAL
:: MetaSpecConstant
DECIMAL
:: MetaSpecConstant
STRING
:: MetaSpecConstant
Constructors:
Spec
:: SpecConstant -> Sort -> [Attribute] -> FunSymDecl
Meta
:: MetaSpecConstant -> Sort -> [Attribute] -> FunSymDecl
Ident
:: Ident -> [Sort] -> [Attribute] -> FunSymDecl
Constructors:
ParFunSymDecl
:: FunSymDecl -> [Symbol] -> Ident -> [Sort] -> [Attribute] -> ParFunSymDecl
Constructors:
TASorts
:: [SortSymDecl] -> TheoryAttr
TAFuns
:: [ParFunSymDecl] -> TheoryAttr
TASortsDesc
:: String -> TheoryAttr
TAFunsDesc
:: String -> TheoryAttr
TADefinition
:: String -> TheoryAttr
TAValues
:: String -> TheoryAttr
TANotes
:: String -> TheoryAttr
TA
:: Attribute -> TheoryAttr
Constructors:
Theory
:: Symbol -> [TheoryAttr] -> Theory
Info flags
Constructors:
AllStatistics
:: InfoFlag
AssertionStackLevels
:: InfoFlag
Authors
:: InfoFlag
ErrorBehavior
:: InfoFlag
Name
:: InfoFlag
ReasonUnknown
:: InfoFlag
Version
:: InfoFlag
IFKW
:: Keyword -> InfoFlag
Command options
Constructors:
DiagnosticOutput
:: String -> Option
GlobalDecls
:: Bool -> Option
Interactive
:: Bool -> Option
PrintSuccess
:: Bool -> Option
ProduceAssertions
:: Bool -> Option
ProduceAssign
:: Bool -> Option
ProduceModels
:: Bool -> Option
ProduceProofs
:: Bool -> Option
ProduceUnsatAssump
:: Bool -> Option
ProduceUnsatCores
:: Bool -> Option
RandomSeed
:: Numeral -> Option
RegularOutput
:: String -> Option
ReproducibleResLimit
:: Numeral -> Option
Verbosity
:: Numeral -> Option
OptAttr
:: Attribute -> Option
Commands
Constructors:
Constructors:
Constructors:
sort declaration for datatypes
Constructors:
datatype declaration
Constructors:
Constructors:
Constructors:
Assert
:: Term -> Command
CheckSat
:: Command
CheckSatAssuming
:: [PropLit] -> Command
DeclareConst
:: Symbol -> Sort -> Command
DeclareDatatype
:: Symbol -> DTDecl -> Command
DeclareDatatypes
:: [(SortDecl,DTDecl)] -> Command
DeclareFun
:: Symbol -> [Sort] -> Sort -> Command
DeclareSort
:: Symbol -> Numeral -> Command
DefineFun
:: FunDef -> Command
DefineFunRec
:: FunDef -> Command
DefineFunsRec
:: [(FunDec,Term)] -> Command
DefineSort
:: Symbol -> [Symbol] -> Sort -> Command
Echo
:: String -> Command
Exit
:: Command
GetAssertions
:: Command
GetAssignment
:: Command
GetInfo
:: InfoFlag -> Command
GetModel
:: Command
GetOption
:: Option -> Command
GetProof
:: Command
GetUnsatAssumptions
:: Command
GetUnsatCore
:: Command
GetValue
:: [Term] -> Command
Pop
:: Numeral -> Command
Push
:: Numeral -> Command
Reset
:: Command
ResetAssertions
:: Command
SetInfo
:: Attribute -> Command
SetLogic
:: Logic -> Command
SetOption
:: Option -> Command
Comment
:: String -> Command
Logics provided by the SMT-LIB Standard
Explanation of the naming conventions:
see http://smtlib.cs.uiowa.edu/logics.shtml for more details
Constructors:
ALL
:: Logic
AUFLIA
:: Logic
AUFLIRA
:: Logic
AUFNIRA
:: Logic
LIA
:: Logic
LRA
:: Logic
QFABV
:: Logic
QFAUFBV
:: Logic
QFAUFLIA
:: Logic
QFAX
:: Logic
QFBV
:: Logic
QFIDL
:: Logic
QFLIA
:: Logic
QFLRA
:: Logic
QFNIA
:: Logic
QFNRA
:: Logic
QFRDL
:: Logic
QFUF
:: Logic
QFUFBV
:: Logic
QFUFIDL
:: Logic
QFUFLIA
:: Logic
QFUFLRA
:: Logic
QFUFNRA
:: Logic
UFLRA
:: Logic
UFNIA
:: Logic
Command responses
Constructors:
ImmediateExit
:: ErrorBehavior
ContinuedExecution
:: ErrorBehavior
Constructors:
Memout
:: ReasonUnknown
Incomplete
:: ReasonUnknown
SEReason
:: SExpr -> ReasonUnknown
Constructors:
Constructors:
AssertionStackLevelsRsp
:: Numeral -> InfoRsp
AuthorsRsp
:: String -> InfoRsp
ErrorBehaviorRsp
:: ErrorBehavior -> InfoRsp
NameRsp
:: String -> InfoRsp
ReasonUnknownRsp
:: ReasonUnknown -> InfoRsp
VersionRsp
:: String -> InfoRsp
AttrRsp
:: Attribute -> InfoRsp
Type synonym: ValuationPair = (Term,Term)
Type synonym: TValuationPair = (Symbol,Bool)
Constructors:
SuccessRsp
:: CmdResponse
UnsupportedRsp
:: CmdResponse
ErrorRsp
:: String -> CmdResponse
CheckSatRsp
:: CheckSat -> CmdResponse
EchoRsp
:: String -> CmdResponse
GetAssertionsRsp
:: [Term] -> CmdResponse
GetAssignmentRsp
:: [TValuationPair] -> CmdResponse
GetInfoRsp
:: [InfoRsp] -> CmdResponse
GetModelRsp
:: [ModelRsp] -> CmdResponse
GetOptionRsp
:: AttrValue -> CmdResponse
GetProofRsp
:: SExpr -> CmdResponse
GetUnsatAssumptionsRsp
:: [Symbol] -> CmdResponse
GetUnsatCoreRsp
:: [Symbol] -> CmdResponse
GetValueRsp
:: [ValuationPair] -> CmdResponse
Constructors:
Sat
:: CheckSat
Unsat
:: CheckSat
Unknown
:: CheckSat