added glossary entry for advanced preferences |
No edit summary |
||
| Line 1: | Line 1: | ||
* the | VALUE and DESCRIPTION of 189 ProB PREFERENCES | ||
<pre> | |||
PREFERENCE = CurrentValue(*) : Type ==> Description | |||
</pre> | |||
<pre> | |||
ALLOW_COMPLEX_LETS = false : bool ==> Allow LET substitutions to directly use introduced identifiers (e.g., LET x,y BE x=4 & y=x*x IN ...) | |||
ALLOW_INCOMPLETE_SETUP_CONSTANTS = false : bool ==> Allow ProB to proceed even if only part of the CONSTANTS have been found. | |||
ALLOW_LOCAL_OPERATION_CALLS = false : bool ==> Allow to call (local) operations in same machine | |||
ALLOW_NEW_OPERATIONS_IN_REFINEMENT = false : bool ==> Allow introduction of new operations in refinements (automatically set to TRUE for SYSTEM machines) | |||
ALLOW_OPERATION_CALLS_IN_EXPRESSIONS = false : bool ==> Allow to call query operations in (some) expressions | |||
ALLOW_OUTPUT_READING = false : bool ==> Allow B operations to read outputs; output values will be initialised to default value in animator. | |||
ALLOW_REALS = default : dbool ==> Allow to use the REAL datatype | |||
ALLOW_SIMULTANEOUS_ASSIGNMENTS = false : bool ==> Allow B operations to assign multiple times to same variable (ASM style) | |||
ALLOW_UNTYPED_IDENTIFIERS = false : [true,false,true_with_string_type] ==> Allow UNTYPED identifiers (they will be assigned new deferred sets as type) | |||
ALLOY_SCOPELESS_TRANSLATION = false : bool ==> Do not set any scopes when translating an Alloy model to B (useful for proof assistants). | |||
* | ALLOY_STRICT_INTEGERS = true : bool ==> Only accept integers (i.e, singleton sets in Alloy) as arguments to integer operations. Otherwise, a well-definedness error is thrown. | ||
ALLOY_TRANSLATION_FOR_PROOF = false : bool ==> Translate only a single command of an Alloy model to the B machine assertions section to enable generation of proof obligations in AtelierB. | |||
ALLOY_USE_IMPLEMENTABLE_INTEGERS = false : bool ==> Use INT (minint..maxint) for the translation from Alloy to B. | |||
ASSERT_CHECKING = true : bool ==> Check ASSERT statements while animating and model checking | |||
ATELIERB_KRT_PATH = krt : path ==> Path to Atelier B Provers krt tool | |||
BBRESULTS = false : bool ==> Show probcli errors using the BBEdit (11.6 or newer) bbresults command | |||
BOOL_AS_PREDICATE = false : bool ==> Extended Predicate Syntax (allow p&q as syntactic sugar for (p=TRUE) & (q=TRUE), only possible in REPL and DEPRECATED) | |||
BUGLY = false : bool ==> Scramble identifiers when pretty-printing (BUGLY) | |||
CACHE_OPERATIONS = true : bool ==> Cache operations/events when -cache is activated | |||
CBC_PROVIDE_EXPLANATIONS = false : bool ==> Provide explanations (unsat core,...) for some CBC commands | |||
* | CHR = false : bool ==> Use CHR based solver. Should speed up detection of unsolvable predicates, but might slow down solving in general. | ||
CLPFD = true : bool ==> Use CLP(FD) solver for B integers (restricts range to -2^28..2^28-1 on 32 bit machines) | |||
COMPILE_WHILE = true : bool ==> Compile bodies of WHILE loops if variant large | |||
COMPRESSION = false : bool ==> Use more aggressive COMPRESSION when storing states | |||
* | CSE = false : bool ==> Enable CSE (Common Subexpression Elimination) | ||
* | CSE_PRED = true : bool ==> Apply CSE (if enabled) also to predicates | ||
CSE_SUBST = false : bool ==> Apply CSE (if enabled) also to substitutions (operation/event bodies) [EXPERIMENTAL] | |||
CSE_WD_ONLY = false : bool ==> Apply CSE (if enabled) only to well-defined sub-formulas | |||
CSP_STRIP_SOURCE_LOC = false : bool ==> Strip CSP source-location information (for RHS of processes, except for internal choice) | |||
DATA_VALIDATION = false : bool ==> Assume everything can be computed without constraint solving. | |||
DEFAULT_SETSIZE = 2 : nat ==> Size of unspecified deferred sets in SETS section | |||
DETECT_LAMBDAS = true : bool ==> Detect set comprehensions which can be rewritten into lambdas. | |||
DISPROVER_MODE = false : bool ==> Skip certain optimizations that effect soundness of proofs (for Rodin DISPROVER Plugin) | |||
DOT = /usr/local/bin/dot : path ==> Path/Command for dot program (using "/" even on Windows. Try avoiding spaces in path) | |||
DOT_ARC_COLORS = true : bool ==> Colour the arcs (disable for import in OmniGraffle) | |||
DOT_ARGUMENTS = true : bool ==> Print Operation Arguments (when Edge Labels shown) | |||
DOT_COLOR_ARC = #006391 : rgb_color ==> Colour for normal arcs | |||
DOT_COLOR_NODE = #99BF38 : rgb_color ==> Colour for normal node | |||
DOT_COLOR_NODE_ERROR = #FF3800 : rgb_color ==> Colour for invariant violation | |||
DOT_COLOR_NODE_GOAL = orange : rgb_color ==> Colour for nodes satisfying the GOAL predicate | |||
DOT_COLOR_NODE_OPEN = #F4E3C1 : rgb_color ==> Colour for open node (red,green,blue,gray,... or rgb hex #ff00ff) or adjacent to an open node if print leaves is off | |||
DOT_COLOUR_GOAL = true : bool ==> Colour the nodes that satisfy the GOAL predicate | |||
DOT_CURRENT_NODE_SHAPE = doubleoctagon : dot_shape ==> Shape for current node | |||
DOT_DECOMPOSE_NODES = true : bool ==> Decompose sets and complex pairs into individual vertices | |||
DOT_DEFINITIONS_SHOW_ALL = false : bool ==> Show all DEFINITIONS | |||
DOT_DEFINITIONS_USE_SUB_GRAPH = true : bool ==> Show expression-, predicate-, substitution-DEFINITIONS as sub-graphs | |||
DOT_EDGE_FONT_SIZE = 12 : nat1 ==> Font Size for Edge labels | |||
DOT_EDGE_LABELS = true : bool ==> Show Edge Labels (Operation Names) | |||
DOT_EDGE_PEN_WIDTH = 1 : nat ==> Pen width for edges | |||
DOT_ENGINE = dot : [dot,neato,sfdp,fdp,twopi,circo] ==> Default layout engine used for dot (dot,neato,sfdp,fdp,twopi,circo) | |||
DOT_EVENT_HIERARCHY_EDGE_COL = #806040 : rgb_color ==> Edge colour for refine relation | |||
DOT_EVENT_HIERARCHY_EXTENDS_COL = gray50 : rgb_color ==> Edge colour for extends relation | |||
DOT_EVENT_HIERARCHY_GRD_KEEP_COL = #E0C080 : rgb_color ==> Colour for events just changing an action (not renamed, keeping guard unchanged) | |||
DOT_EVENT_HIERARCHY_GRD_STRGTH_COL = gray83 : rgb_color ==> Colour for events just adding a guard (not renamed, no actions added) | |||
DOT_EVENT_HIERARCHY_HORIZONTAL = true : bool ==> Organize refinements horizontally | |||
DOT_EVENT_HIERARCHY_MCH_COL = gray95 : rgb_color ==> Colour for machine event cluster | |||
DOT_EVENT_HIERARCHY_NEW_COL = #C06040 : rgb_color ==> Colour for new events (not refining any event) | |||
DOT_EVENT_HIERARCHY_REF_COL = #C0A060 : rgb_color ==> Colour for events refining themselves (i.e., not renamed and modifying guard or action) | |||
DOT_EVENT_HIERARCHY_RENAME_COL = #E0E0A0 : rgb_color ==> Colour for renamed events (with change in guard or action) | |||
DOT_EVENT_HIERARCHY_RENAME_UNCHG_COL = #E0F0E0 : rgb_color ==> Colour for renamed unchanged events | |||
DOT_EVENT_HIERARCHY_UNCHG_COL = gray92 : rgb_color ==> Colour for unchanged events (not renamed, no guards or actions added) | |||
DOT_EXPRESSION_NODE_SHAPE = record : dot_shape ==> Shape for expression nodes in formula trees | |||
DOT_FILL_NORMAL_NODES = false : bool ==> Fill normal nodes with color | |||
DOT_FUNCTIONS = false : bool ==> Print Functions (operations that return values w/o changing state) | |||
DOT_HORIZONTAL_LAYOUT = false : bool ==> Use horizontal layout by default (does not affect all dot graphs) | |||
DOT_IDS = false : bool ==> Print Node Identifiers | |||
DOT_INFO = true : bool ==> Print Node information (values of variables) | |||
DOT_LIMIT_PAGE_SIZE = true : bool ==> Limit page size by default (does not affect all dot graphs) | |||
DOT_LOOPS = true : bool ==> Print Self-Loops | |||
DOT_MACHINE_HIERARCHY_MAX_IDS = 0 : int ==> Max. number of identifiers shown in hierarchy view (-1 to show all) | |||
DOT_NODE_FONT_SIZE = 12 : nat1 ==> Font Size for Node labels | |||
DOT_NORMAL_NODE_SHAPE = box : dot_shape ==> Shape for normal node | |||
DOT_PEN_WIDTH = 2 : nat ==> Pen width for nodes | |||
DOT_PREDICATE_NODE_SHAPE = rect : dot_shape ==> Shape for predicate nodes in formula trees | |||
DOT_PROJECTION_DEF_COL = solid : dot_line_style ==> Style for definite edges (solid,dashed,dotted,bold,invis) | |||
DOT_PROJECTION_DET_COL = black : rgb_color ==> Edge colour for non-deterministic edges | |||
DOT_PROJECTION_LABEL_LIMIT = 75 : nat ==> Max. nr of characters for node labels | |||
DOT_PROJECTION_NON_DEF_COL = dashed : dot_line_style ==> Style for non-definite edges (solid,dashed,dotted,bold,invis) | |||
DOT_PROJECTION_NON_DET_COL = #806040 : rgb_color ==> Edge colour for deterministic edges | |||
DOT_PROP = false : bool ==> Show properties of statespace node (useful for CSP models) | |||
DOT_ROOT = true : bool ==> Print Root Node | |||
DOT_ROOT_SHAPE = invtriangle : dot_shape ==> Shape for root node (invtriangle,triangle, ellipse, box, diamond,...) | |||
DOT_SCOPE_LIMIT_COL = gray : rgb_color ==> Colour for open, but uninteresting nodes (red,green,blue,gray,... or rgb hex #ff00ff) | |||
DOT_SHOW_OP_READ_WRITES = true : bool ==> Show read/write info for enabling diagrams | |||
DOT_USE_CONSTANTS = true : bool ==> Use constants for deferred set values if possible | |||
DOT_USE_UNICODE = true : bool ==> Use Unicode symbols for values and formulas | |||
DOT_VARIABLE_MODIFICATION_HIDE_ONLY_WRITTEN = false : bool ==> Hide variables which are only written and not read in any guard | |||
DOUBLE_EVALUATION = true : bool ==> Evaluate PREDICATES positively and negatively when analysing | |||
EDITOR = /usr/local/bin/bbedit : path ==> Path to external text editor for probcli (uses EDITOR environment variable by default) | |||
EDITOR_GUI = /Applications/BBEdit.app : path ==> Path to external GUI text editor | |||
ENUMERATE_INFINITE_TYPES = true : bool ==> Allow enumeration of infinite types | |||
ENUMERATION_ORDER_ANALYSIS = true : bool ==> Perform enumeration order analysis within quantifiers, e.g., to detect identifiers that should not be enumerated | |||
EXPAND_FORALL_UPTO = 100 : nat ==> When analysing predicates: max. domain size for expansion of forall | |||
FILTER_UNUSED = false : bool ==> Filter out unused constants | |||
FORGET_STATE_SPACE = false : bool ==> Do not remember state space (mainly useful in conjunction with IGNORE_HASH_COLLISIONS) | |||
IGNORE_HASH_COLLISIONS = false : bool ==> Ignore Hash Collisions (if true not all states may be computed, visited states are not memorised !) | |||
IGNORE_PRJ_TYPES = false : bool ==> Ignore types of prj1 and prj2 (i.e., prj1({1},{1})(2,3) is considered well-defined | |||
INTERNAL_ARGUMENT_PREFIX = $none : string ==> Prefix of internal operation arguments (these are not included in test cases) | |||
INVARIANT_CHECKING = true : bool ==> Check invariant while animating and model checking | |||
JAVA_PATH = /usr/bin/java : path ==> Path to the "java" command (in case java is not found on the PATH) | |||
JVM_PARSER_ARGS = : string ==> Additional arguments sent to the JVM for the Java parser (e.g., "-XX:+UseG1GC -Xss5m") | |||
JVM_PARSER_HEAP_MB = 0 : nat ==> Heap size in MB for Java parser (-Xmx JVM option, 0 means default value) | |||
KODKOD = false : bool ==> Apply translation to KODKOD on PROPERTIES when loading machines | |||
KODKOD_MAX_NR_SOLS = 22 : nat1 ==> Maximum number of solutions computed and sent by KODKOD per batch. | |||
KODKOD_ONLY_FULL = true : bool ==> Translate only complete components to KODKOD | |||
KODKOD_RAISE_WARNINGS = false : bool ==> Raise WARNING when component or predicate cannot be translated to KODKOD | |||
KODKOD_SAT_SOLVER = sat4j : [sat4j,minisat,lingeling,glucose] ==> SAT solver used for Kodkod (sat4j, minisat, lingeling, glucose) | |||
KODKOD_SYMMETRY = 0 : nat ==> Symmetry level for Kodkod (0=off, 20=on), the higher this value, the more symmetries will be broken, you should probably only turn this on when MAX_INITIALISATIONS is set to 1 | |||
LATEX_ENCODING = auto : text_encoding ==> Encoding used for Latex processing with -latex (auto,ISO-8859-1,ISO-8859-2,UTF-8,UTF-16,...) | |||
LATEX_GREEK_IDENTIFIERS = false : bool ==> Prety-print Greek identifiers (Sigma,...) in Latex mode | |||
LIFT_EXISTS = false : bool ==> Lift existential quantifiers, i.e., treat existentially quantified variables like ordinary variables | |||
LTL_SAFETY_MODEL_CHECK = true : bool ==> Recognise safety properties and check these using the safety property model checker (requires ltl2ba for more complex properties) | |||
LTSMIN = ./lib/ : path ==> Path to LTSmin commands, such as prob2lts-sym for symbolic model checking (not available for Windows.) | |||
MAXINT = 3 : nat1 ==> value of MAXINT, controls enumeration of integers and used to define NAT in classical B (2147483647 for 32 bit ints) | |||
MAX_DISPLAY_SET = 100 : int ==> Max size for pretty-printing sets (-1 means no limit) | |||
MAX_INITIALISATIONS = 4 : nat ==> Max Number of Initialisations and Constant-Setups Computed | |||
MAX_OPERATIONS = 10 : nat ==> Max Number of Enablings per Operation Computed | |||
MC_DC_Level = 2 : nat ==> Default Predicate Expansion Level for MC/DC Coverage Analyses (0=no expansion, 1=only top level connective expanded,...) | |||
MEMO = false : bool ==> MEMOize expansions of set comprehensions and lambda abstractions. | |||
MEMOIZE_FUNCTIONS = false : bool ==> MEMOIZE function applications of all functions defined in ABSTRACT_CONSTANTS (even if not marked with /*@desc memo */). | |||
MINIMAL_TEST_SUITES = true : bool ==> Generate minimal suite of mcm testcases (and not one per event) | |||
MININT = -1 : neg ==> value of MININT, controls enumeration of integers and used to define INT in classical B (-2147483648 for 32 bit ints) | |||
NDJSON_ERROR_LOG_FILE = : path ==> File were all errors and warnings are logged (NDJSON format). Can be set to stderr or stdout. | |||
NORMALIZE_AST = false : bool ==> Normalize AST before passing to ProB kernel (rewrites many B predicates into simpler form) | |||
NUMBER_OF_ANIMATED_ABSTRACTIONS = 20 : nat ==> How many levels of refined models are animated by default | |||
OPERATION_REUSE = false : xbool ==> Reuse previously computed operation effects in B/Event-B (false, true:local propagation, full:cache projected state space per operation) | |||
OPTIMIZE_AST = true : bool ==> Optimize AST (Abstract Syntax Tree) before passing to ProB kernel (rewrites many B predicates into more efficient form) | |||
PARTITION_PROPERTIES = true : bool ==> Partition predicates (PROPERTIES) into components | |||
PARTITION_PROPERTIES_INLINE = true : bool ==> Inline equalities when partitioning into components | |||
PERFORMANCE_INFO = false : bool ==> Provide performance monitoring information on the terminal/console. | |||
PERFORMANCE_INFO_LIMIT = 100 : int ==> Limit in ms for printing warnings when expanding comprehension sets in performance monitoring mode. | |||
PGE = off : [off,disabled,enabled,full,disabled2,enabled2,full2] ==> Use the Partial Guard Evaluation optimisation for the state space exploration of B models. | |||
PP_CS_STYLE_SEQUENCES = false : bool ==> Print B sequences in theoretical CS style without separators. | |||
PP_FROZEN_INFOS = false : bool ==> Print Prolog frozen goal infos for unbound variables | |||
PP_SEQUENCES = false : bool ==> Print B relations as sequences when possible during pretty-printing. | |||
PROB2_TRACE_FILE = : path ==> Path to file to store prob2_execute_custom_operation results for later replay | |||
PROB2_TRACE_FILE_UNIQUE = false : bool ==> Make the file name for prob2_execute_custom_operation unique | |||
PROB_LASTCHANGED_INFO = Mon Aug 23 11:25:24 2021 +0200 : string ==> Last change date of ProB source (read-only preference) | |||
PROB_REVISION_INFO = 699cab6e6f76ea15eb9f25433c8da4bde1a1f326 : string ==> Git revision of ProB (read-only preference) | |||
PROB_VERSION_INFO = 1.11.0-nightly : string ==> Version of ProB (read-only preference) | |||
PROOF_INFO = true : bool ==> Use PROOF information to restrict invariant checking to affected clauses. | |||
RAISE_ABORT_IMMEDIATELY = false : xbool ==> Raise potential well-definedness issues immediately (may lead to false spurious alarms, but can allow to better detect WD issues which lead to timeouts; possible values false,true,full) | |||
RANDOMISED_RESTART_INIT = false : bool ==> Use Randomised Restart for Initialisation and Constant Setup (only makes sense if RANDOMISE_ENUMERATION_ORDER is set; for an operation OP use MAX_OPERATIONS_OP == -Nr) | |||
RANDOMISE_ENUMERATION_ORDER = false : bool ==> Randomise enumeration of variables. | |||
RANDOMISE_OPERATION_ORDER = false : bool ==> Randomise order of operations when computing successor states. | |||
REMOVE_IMPLIED_CONSTRAINTS = false : bool ==> Remove unnecessary constraints implied by other constraints | |||
REPL_CACHE_PARSING = false : bool ==> Cache parsing in REPL (useful if same formula gets parsed multiple times, e.g., for Latex processing) | |||
REPL_UNICODE = false : bool ==> Use UNICODE in REPL and editing window | |||
REQUIRE_OUTPUT_ASSIGNMENT = false : bool ==> Require operations to assign to all outputs | |||
SAFETY_MODEL_CHECK = false : bool ==> Only store one incoming transition/operation per reached state. Can be used when model checking of safety properties (invariants, goal, assertions). Do not use for LTL model checking, deadlock checking or animation. | |||
SAT_SUPPORTED_INTERPRETER = false : bool ==> Use Kodkod for specific predicates inside the B interpreter | |||
SHOW_EVENTB_ANY_VALUES = false : bool ==> Show top-level ANY variable values of B Operations without parameters as parameters | |||
SHOW_FORMULA_EXPLANATIONS = false : bool ==> Show explanation nodes in state view for certain formulas (e.g., <:, ...) | |||
SHOW_FORMULA_FUNCTOR = -1 : int ==> Show prefix/infix operators in state view for formulas longer than (use -1 to disable feature): | |||
SMT = false : bool ==> Enable SMT-Mode (aggressive treatment of : and /: inside predicates) | |||
SMTLIB_BOOL_ARRAYS_TO_SETS = false : bool ==> Translate SMTLib boolean Arrays to B Sets (when processing .smt2 files) | |||
SMTLIB_PREPROCESS = false : bool ==> Preprocess before solving SMTLib formulas (when processing .smt2 files) | |||
SMT_SUPPORTED_INTERPRETER = false : bool ==> Use Z3 / CVC4 for predicates inside the B interpreter | |||
SOLVER_STRENGTH = 0 : nat ==> Strength of certain Solver propagations (0 is default) | |||
STATIC_ORDERING = false : bool ==> Use static ordering to enumerate constants which occur in most PROPERTIES first | |||
STATIC_SYMMETRY_DETECTION = true : bool ==> Detect symmetries in forall/exists and in PROPERTIES for deferred sets | |||
STRICT_CLASH_CHECKING = false : bool ==> Do a stricter checking for name CLASHES in B machines | |||
STRICT_RAISE_ENUM_WARNINGS = false : bool ==> Treat ENUMERATION warnings (aka VIRTUAL TIME-OUTS) as errors (Warning: can generate spurious NOT-WELL-DEFINED messages). | |||
STRICT_RAISE_WARNINGS = false : bool ==> Treat warnings as errors (Warning: can generate spurious NOT-WELL-DEFINED messages). | |||
STRING_AS_SEQUENCE = true : bool ==> Allow sequence operators (^) to be applied to STRINGs | |||
SYMBOLIC = false : bool ==> Lazy expansion of lambdas and set comprehensions | |||
SYMBOLIC_MC_TRY_OTHER_SOLVERS = false : bool ==> Symbolic Model Checking: Try different solver / settings combinations | |||
SYMMETRY_MODE = off : [off,flood,nauty,hash] ==> Symmetry Mode: off,flood,canon,nauty,hash | |||
SYNTAX_HIGHLIGHT = true : bool ==> Enable Syntax Colour Highlighting | |||
TIME_OUT = 2500 : nat1 ==> Time out for computing enabled transitions (in ms, is multiplied by a factor for other computations, value 2147483646 turns time outs off) | |||
TK_CUSTOM_STATE_VIEW_FONT_NAME = : string ==> Font for animation strings (if empty, the editor font will be used) | |||
TK_CUSTOM_STATE_VIEW_FONT_SIZE = 0 : nat ==> Font size for animation strings (if 0, the editor font size will be used) | |||
TK_CUSTOM_STATE_VIEW_PADDING = 0 : nat ==> Padding (in pixels) between images of custom TK state viewer | |||
TK_CUSTOM_STATE_VIEW_STRING_PADDING = 10 : nat ==> Padding (in pixels) between strings of custom TK state viewer | |||
TK_CUSTOM_STATE_VIEW_VISIBLE = true : bool ==> Use custom Tk viewer to represent state of B Machine | |||
TLC_WORKERS = 2 : nat1 ==> Number of parallel workers for external tool TLC (for -workers option) | |||
TRACE_INFO = false : bool ==> Provide various tracing information on the terminal/console. | |||
TRACE_UPON_ERROR = false : bool ==> Trace upon error (requires running from source) | |||
TRY_ATELIERB_PROVERS = false : bool ==> Try Atelier B Provers for unknown SMTLIB specifications | |||
TRY_FIND_ABORT = false : xbool ==> Try more aggressively to detect not well-defined expressions (e.g. applying function outside of domain), may slow down animator; possible values false,true,full | |||
TYPE_CHECK_DEFINITIONS = false : bool ==> Type check all visible DEFINITIONs (not just used ones) | |||
USELESS_CODE_ELIMINATION = false : bool ==> Useless Code Elimination: try and find useless statements which have no influence on the result of an operation. | |||
USE_IGNORE_PRAGMAS = false : bool ==> Use /*@desc prob-ignore */ pragmas when checking predicates (PROPERTIES,...) | |||
USE_RECORD_CONSTRUCTION = true : bool ==> Records: Check if axioms/properties describe a record pattern | |||
USE_SCOPE_DEFINITION = true : bool ==> Use SCOPE predicate (if defined) to restrict state space exploration for model checking and animation. | |||
WARN_IF_DEFINITION_HIDES_VARIABLE = true : bool ==> Warn if a DEFINITION hides a variable with the same name | |||
WD_ANALYSIS_FOR_ANIMATION = true : bool ==> Perform the WD analysis in the context of ProB animation (e.g., deferred sets considered finite) | |||
WD_IGNORE_EXTERNAL = false : bool ==> Generate (unprovable) WD PO for external functions with WD condition | |||
XML_ENCODING = auto : text_encoding ==> Encoding used for XML processing, e.g., with -logxml (auto,ISO-8859-1,ISO-8859-2,UTF-8,UTF-16,...) | |||
</pre> | |||
<pre> | |||
DESCRIPTION of ProB PREFERENCE GROUPS: | |||
* PREFERENCE GROUP integer : SETTINGS [int32,int8] : Values for MAXINT and MININT | |||
* PREFERENCE GROUP time_out : SETTINGS [disable_time_out] : To disable TIME_OUT | |||
* PREFERENCE GROUP model_check : SETTINGS [disable_max,unlimited] : Model Checking Limits | |||
* PREFERENCE GROUP dot_colors : SETTINGS [classic,dreams,winter] : Colours for Dot graphs | |||
</pre> | |||
Set NO_COLOR environment variable to disable terminal colors | |||
VALUE and DESCRIPTION of 189 ProB PREFERENCES
PREFERENCE = CurrentValue(*) : Type ==> Description
ALLOW_COMPLEX_LETS = false : bool ==> Allow LET substitutions to directly use introduced identifiers (e.g., LET x,y BE x=4 & y=x*x IN ...)
ALLOW_INCOMPLETE_SETUP_CONSTANTS = false : bool ==> Allow ProB to proceed even if only part of the CONSTANTS have been found.
ALLOW_LOCAL_OPERATION_CALLS = false : bool ==> Allow to call (local) operations in same machine
ALLOW_NEW_OPERATIONS_IN_REFINEMENT = false : bool ==> Allow introduction of new operations in refinements (automatically set to TRUE for SYSTEM machines)
ALLOW_OPERATION_CALLS_IN_EXPRESSIONS = false : bool ==> Allow to call query operations in (some) expressions
ALLOW_OUTPUT_READING = false : bool ==> Allow B operations to read outputs; output values will be initialised to default value in animator.
ALLOW_REALS = default : dbool ==> Allow to use the REAL datatype
ALLOW_SIMULTANEOUS_ASSIGNMENTS = false : bool ==> Allow B operations to assign multiple times to same variable (ASM style)
ALLOW_UNTYPED_IDENTIFIERS = false : [true,false,true_with_string_type] ==> Allow UNTYPED identifiers (they will be assigned new deferred sets as type)
ALLOY_SCOPELESS_TRANSLATION = false : bool ==> Do not set any scopes when translating an Alloy model to B (useful for proof assistants).
ALLOY_STRICT_INTEGERS = true : bool ==> Only accept integers (i.e, singleton sets in Alloy) as arguments to integer operations. Otherwise, a well-definedness error is thrown.
ALLOY_TRANSLATION_FOR_PROOF = false : bool ==> Translate only a single command of an Alloy model to the B machine assertions section to enable generation of proof obligations in AtelierB.
ALLOY_USE_IMPLEMENTABLE_INTEGERS = false : bool ==> Use INT (minint..maxint) for the translation from Alloy to B.
ASSERT_CHECKING = true : bool ==> Check ASSERT statements while animating and model checking
ATELIERB_KRT_PATH = krt : path ==> Path to Atelier B Provers krt tool
BBRESULTS = false : bool ==> Show probcli errors using the BBEdit (11.6 or newer) bbresults command
BOOL_AS_PREDICATE = false : bool ==> Extended Predicate Syntax (allow p&q as syntactic sugar for (p=TRUE) & (q=TRUE), only possible in REPL and DEPRECATED)
BUGLY = false : bool ==> Scramble identifiers when pretty-printing (BUGLY)
CACHE_OPERATIONS = true : bool ==> Cache operations/events when -cache is activated
CBC_PROVIDE_EXPLANATIONS = false : bool ==> Provide explanations (unsat core,...) for some CBC commands
CHR = false : bool ==> Use CHR based solver. Should speed up detection of unsolvable predicates, but might slow down solving in general.
CLPFD = true : bool ==> Use CLP(FD) solver for B integers (restricts range to -2^28..2^28-1 on 32 bit machines)
COMPILE_WHILE = true : bool ==> Compile bodies of WHILE loops if variant large
COMPRESSION = false : bool ==> Use more aggressive COMPRESSION when storing states
CSE = false : bool ==> Enable CSE (Common Subexpression Elimination)
CSE_PRED = true : bool ==> Apply CSE (if enabled) also to predicates
CSE_SUBST = false : bool ==> Apply CSE (if enabled) also to substitutions (operation/event bodies) [EXPERIMENTAL]
CSE_WD_ONLY = false : bool ==> Apply CSE (if enabled) only to well-defined sub-formulas
CSP_STRIP_SOURCE_LOC = false : bool ==> Strip CSP source-location information (for RHS of processes, except for internal choice)
DATA_VALIDATION = false : bool ==> Assume everything can be computed without constraint solving.
DEFAULT_SETSIZE = 2 : nat ==> Size of unspecified deferred sets in SETS section
DETECT_LAMBDAS = true : bool ==> Detect set comprehensions which can be rewritten into lambdas.
DISPROVER_MODE = false : bool ==> Skip certain optimizations that effect soundness of proofs (for Rodin DISPROVER Plugin)
DOT = /usr/local/bin/dot : path ==> Path/Command for dot program (using "/" even on Windows. Try avoiding spaces in path)
DOT_ARC_COLORS = true : bool ==> Colour the arcs (disable for import in OmniGraffle)
DOT_ARGUMENTS = true : bool ==> Print Operation Arguments (when Edge Labels shown)
DOT_COLOR_ARC = #006391 : rgb_color ==> Colour for normal arcs
DOT_COLOR_NODE = #99BF38 : rgb_color ==> Colour for normal node
DOT_COLOR_NODE_ERROR = #FF3800 : rgb_color ==> Colour for invariant violation
DOT_COLOR_NODE_GOAL = orange : rgb_color ==> Colour for nodes satisfying the GOAL predicate
DOT_COLOR_NODE_OPEN = #F4E3C1 : rgb_color ==> Colour for open node (red,green,blue,gray,... or rgb hex #ff00ff) or adjacent to an open node if print leaves is off
DOT_COLOUR_GOAL = true : bool ==> Colour the nodes that satisfy the GOAL predicate
DOT_CURRENT_NODE_SHAPE = doubleoctagon : dot_shape ==> Shape for current node
DOT_DECOMPOSE_NODES = true : bool ==> Decompose sets and complex pairs into individual vertices
DOT_DEFINITIONS_SHOW_ALL = false : bool ==> Show all DEFINITIONS
DOT_DEFINITIONS_USE_SUB_GRAPH = true : bool ==> Show expression-, predicate-, substitution-DEFINITIONS as sub-graphs
DOT_EDGE_FONT_SIZE = 12 : nat1 ==> Font Size for Edge labels
DOT_EDGE_LABELS = true : bool ==> Show Edge Labels (Operation Names)
DOT_EDGE_PEN_WIDTH = 1 : nat ==> Pen width for edges
DOT_ENGINE = dot : [dot,neato,sfdp,fdp,twopi,circo] ==> Default layout engine used for dot (dot,neato,sfdp,fdp,twopi,circo)
DOT_EVENT_HIERARCHY_EDGE_COL = #806040 : rgb_color ==> Edge colour for refine relation
DOT_EVENT_HIERARCHY_EXTENDS_COL = gray50 : rgb_color ==> Edge colour for extends relation
DOT_EVENT_HIERARCHY_GRD_KEEP_COL = #E0C080 : rgb_color ==> Colour for events just changing an action (not renamed, keeping guard unchanged)
DOT_EVENT_HIERARCHY_GRD_STRGTH_COL = gray83 : rgb_color ==> Colour for events just adding a guard (not renamed, no actions added)
DOT_EVENT_HIERARCHY_HORIZONTAL = true : bool ==> Organize refinements horizontally
DOT_EVENT_HIERARCHY_MCH_COL = gray95 : rgb_color ==> Colour for machine event cluster
DOT_EVENT_HIERARCHY_NEW_COL = #C06040 : rgb_color ==> Colour for new events (not refining any event)
DOT_EVENT_HIERARCHY_REF_COL = #C0A060 : rgb_color ==> Colour for events refining themselves (i.e., not renamed and modifying guard or action)
DOT_EVENT_HIERARCHY_RENAME_COL = #E0E0A0 : rgb_color ==> Colour for renamed events (with change in guard or action)
DOT_EVENT_HIERARCHY_RENAME_UNCHG_COL = #E0F0E0 : rgb_color ==> Colour for renamed unchanged events
DOT_EVENT_HIERARCHY_UNCHG_COL = gray92 : rgb_color ==> Colour for unchanged events (not renamed, no guards or actions added)
DOT_EXPRESSION_NODE_SHAPE = record : dot_shape ==> Shape for expression nodes in formula trees
DOT_FILL_NORMAL_NODES = false : bool ==> Fill normal nodes with color
DOT_FUNCTIONS = false : bool ==> Print Functions (operations that return values w/o changing state)
DOT_HORIZONTAL_LAYOUT = false : bool ==> Use horizontal layout by default (does not affect all dot graphs)
DOT_IDS = false : bool ==> Print Node Identifiers
DOT_INFO = true : bool ==> Print Node information (values of variables)
DOT_LIMIT_PAGE_SIZE = true : bool ==> Limit page size by default (does not affect all dot graphs)
DOT_LOOPS = true : bool ==> Print Self-Loops
DOT_MACHINE_HIERARCHY_MAX_IDS = 0 : int ==> Max. number of identifiers shown in hierarchy view (-1 to show all)
DOT_NODE_FONT_SIZE = 12 : nat1 ==> Font Size for Node labels
DOT_NORMAL_NODE_SHAPE = box : dot_shape ==> Shape for normal node
DOT_PEN_WIDTH = 2 : nat ==> Pen width for nodes
DOT_PREDICATE_NODE_SHAPE = rect : dot_shape ==> Shape for predicate nodes in formula trees
DOT_PROJECTION_DEF_COL = solid : dot_line_style ==> Style for definite edges (solid,dashed,dotted,bold,invis)
DOT_PROJECTION_DET_COL = black : rgb_color ==> Edge colour for non-deterministic edges
DOT_PROJECTION_LABEL_LIMIT = 75 : nat ==> Max. nr of characters for node labels
DOT_PROJECTION_NON_DEF_COL = dashed : dot_line_style ==> Style for non-definite edges (solid,dashed,dotted,bold,invis)
DOT_PROJECTION_NON_DET_COL = #806040 : rgb_color ==> Edge colour for deterministic edges
DOT_PROP = false : bool ==> Show properties of statespace node (useful for CSP models)
DOT_ROOT = true : bool ==> Print Root Node
DOT_ROOT_SHAPE = invtriangle : dot_shape ==> Shape for root node (invtriangle,triangle, ellipse, box, diamond,...)
DOT_SCOPE_LIMIT_COL = gray : rgb_color ==> Colour for open, but uninteresting nodes (red,green,blue,gray,... or rgb hex #ff00ff)
DOT_SHOW_OP_READ_WRITES = true : bool ==> Show read/write info for enabling diagrams
DOT_USE_CONSTANTS = true : bool ==> Use constants for deferred set values if possible
DOT_USE_UNICODE = true : bool ==> Use Unicode symbols for values and formulas
DOT_VARIABLE_MODIFICATION_HIDE_ONLY_WRITTEN = false : bool ==> Hide variables which are only written and not read in any guard
DOUBLE_EVALUATION = true : bool ==> Evaluate PREDICATES positively and negatively when analysing
EDITOR = /usr/local/bin/bbedit : path ==> Path to external text editor for probcli (uses EDITOR environment variable by default)
EDITOR_GUI = /Applications/BBEdit.app : path ==> Path to external GUI text editor
ENUMERATE_INFINITE_TYPES = true : bool ==> Allow enumeration of infinite types
ENUMERATION_ORDER_ANALYSIS = true : bool ==> Perform enumeration order analysis within quantifiers, e.g., to detect identifiers that should not be enumerated
EXPAND_FORALL_UPTO = 100 : nat ==> When analysing predicates: max. domain size for expansion of forall
FILTER_UNUSED = false : bool ==> Filter out unused constants
FORGET_STATE_SPACE = false : bool ==> Do not remember state space (mainly useful in conjunction with IGNORE_HASH_COLLISIONS)
IGNORE_HASH_COLLISIONS = false : bool ==> Ignore Hash Collisions (if true not all states may be computed, visited states are not memorised !)
IGNORE_PRJ_TYPES = false : bool ==> Ignore types of prj1 and prj2 (i.e., prj1({1},{1})(2,3) is considered well-defined
INTERNAL_ARGUMENT_PREFIX = $none : string ==> Prefix of internal operation arguments (these are not included in test cases)
INVARIANT_CHECKING = true : bool ==> Check invariant while animating and model checking
JAVA_PATH = /usr/bin/java : path ==> Path to the "java" command (in case java is not found on the PATH)
JVM_PARSER_ARGS = : string ==> Additional arguments sent to the JVM for the Java parser (e.g., "-XX:+UseG1GC -Xss5m")
JVM_PARSER_HEAP_MB = 0 : nat ==> Heap size in MB for Java parser (-Xmx JVM option, 0 means default value)
KODKOD = false : bool ==> Apply translation to KODKOD on PROPERTIES when loading machines
KODKOD_MAX_NR_SOLS = 22 : nat1 ==> Maximum number of solutions computed and sent by KODKOD per batch.
KODKOD_ONLY_FULL = true : bool ==> Translate only complete components to KODKOD
KODKOD_RAISE_WARNINGS = false : bool ==> Raise WARNING when component or predicate cannot be translated to KODKOD
KODKOD_SAT_SOLVER = sat4j : [sat4j,minisat,lingeling,glucose] ==> SAT solver used for Kodkod (sat4j, minisat, lingeling, glucose)
KODKOD_SYMMETRY = 0 : nat ==> Symmetry level for Kodkod (0=off, 20=on), the higher this value, the more symmetries will be broken, you should probably only turn this on when MAX_INITIALISATIONS is set to 1
LATEX_ENCODING = auto : text_encoding ==> Encoding used for Latex processing with -latex (auto,ISO-8859-1,ISO-8859-2,UTF-8,UTF-16,...)
LATEX_GREEK_IDENTIFIERS = false : bool ==> Prety-print Greek identifiers (Sigma,...) in Latex mode
LIFT_EXISTS = false : bool ==> Lift existential quantifiers, i.e., treat existentially quantified variables like ordinary variables
LTL_SAFETY_MODEL_CHECK = true : bool ==> Recognise safety properties and check these using the safety property model checker (requires ltl2ba for more complex properties)
LTSMIN = ./lib/ : path ==> Path to LTSmin commands, such as prob2lts-sym for symbolic model checking (not available for Windows.)
MAXINT = 3 : nat1 ==> value of MAXINT, controls enumeration of integers and used to define NAT in classical B (2147483647 for 32 bit ints)
MAX_DISPLAY_SET = 100 : int ==> Max size for pretty-printing sets (-1 means no limit)
MAX_INITIALISATIONS = 4 : nat ==> Max Number of Initialisations and Constant-Setups Computed
MAX_OPERATIONS = 10 : nat ==> Max Number of Enablings per Operation Computed
MC_DC_Level = 2 : nat ==> Default Predicate Expansion Level for MC/DC Coverage Analyses (0=no expansion, 1=only top level connective expanded,...)
MEMO = false : bool ==> MEMOize expansions of set comprehensions and lambda abstractions.
MEMOIZE_FUNCTIONS = false : bool ==> MEMOIZE function applications of all functions defined in ABSTRACT_CONSTANTS (even if not marked with /*@desc memo */).
MINIMAL_TEST_SUITES = true : bool ==> Generate minimal suite of mcm testcases (and not one per event)
MININT = -1 : neg ==> value of MININT, controls enumeration of integers and used to define INT in classical B (-2147483648 for 32 bit ints)
NDJSON_ERROR_LOG_FILE = : path ==> File were all errors and warnings are logged (NDJSON format). Can be set to stderr or stdout.
NORMALIZE_AST = false : bool ==> Normalize AST before passing to ProB kernel (rewrites many B predicates into simpler form)
NUMBER_OF_ANIMATED_ABSTRACTIONS = 20 : nat ==> How many levels of refined models are animated by default
OPERATION_REUSE = false : xbool ==> Reuse previously computed operation effects in B/Event-B (false, true:local propagation, full:cache projected state space per operation)
OPTIMIZE_AST = true : bool ==> Optimize AST (Abstract Syntax Tree) before passing to ProB kernel (rewrites many B predicates into more efficient form)
PARTITION_PROPERTIES = true : bool ==> Partition predicates (PROPERTIES) into components
PARTITION_PROPERTIES_INLINE = true : bool ==> Inline equalities when partitioning into components
PERFORMANCE_INFO = false : bool ==> Provide performance monitoring information on the terminal/console.
PERFORMANCE_INFO_LIMIT = 100 : int ==> Limit in ms for printing warnings when expanding comprehension sets in performance monitoring mode.
PGE = off : [off,disabled,enabled,full,disabled2,enabled2,full2] ==> Use the Partial Guard Evaluation optimisation for the state space exploration of B models.
PP_CS_STYLE_SEQUENCES = false : bool ==> Print B sequences in theoretical CS style without separators.
PP_FROZEN_INFOS = false : bool ==> Print Prolog frozen goal infos for unbound variables
PP_SEQUENCES = false : bool ==> Print B relations as sequences when possible during pretty-printing.
PROB2_TRACE_FILE = : path ==> Path to file to store prob2_execute_custom_operation results for later replay
PROB2_TRACE_FILE_UNIQUE = false : bool ==> Make the file name for prob2_execute_custom_operation unique
PROB_LASTCHANGED_INFO = Mon Aug 23 11:25:24 2021 +0200 : string ==> Last change date of ProB source (read-only preference)
PROB_REVISION_INFO = 699cab6e6f76ea15eb9f25433c8da4bde1a1f326 : string ==> Git revision of ProB (read-only preference)
PROB_VERSION_INFO = 1.11.0-nightly : string ==> Version of ProB (read-only preference)
PROOF_INFO = true : bool ==> Use PROOF information to restrict invariant checking to affected clauses.
RAISE_ABORT_IMMEDIATELY = false : xbool ==> Raise potential well-definedness issues immediately (may lead to false spurious alarms, but can allow to better detect WD issues which lead to timeouts; possible values false,true,full)
RANDOMISED_RESTART_INIT = false : bool ==> Use Randomised Restart for Initialisation and Constant Setup (only makes sense if RANDOMISE_ENUMERATION_ORDER is set; for an operation OP use MAX_OPERATIONS_OP == -Nr)
RANDOMISE_ENUMERATION_ORDER = false : bool ==> Randomise enumeration of variables.
RANDOMISE_OPERATION_ORDER = false : bool ==> Randomise order of operations when computing successor states.
REMOVE_IMPLIED_CONSTRAINTS = false : bool ==> Remove unnecessary constraints implied by other constraints
REPL_CACHE_PARSING = false : bool ==> Cache parsing in REPL (useful if same formula gets parsed multiple times, e.g., for Latex processing)
REPL_UNICODE = false : bool ==> Use UNICODE in REPL and editing window
REQUIRE_OUTPUT_ASSIGNMENT = false : bool ==> Require operations to assign to all outputs
SAFETY_MODEL_CHECK = false : bool ==> Only store one incoming transition/operation per reached state. Can be used when model checking of safety properties (invariants, goal, assertions). Do not use for LTL model checking, deadlock checking or animation.
SAT_SUPPORTED_INTERPRETER = false : bool ==> Use Kodkod for specific predicates inside the B interpreter
SHOW_EVENTB_ANY_VALUES = false : bool ==> Show top-level ANY variable values of B Operations without parameters as parameters
SHOW_FORMULA_EXPLANATIONS = false : bool ==> Show explanation nodes in state view for certain formulas (e.g., <:, ...)
SHOW_FORMULA_FUNCTOR = -1 : int ==> Show prefix/infix operators in state view for formulas longer than (use -1 to disable feature):
SMT = false : bool ==> Enable SMT-Mode (aggressive treatment of : and /: inside predicates)
SMTLIB_BOOL_ARRAYS_TO_SETS = false : bool ==> Translate SMTLib boolean Arrays to B Sets (when processing .smt2 files)
SMTLIB_PREPROCESS = false : bool ==> Preprocess before solving SMTLib formulas (when processing .smt2 files)
SMT_SUPPORTED_INTERPRETER = false : bool ==> Use Z3 / CVC4 for predicates inside the B interpreter
SOLVER_STRENGTH = 0 : nat ==> Strength of certain Solver propagations (0 is default)
STATIC_ORDERING = false : bool ==> Use static ordering to enumerate constants which occur in most PROPERTIES first
STATIC_SYMMETRY_DETECTION = true : bool ==> Detect symmetries in forall/exists and in PROPERTIES for deferred sets
STRICT_CLASH_CHECKING = false : bool ==> Do a stricter checking for name CLASHES in B machines
STRICT_RAISE_ENUM_WARNINGS = false : bool ==> Treat ENUMERATION warnings (aka VIRTUAL TIME-OUTS) as errors (Warning: can generate spurious NOT-WELL-DEFINED messages).
STRICT_RAISE_WARNINGS = false : bool ==> Treat warnings as errors (Warning: can generate spurious NOT-WELL-DEFINED messages).
STRING_AS_SEQUENCE = true : bool ==> Allow sequence operators (^) to be applied to STRINGs
SYMBOLIC = false : bool ==> Lazy expansion of lambdas and set comprehensions
SYMBOLIC_MC_TRY_OTHER_SOLVERS = false : bool ==> Symbolic Model Checking: Try different solver / settings combinations
SYMMETRY_MODE = off : [off,flood,nauty,hash] ==> Symmetry Mode: off,flood,canon,nauty,hash
SYNTAX_HIGHLIGHT = true : bool ==> Enable Syntax Colour Highlighting
TIME_OUT = 2500 : nat1 ==> Time out for computing enabled transitions (in ms, is multiplied by a factor for other computations, value 2147483646 turns time outs off)
TK_CUSTOM_STATE_VIEW_FONT_NAME = : string ==> Font for animation strings (if empty, the editor font will be used)
TK_CUSTOM_STATE_VIEW_FONT_SIZE = 0 : nat ==> Font size for animation strings (if 0, the editor font size will be used)
TK_CUSTOM_STATE_VIEW_PADDING = 0 : nat ==> Padding (in pixels) between images of custom TK state viewer
TK_CUSTOM_STATE_VIEW_STRING_PADDING = 10 : nat ==> Padding (in pixels) between strings of custom TK state viewer
TK_CUSTOM_STATE_VIEW_VISIBLE = true : bool ==> Use custom Tk viewer to represent state of B Machine
TLC_WORKERS = 2 : nat1 ==> Number of parallel workers for external tool TLC (for -workers option)
TRACE_INFO = false : bool ==> Provide various tracing information on the terminal/console.
TRACE_UPON_ERROR = false : bool ==> Trace upon error (requires running from source)
TRY_ATELIERB_PROVERS = false : bool ==> Try Atelier B Provers for unknown SMTLIB specifications
TRY_FIND_ABORT = false : xbool ==> Try more aggressively to detect not well-defined expressions (e.g. applying function outside of domain), may slow down animator; possible values false,true,full
TYPE_CHECK_DEFINITIONS = false : bool ==> Type check all visible DEFINITIONs (not just used ones)
USELESS_CODE_ELIMINATION = false : bool ==> Useless Code Elimination: try and find useless statements which have no influence on the result of an operation.
USE_IGNORE_PRAGMAS = false : bool ==> Use /*@desc prob-ignore */ pragmas when checking predicates (PROPERTIES,...)
USE_RECORD_CONSTRUCTION = true : bool ==> Records: Check if axioms/properties describe a record pattern
USE_SCOPE_DEFINITION = true : bool ==> Use SCOPE predicate (if defined) to restrict state space exploration for model checking and animation.
WARN_IF_DEFINITION_HIDES_VARIABLE = true : bool ==> Warn if a DEFINITION hides a variable with the same name
WD_ANALYSIS_FOR_ANIMATION = true : bool ==> Perform the WD analysis in the context of ProB animation (e.g., deferred sets considered finite)
WD_IGNORE_EXTERNAL = false : bool ==> Generate (unprovable) WD PO for external functions with WD condition
XML_ENCODING = auto : text_encoding ==> Encoding used for XML processing, e.g., with -logxml (auto,ISO-8859-1,ISO-8859-2,UTF-8,UTF-16,...)
DESCRIPTION of ProB PREFERENCE GROUPS:
* PREFERENCE GROUP integer : SETTINGS [int32,int8] : Values for MAXINT and MININT
* PREFERENCE GROUP time_out : SETTINGS [disable_time_out] : To disable TIME_OUT
* PREFERENCE GROUP model_check : SETTINGS [disable_max,unlimited] : Model Checking Limits
* PREFERENCE GROUP dot_colors : SETTINGS [classic,dreams,winter] : Colours for Dot graphs
Set NO_COLOR environment variable to disable terminal colors