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

Language.Hasmtlib.Type.OMT

Description

This module provides a concrete implementation for MonadOMT with it's state OMT.

Synopsis

SoftFormula

Type

data SoftFormula Source #

An assertion of a booolean expression in OMT that may be weighted.

Constructors

SoftFormula 

Fields

Instances

Instances details
Render SoftFormula Source # 
Instance details

Defined in Language.Hasmtlib.Internal.Render

Lens

Optimization targets

newtype Minimize t Source #

A newtype for numerical expressions that are target of a minimization.

Constructors

Minimize 

Fields

Instances

Instances details
KnownSMTSort t => Render (Minimize t) Source # 
Instance details

Defined in Language.Hasmtlib.Internal.Render

Methods

render :: Minimize t -> Builder Source #

newtype Maximize t Source #

A newtype for numerical expressions that are target of a maximization.

Constructors

Maximize 

Fields

Instances

Instances details
KnownSMTSort t => Render (Maximize t) Source # 
Instance details

Defined in Language.Hasmtlib.Internal.Render

Methods

render :: Maximize t -> Builder Source #

OMT

Type

data OMT Source #

The state of the OMT-problem.

Constructors

OMT 

Fields

Instances

Instances details
Default OMT Source # 
Instance details

Defined in Language.Hasmtlib.Type.OMT

Methods

def :: OMT #

RenderProblem OMT Source # 
Instance details

Defined in Language.Hasmtlib.Internal.Render

Sharing OMT Source # 
Instance details

Defined in Language.Hasmtlib.Type.OMT

Associated Types

type SharingMonad OMT :: (Type -> Type) -> Constraint Source #

StateDebugger OMT Source # 
Instance details

Defined in Language.Hasmtlib.Type.Debugger

MonadSMT OMT m => MonadOMT OMT m Source # 
Instance details

Defined in Language.Hasmtlib.Type.OMT

Methods

minimize :: forall (t :: SMTSort). (KnownSMTSort t, Num (Expr t)) => Expr t -> m () Source #

maximize :: forall (t :: SMTSort). (KnownSMTSort t, Num (Expr t)) => Expr t -> m () Source #

assertSoft :: Expr 'BoolSort -> Maybe Double -> Maybe String -> m () Source #

MonadState OMT m => MonadSMT OMT m Source # 
Instance details

Defined in Language.Hasmtlib.Type.OMT

Methods

smtvar' :: forall (t :: SMTSort). KnownSMTSort t => Proxy t -> m (SMTVar t) Source #

var' :: forall (t :: SMTSort). KnownSMTSort t => Proxy t -> m (Expr t) Source #

assert :: Expr 'BoolSort -> m () Source #

setOption :: SMTOption -> m () Source #

setLogic :: String -> m () Source #

type SharingMonad OMT Source # 
Instance details

Defined in Language.Hasmtlib.Type.OMT

Lens