summaryrefslogtreecommitdiff
path: root/doc/cvc4.1.in
diff options
context:
space:
mode:
authorMorgan Deters <mdeters@gmail.com>2012-07-31 20:40:14 +0000
committerMorgan Deters <mdeters@gmail.com>2012-07-31 20:40:14 +0000
commit24072d4b0f33abbbe1e468e5b62eb25928f7da25 (patch)
tree1ba758d66c407a2d965dd2a43d902996d27e49ec /doc/cvc4.1.in
parent485c03a323911142e460bd0a7c428759496dc631 (diff)
Options merge. This commit:
1. changes the way options are declared (see http://church.cims.nyu.edu/wiki/Options) 2. moves module-specific options enumerations (SimplificationMode, DecisionMode, ArithUnateLemmaMode, etc.) to their own header files, also they are no longer inside the Options:: class namespace. 3. includes many SMT-LIBv2 compliance fixes, especially to (set-option..) and (get-option..) The biggest syntactical changes (outside of adding new options) you'll notice are in accessing and setting options: * to access an option, write (e.g.) options::unconstrainedSimp() instead of Options::current()->unconstrainedSimp. * to determine if an option value was set by the user, check (e.g.) options::unconstrainedSimp.wasSetByUser(). * ensure that you have the option available (you have to #include the right module's options.h file, e.g. #include "theory/uf/options.h" for UF options) *** this point is important. If you access an option and it tells you the option doesn't exist, you aren't #including the appropriate options.h header file *** Note that if you want an option to be directly set (i.e., other than via command-line parsing or SmtEngine::setOption()), you need to mark the option :read-write in its options file (otherwise it's read-only), and you then write (e.g.) options::unconstrainedSimp.set(true). Adding new options is incredibly simple for primitive types (int, unsigned, bool, string, double). For option settings that you need to turn into a member of an enumerated type, you write a custom "handler" for the option---this is no additional work than it was before, and there are many examples to copy from (a good one is stringToSimplificationMode() in src/smt/options_handlers.h). Benefits of the new options system include: 1. changes to options declarations don't require a full-source rebuild (you only have to rebuild those sources that depend on the set of options that changed). 2. lots of sanity checks (that the same option isn't declared twice, that option values are in range for their type, that all options are documented properly, etc.) 3. consistency: Boolean-valued option --foo gets a --no-foo automatically, documentation is generated consistently, the option-parsing matches the documented option name, etc. 4. setting options programmatically via SmtEngine::setOption() is enabled, and behaves the same as command-line equivalents (including checking the value is in range, etc.) 5. the notion of options being "set by the user" is now primitive; you can use (e.g.) options::unconstrainedSimp.wasSetByUser() instead of having to use (and maintain) a separate Boolean option for the purpose I've taken lots of care not to break anything. Hopefully, I've succeeded in that.
Diffstat (limited to 'doc/cvc4.1.in')
-rw-r--r--doc/cvc4.1.in208
1 files changed, 0 insertions, 208 deletions
diff --git a/doc/cvc4.1.in b/doc/cvc4.1.in
deleted file mode 100644
index 6c6a9768c..000000000
--- a/doc/cvc4.1.in
+++ /dev/null
@@ -1,208 +0,0 @@
-.\" Process this file with
-.\" groff -man -Tascii cvc4.1
-.\"
-.TH CVC4 1 "@MAN_DATE@" "CVC4 release @VERSION@" "User Manuals"
-.SH NAME
-cvc4, pcvc4 \- an automated theorem prover
-.SH SYNOPSIS
-.B cvc4 [
-.I options
-.B ] [
-.I file
-.B ]
-.P
-.B pcvc4 [
-.I options
-.B ] [
-.I file
-.B ]
-.SH DESCRIPTION
-.B cvc4
-is an automated theorem prover for first-order formulas with respect
-to background theories of interest.
-.B pcvc4
-is CVC4's "portfolio" variant, which is capable of running multiple
-CVC4 instances in parallel, configured differently.
-
-With
-.I file
-, commands are read from
-.I file
-and executed. CVC4 supports the SMT-LIB (versions 1.2 and 2.0) input
-format, as well as its own native \(lqpresentation language\(rq (see
-.BR cvc4 (5)
-), which is similar in many respects to CVC3's presentation language,
-but not identical.
-
-If
-.I file
-is unspecified, standard input is read (and the
-.B CVC4
-presentation language is assumed). If
-.I file
-is unspecified and
-.B CVC4
-is connected to a terminal, interactive mode is assumed.
-
-.SH OPTIONS
-.IP "\-\-lang=LANG | \-L LANG"
-force input language (default is \(lqauto\(rq; see \-\-lang help)
-.IP \-\-output\-lang=LANG
-force output language (default is \(lqauto\(rq; see \-\-output\-lang help)
-.IP "\-\-version | \-V"
-identify this CVC4 binary
-.IP "\-\-help | \-h"
-this command line reference
-.IP \-\-parse\-only
-exit after parsing input
-.IP \-\-preprocess\-only
-exit after preprocessing (useful with \-\-stats or \-\-dump)
-.IP \-\-dump=MODE
-dump preprocessed assertions, T\-propagations, etc., see \-\-dump=help
-.IP \-\-dump\-to=FILE
-all dumping goes to FILE (instead of stdout)
-.IP \-\-mmap
-memory map file input
-.IP \-\-show\-config
-show CVC4 static configuration
-.IP \-\-segv\-nospin
-don't spin on segfault waiting for gdb
-.IP \-\-lazy\-type\-checking
-type check expressions only when necessary (default)
-.IP \-\-eager\-type\-checking
-type check expressions immediately on creation (debug builds only)
-.IP \-\-no\-type\-checking
-never type check expressions
-.IP \-\-no\-checking
-disable ALL semantic checks, including type checks
-.IP \-\-no\-theory\-registration
-disable theory reg (not safe for some theories)
-.IP \-\-strict\-parsing
-fail on non\-conformant inputs (SMT2 only)
-.IP "\-\-verbose | \-v"
-increase verbosity (may be repeated)
-.IP "\-\-quiet | \-q"
-decrease verbosity (may be repeated)
-.IP "\-\-trace=FLAG | \-t FLAG"
-trace something (e.g. \-t pushpop), can repeat
-.IP "\-\-debug=FLAG | \-d FLAG"
-debug something (e.g. \-d arith), can repeat
-.IP \-\-stats
-give statistics on exit
-.IP \-\-default\-expr\-depth=N
-print exprs to depth N (0 == default, \-1 == no limit)
-.IP \-\-print\-expr\-types
-print types with variables when printing exprs
-.IP \-\-interactive
-run interactively
-.IP \-\-no\-interactive
-do not run interactively
-.IP \-\-produce\-models
-support the get\-value command
-.IP \-\-produce\-assignments
-support the get\-assignment command
-.IP \-\-lazy\-definition\-expansion
-expand define\-fun lazily
-.IP \-\-simplification=MODE
-choose simplification mode, see \-\-simplification=help
-.IP \-\-no\-static\-learning
-turn off static learning (e.g. diamond\-breaking)
-.IP \-\-replay=file
-replay decisions from file
-.IP \-\-replay\-log=file
-log decisions and propagations to file
-.IP \-\-pivot\-rule=RULE
-change the pivot rule (see \-\-pivot\-rule help)
-.IP \-\-pivot\-threshold=N
-sets the number of heuristic pivots per variable per simplex instance
-.IP \-\-prop\-row\-length=N
-sets the maximum row length to be used in propagation
-.IP \-\-random\-freq=P
-sets the frequency of random decisions in the sat solver(P=0.0 by default)
-.IP \-\-random\-seed=S
-sets the random seed for the sat solver
-.IP \-\-disable\-variable\-removal
-enable permanent removal of variables in arithmetic (UNSAFE! experts only)
-.IP \-\-disable\-arithmetic\-propagation
-turns on arithmetic propagation
-.IP \-\-disable\-symmetry\-breaker
-turns off UF symmetry breaker (Deharbe et al., CADE 2011)
-.IP \-\-incremental
-enable incremental solving
-
-.\".SH FILES
-.\".SH ENVIRONMENT
-.SH DIAGNOSTICS
-.B CVC4
-reports all syntactic and semantic errors on standard error.
-.SH HISTORY
-The
-.B CVC4
-effort is the culmination of fifteen years of theorem proving
-research, starting with the
-.I Stanford Validity Checker (SVC)
-in 1996.
-
-SVC's successor, the
-.I Cooperating Validity Checker (CVC),
-had a more optimized internal design, produced proofs, used the
-.I Chaff
-SAT solver, and featured a number of usability
-enhancements. Its name comes from the cooperative nature of
-decision procedures in Nelson-Oppen theory combination,
-which share amongst each other equalities between shared terms.
-
-CVC Lite, first made available in 2003, was a rewrite of CVC
-that attempted to make CVC
-more flexible (hence the \(lqlite\(rq) while extending the feature set:
-CVCLite supported quantifiers where its predecessors did not.
-CVC3 was a major overhaul of portions of CVC Lite: it added
-better decision procedure implementations, added support for using
-MiniSat in the core, and had generally better performance.
-
-CVC4 is the new version, the fifth generation of this validity
-checker line that is now celebrating fifteen years of heritage.
-It represents a complete re-evaluation of
-the core architecture to be both performant and to serve as a cutting-edge research vehicle
-for the next several years. Rather than taking CVC3
-and redesigning problem parts, we've taken a clean-room approach,
-starting from scratch. Before using any designs from CVC3, we have
-thoroughly scrutinized, vetted, and updated them. Many parts of CVC4
-bear only a superficial resemblance, if any, to their correspondent in CVC3.
-
-However, CVC4 is fundamentally similar to CVC3 and many other
-modern SMT solvers: it is a DPLL(
-.I T
-) solver,
-with a SAT solver at its core and a delegation path to different decision
-procedure implementations, each in charge of solving formulas in some
-background theory.
-
-The re-evaluation and ground-up rewrite was necessitated, we felt, by
-the performance characteristics of CVC3. CVC3 has many useful
-features, but some core aspects of the design led to high memory use, and
-the use of heavyweight computation (where more nimble engineering
-approaches could suffice) makes CVC3 a much slower prover than other tools.
-As these designs are central to CVC3, a new version was preferable to a
-selective re-engineering, which would have ballooned in short order.
-.SH VERSION
-This manual page refers to
-.B CVC4
-version @VERSION@.
-.SH BUGS
-A Bugzilla for the CVC4 project is maintained at
-.BR http://goedel.cs.nyu.edu/bugzilla3/ .
-.SH AUTHORS
-.B CVC4
-is developed by a team of researchers at New York University
-and the University of Iowa.
-See the AUTHORS file in the distribution for a full list of
-contributors.
-.SH "SEE ALSO"
-.BR libcvc4 (3),
-.BR libcvc4parser (3),
-.BR libcvc4compat (3)
-
-Additionally, the CVC4 wiki contains useful information about the
-design and internals of CVC4. It is maintained at
-.BR http://goedel.cs.nyu.edu/wiki/ .
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback