(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