blarney-0.1.0.0
Copyright(c) Alexandre Joannou 2020-2021
LicenseMIT
Stabilityexperimental
Safe HaskellSafe-Inferred
LanguageGHC2021

Blarney.Backend.SMT

Description

Convert Blarney Netlist to SMT scripts.

Synopsis

Documentation

data VerifyDepth Source #

Type to control depth of verification

Constructors

Range Int Int

Span depths between both Int arguments

IncreaseFrom Int

Span all depths increasingly starting from the Int argument

Instances

Instances details
Show VerifyDepth # 
Instance details

Defined in Blarney.Backend.SMT

fixedDepth :: Int -> VerifyDepth Source #

Helper function to construct a VerifyDepth describing a fixed unique depth n, i.e. `Range n n`

data VerifyMode Source #

Type to specify the kind of verification desired

Constructors

Bounded VerifyDepth

property holds up to a certain depth

Induction VerifyDepth UseRestrictedStates

property holds by induction

data UserConf Source #

Configuration type for interaction with a human user

Constructors

UserConf 

Fields

dfltUserConf :: UserConf Source #

Default UserConf: dfltUserConf = UserConf { userConfInteractive = False , userConfIncreasePeriod = 4 }

data VerifyConf Source #

Configuration type for a verification session

Constructors

VerifyConf 

Fields

dfltVerifyConf :: VerifyConf Source #

Default VerifyConf: dfltVerifyConf = VerifyConf { verifyConfMode = Bounded (Range 1 1) , verifyConfSolverCmd = ("z3", ["-in"]) , verifyConfUser = dfltUserConf , verifyConfVerbosity = 1 }

genSMTScript Source #

Arguments

:: VerifyConf

configuration for the verification

-> Netlist

blarney netlist

-> String

script name

-> String

output directory

-> IO () 

Convert given blarney Netlist to an SMT script

verifyWithSMT Source #

Arguments

:: VerifyConf

configuration for the verification

-> Netlist

blarney property

-> IO () 

Verify given blarney Netlist predicate using an SMT solver