Personal tools

User manual/formulacheck

From MCRL2

Jump to: navigation, search

Check a boolean formula.

Contents

Synopsis

formulacheck [OPTION]... [INFILE]

Short description

The formulacheck tool checks the boolean formula (an mCRL2 data expression of sort Bool) in INFILE. If INFILE is not present, stdin is used.

The tool indicates whether or not the formula is a tautology or a contradiction.

In some cases, the tool is unable to determine whether a formula is a tautology or a contradiction. The option --verbose gives insight into what the prover used by the tool is doing and can be used to see if rewrite rules have to be added to the specification in order to enable the prover to determine that certain formulas are indeed tautologies or contradictions.

A BDD based prover is used to the check the formula. In some cases it may be useful to use an SMT solver to assist the prover. The SMT solver can further reduce BDDs by removing inconsistent paths. A specific SMT solver can be chosen using the option --smt-solver=SOLVER. Either the SMT solver Ario or CVC3 can be used. To use one of these solvers, the directory containing the corresponding executable must be in the path.

Example of use

The input file typically contains a single expression such as

 3+3<4

When formulacheck would be applied to this file it would respond with

'3 + 3 < 4': Contradiction

If the input formula holds, the following output would be

'#[4, 5, 6] > 2': Tautology

If the input contains an expression which cannot be rewritten to true or false the response is

'[1, 4, 7]': Undeterminable

It is not possible to use formulacheck for open terms. For this the interactive tool mcrl2i is more convenient.

Options

OPTION can be any of the following:

-c, --counter-example
display a valuation for which the formula does not hold, in case the current formula is neither a contradiction nor a tautology
-o, --induction
apply induction on lists
-pPREFIX, --print-dot=PREFIX
save a .dot file of the resulting BDD if it is impossible to determine whether a formula is a contradiction or a tautology; PREFIX will be used as prefix of the output files
-rNAME, --rewrite-strategy=NAME
use rewrite strategy NAME
-sSPECFILE, --spec=SPECFILE
check the formula against the data types from the LPS or PBES in SPECFILE
-tLIMIT, --time-limit=LIMIT
spend at most LIMIT seconds on proving the formula
-w, --witness
display a valuation for which the formula holds, in case the current formula is neither a contradiction nor a tautology
-zSOLVER, --smt-solver=SOLVER
use SOLVER to remove inconsistent paths from the internally used BDDs:
  • 'ario': the SMT solver Ario
  • 'cvc': the SMT solver CVC3
by default, no path elimination is applied

Standard options:

-q, --quiet
do not display warning messages
-v, --verbose
display short intermediate messages
-d, --debug
display detailed intermediate messages
-h, --help
display help information
--version
display version information

Author

Written by Luc Engelen.

Bug reporting

Report bugs at our issue tracking system.

This page was last modified on 24 January 2010, at 19:37. This page has been accessed 18,151 times.
Copyright © 2005-2012 Technische Universiteit Eindhoven.
Powered by MediaWiki