liquid-fixpoint-0.9.6.3.4: Predicate Abstraction-based Horn-Clause/Implication Constraint Solver
Safe HaskellNone
LanguageHaskell98

Language.Fixpoint.Smt.Types

Description

This module contains the types defining an SMTLIB2 interface.

Synopsis

Serialized Representation

Commands

data Command Source #

Types ---------------------------------------------------------------------

Commands issued to SMT engine

Instances

Instances details
Show Command Source # 
Instance details

Defined in Language.Fixpoint.Smt.Types

Eq Command Source # 
Instance details

Defined in Language.Fixpoint.Smt.Types

Methods

(==) :: Command -> Command -> Bool #

(/=) :: Command -> Command -> Bool #

Inputable Command Source # 
Instance details

Defined in Language.Fixpoint.Parse

SMTLIB2 Command Source # 
Instance details

Defined in Language.Fixpoint.Smt.Serialize

PPrint Command Source # 
Instance details

Defined in Language.Fixpoint.Smt.Types

Inputable [Command] Source # 
Instance details

Defined in Language.Fixpoint.Parse

Methods

rr :: String -> [Command] Source #

rr' :: String -> String -> [Command] Source #

Responses

data Response Source #

Responses received from SMT engine

Constructors

Ok 
Sat 
Unsat 
Unknown 
Values [(Symbol, Text)] 
Error !Text 

Instances

Instances details
Show Response Source # 
Instance details

Defined in Language.Fixpoint.Smt.Types

Eq Response Source # 
Instance details

Defined in Language.Fixpoint.Smt.Types

Typeclass for SMTLIB2 conversion

class SMTLIB2 a where Source #

AST Conversion: Types that can be serialized ------------------------------

Methods

smt2 :: a -> SymM Builder Source #

Instances

Instances details
SMTLIB2 Command Source # 
Instance details

Defined in Language.Fixpoint.Smt.Serialize

SMTLIB2 LocSymbol Source # 
Instance details

Defined in Language.Fixpoint.Smt.Serialize

SMTLIB2 Symbol Source # 
Instance details

Defined in Language.Fixpoint.Smt.Serialize

SMTLIB2 Bop Source # 
Instance details

Defined in Language.Fixpoint.Smt.Serialize

Methods

smt2 :: Bop -> SymM Builder Source #

SMTLIB2 Brel Source # 
Instance details

Defined in Language.Fixpoint.Smt.Serialize

Methods

smt2 :: Brel -> SymM Builder Source #

SMTLIB2 Constant Source # 
Instance details

Defined in Language.Fixpoint.Smt.Serialize

SMTLIB2 Expr Source # 
Instance details

Defined in Language.Fixpoint.Smt.Serialize

Methods

smt2 :: Expr -> SymM Builder Source #

SMTLIB2 SymConst Source # 
Instance details

Defined in Language.Fixpoint.Smt.Serialize

SMTLIB2 SmtSort Source # 
Instance details

Defined in Language.Fixpoint.Smt.Theories

SMTLIB2 Int Source # 
Instance details

Defined in Language.Fixpoint.Smt.Serialize

Methods

smt2 :: Int -> SymM Builder Source #

SMTLIB2 (Triggered Expr) Source # 
Instance details

Defined in Language.Fixpoint.Smt.Serialize

SMTLIB2 (Symbol, Expr) Source # 
Instance details

Defined in Language.Fixpoint.Smt.Serialize

Methods

smt2 :: (Symbol, Expr) -> SymM Builder Source #

SMTLIB2 (Symbol, Sort) Source # 
Instance details

Defined in Language.Fixpoint.Smt.Serialize

Methods

smt2 :: (Symbol, Sort) -> SymM Builder Source #

SMTLIB2 Process Context

data Context Source #

Additional information around the SMT solver backend

Constructors

Ctx 

Fields

SMT monad

type SmtM = StateT Context IO Source #

SMT monad, used to communicate with the SMT solver backend. The SymM monad embeds into it, as the symbolic state has to be threaded through for gnerating applys and other function sort symbols.

catchSMT :: Exception e => SmtM a -> (e -> IO a) -> SmtM a Source #

bracketSMT :: SmtM a -> (a -> IO b) -> (a -> SmtM c) -> SmtM c Source #