Module Descriptions

namedescription
kernel_waitflags
This module manages the various choice points and enumerators of ProB, by maintaining the kernel Waitflags store.
chr_integer_inequality
Provide interface to CHR integer reasoning.
clpfd_interface
Provide interface to CLP(FD), with Prolog fallback in case of errors or when CLP(FD) turned off.
kernel_dif
This module provides a dif which works with reified equality.
kernel_objects
This module provides operations for the basic datatypes of ProB (equal, not_equal, enumeration).
bsets_clp
This module provides more advanced operations for the basic datatypes of ProB (mainly for relations, functions, sequences).
delay
Utilities to delay calls until sufficiently instantiated.
kernel_tools
This module provides utilities for term variables for B expressions and values.
avl_tools
This module provides AVL-tree utilities used by the kernel.
custom_explicit_sets
This module provides customised operations for the custom explicit set representations of ProB (closures, avl_sets and global_sets).
closures
This module provides various utility functions to analyse ProB closures.
memoization
This module provides memoization features (for closure expansion, closure1,...).
kernel_records
This module contains predicates that operate on the record type.
b_enumerate
This module takes care of enumerating B variables.
b_interpreter_eventb
This is an Event-B specific part of the interpreter. It contains the interpreter rules for events (as opposed to operations in classical B.
kernel_ordering
This module provides term ordering utilities.
bool_pred
This module provides reified equality and negation for pred_true/pred_false.
kernel_strings
This module provides (external) functions to manipulate B strings.
b_interpreter_check
This module provides a reified interpreter for certain predicates.
kernel_equality
This module provides reified equality and membership predicates.
fd_utils_clpfd
Basic checks for SET elements (equality, ...); maps to CLP(FD).
value_persistance
This module is responsible for caching constants and operations on disk
b_interpreter_components
This module can be used to split a predicate into components and solving each component individually (with tracing feedback).
b_compiler
This module compiles set comprehensions into closures; making them independent of the state of the B machine.
kernel_mappings
This module translates AST constructs to calls in the ProB kernel.
kernel_frozen_info
This module detects information about variables by using frozen.
inf_arith
This module contains arithmetic that also supports the symbol inf.
optimizing_solver
This module can be used to find optimal (maximal/minimal) solutions to a predicate.
store
This module takes care of storing B values in an environment and normalising values.
clpfd_tables
Provide interface to CLP(FD) table constraint.
clpfd_lists
This module provides a way to call the CLPFD clpfd_inlist and clpfd:element predicates for lists of FD values.
kernel_cardinality_attr
This module provides operations for cardinality of sets, storing them as attributes.
b_interpreter
This module provides the basic interpreter for expressions, predicates and substitutions.
kernel_propagation
This module has rules about when and how to propagate in the ProB kernel.
kernel_lists
This module provides operations for lists of B objects.
b_global_sets
This module provides support for deferred/enumerated set elements in B.
static_symmetry_reduction
This module provides support for symmetry reduction on deferred sets.
module_information
This module contains functionality to store basic documentation and information about all modules in ProB.
coverage_term_expander
This module generates various statistics by expanding and counting terms. Used in the coverage reports.
prob_cli
ProB start file in cli mode.
debugging_calls
This module provides functionality to specify meta-calls that (like a must-not-fail call) that are short-circuited when compiling production code.
debugging_calls_te
This sub-module contains the term-expansing code of the debugging call module, to remove ~~ calls
prob_startup
General startup code required for all versions of ProB.
pathes
This module contains code to compute compile-time and runtime-pathes.
tools
This module contains many general helper predicates.
tools_meta
A utility on timeouts safe_time_out seperated out from tools.pl to avoid cyclic module dependencies.
self_check
This module provides predicates to define and run unit tests.
tools_printing
This module contains printing/debug helper predicates.
debug
This module provides predicates to output debugging information when needed.
junit_tests
This module provides functionality to output test case results in a format compatible to junit.
tools_strings
A few utilities on strings/atoms seperated out from tools.pl to avoid cyclic module dependencies.
tools_files
A few utilities on files seperated out from tools.pl to avoid cyclic module dependencies.
eventhandling
The eventhandling module is used to register predicates that are called when certain events (like loading a specification) occurr.
tools_lists
A few utilities on lists seperated out from tools.pl to avoid cyclic module dependencies.
error_manager
The error_manager controls error messages. Error messages can be added, retrieved, counted,etc. The module also takes care of extracting source spans from error messages.
preferences
This module manages the various preferences of ProB. Preferences can be grouped, saved and restored and validated from file.
tools_io
This module contains file io helper predicates.
typechecker
A very basic runtime type checker for Prolog.
bsyntaxtree
This module provides operations on the type-checked AST.
translate
This module is responsible for pretty-printing B and CSP, source spans, ...
specfile
This module computes transitions and properties depending on the current animator mode.
kernel_freetypes
This module contains predicates that cope with the internal freetype. This is currently only used by the Z extension.
typing_tools
This module provides utilities for B types.
btypechecker
ProBs type checker and type inference module.
b_ast_cleanup
This module implements transformations/simplifications on the AST.
b_ast_cleanup_rewrite_rules
A rewriting engine for transformations/simplifications on the AST.
rewrite_rules_db
Rewrite rules for transformations/simplifications on the AST.
b_enumeration_order_analysis
This module computes DO_NOT_ENUMERATE variables.
performance_messages
This module allows to generate performance messages.
b_expression_sharing
Common-Subexpression Elimination.
bmachine_structure
Here is the data structure defined that holds a complete B machine.
b_read_write_info
ProBs type checker and type inference module.
b_state_model_check
This module provides various tools for constraint-based checking of B machines.
gensym
Tools for generating fresh symbols and numbers.
state_space
This module keeps track of the visited states by the animator/model checker.
state_space_open_nodes_c
This module keeps track of the unprocessed states queue of the model checker/animator.
state_packing
This module packs and upacks states and values.
hashing
This module computes hash values (mainly for states) for efficient indexing.
solver_interface
This module provides an interface to ProB's constraint solving kernel.
tools_timeout
This module contains higher-level timeout helper predicates.
smt_solvers_interface
This module provides an interface to SMT-solvers like CVC4 or Z3.
external_functions
This module provides a way to call external functions and predicates.
kernel_z
This module provides operations that are special to the Z notation (sequence compaction, items of a bag).
probhash
This is the interface to C code for generating good hashes (SHA-1).
table_tools
This module provides utilities to print tables.
random_permutations
This module provides on-the-fly construction of random permutations of intervals.
input_syntax_tree
Utilities on the raw AST.
succeed_max
This module provides a meta call to retrieve a specified maximum number of solutions.
version
This module contains the current version number of ProB together with automatically updated version control infos.
b_machine_hierarchy
This module provides functionality to visualize the dependencies of a B machine (include and sees relations, etc.).
pragmas
This module handles pragmas loaded with a b machine
bmachine_eventb
This module contains the rules for loading a Event-B machine or context.
z_tools
This module provides several helper predicates for ProZ.
dot_graph_generator
This a few tools for generating dot graphs.
parsercall
This module takes care of calling the Java B Parser if necessary.
tools_fastread
This module provides a more efficient way to parse and read Prolog terms.
system_call
Tools for calling underlying system procedures.
runtime_profiler
This module provides a simple runtime profiler.
bvisual2
This module contains functionality to analyse B expressions and predicates by evaluating and decomposing them into substructures.
haskell_csp
Interpreter for CSP.
haskell_csp_analyzer
Pre-compiler and analyzer for CSP.
csp_sets
Operations on CSP sets.
csp_sequences
Operations on CSP sequences.
csp_basic
Basic operations on CSP values.
csp_tuples
Operations on CSP tuples.
xtl_interface
Provides an interface to the non-B animators depending on animation-mode.
refinement_checker
A CSP refinement checker, along with determinism, deadlock and livelock checking.
user_interrupts
This module allows to call predicates which can be interrupted by cntrl-c.
user_signal
This is the interface to C code for interrupting Prolog runs with a UNIX signal.
pref_definitions
Tools for extracting information from DEFINITIONS.
tools_matching
A few utilities for fuzzy matching and completion.
predicate_debugger
The predicate debugger adds conjuncts one by one until the predicate becomes unsatisfiable.
tools_commands
A few utilities to call external programs/commands.
hit_profiler
This module provides a simple profile just counting number of hits.
avl_ugraphs
A module to interface ProB's avl_set relations with the SICStus ugraph library (unweighted graphs).
interval_calc
This module provides methods to calculate with interval expressions.
predicate_analysis
This is a module and plugin to extract information about expressions (e.g. integer bounds (aka intervals), cardinality) by static analysis. Used by Kodkod.
kodkod_tools
This module contains helper predicates for the Kodkod translation part of ProB
kodkod_translate
This module contains the code to translate B expressions and predicates into Kodkod.
kodkod_rewrite
This module contains rewriting rules that are applied during tge translation to Kodkod.
kodkod_integer_recalc
This module provides functionality to adapt the outcome of the interval analysis to the needs of the Kodkod translation.
kodkod2
This module contains the several phases of a translation process to Kodkod.
kodkod_typing
This is a small internal type checker for Kodkod expressions. It's needed for inserting casts between different integer representations.
kodkod_printer
This module contains code to print the description of a Kodkod problem, used to send it to a seperate process.
kodkod_process
This is the inter-process communication with the Java process that contains the Kodkod engine.
kodkod_annotator
Annotate specific constraints within a typed B or Event-B AST with external predicate calls to be solved by Kodkod.
kodkod
This is the central module of the B to Kodkod translation (still experimental).
satsolver
This is the interface between ProB and the Glucose SAT solver
xml2b
This module transforms XML into a B representation.
xml_prob
This module transforms XML into a Prolog representation, adaptation of SICStus library module.
model_translation
This module translates the models found by an SMT-solvers to a ProB state.
solver_dispatcher
This module provides an interface to SMT-solvers like CVC4 or Z3.
cvc4interface
This is the interface between ProB and the CVC4 SMT solver
z3interface
This is the interface between ProB and the Z3 SMT solver
ast_cleanup_for_smt
This module implements transformations needed by the SMT-LIB translation.
smt_common_predicates
Shared Predicates used by several Modules belonging to the SMT Solvers Integration.
seq_rewriter
This module implements transformations of sequences to sets as needed by the SMT-LIB translation.
prob_state_predicates
This module translates ProB's (local) states to predicates understandable for CVC4/Z3
static_ordering
Sort a list of identifiers according to the number of occurences inside conjuncts of a predicate. Mimics the static ordering heursitic of SAT solvers
unsat_cores
Computation of unsatisfiable cores of predicates.
partition_detection
This module detects set partition predicates.
bmachine_static_checks
Static checking of B machines upon construction. Detection of name clashes and uninitalised variables.
bmachine_construction
This module contains the rules for loading, including, seeing, etc. B machines, scope of constants, variables, parameters, etc.
record_detection
This module detects bijections between deferred sets and cartesian products, and compiles them away.
bmachine
This module provides access to the various parts of the loaded B machine.
source_profiler
This module provides a simple B model source profiler.
b_operation_cache
This module caches B operation results on projected states.
translate_keywords
This module is responsible for translating identifiers which happen to be keywords
chr_set_membership
Provide interface to CHR set reasoning.
b_trace_checking
Replay saved traces; raise error if not possible. Used in regression testing.
state_space_exploration_modes
This module groups various techniques for exploring the state space.
eclipse_interface
This module provides the Prolog interface to Java and other languages (usually called via socket server).
model_checker
The core model checker (does not treat LTL).
static_analysis
This module provides predicates for static analysis of Event-B and B models
enabling_predicates
This module provides predicates computing weakest preconditions without taking the preconditions of the substitutions into account
weakest_preconditions
This module provides weakest precondition calculation for B and Event-B operations.
b_simplifier
This module provides predicates for simplifying B predicates
prob2_interface
This module provides the new ProB2 Prolog interface to Java and other languages (usually called via socket server).
symmetry_marker
This module computes symmetry hash markers for B states (used for hash symmetry).
evalstores
This module provides methods to construct stores dynamically and evaluate expressions in them, possibly used only by ProB1 for Rodin.
enable_graph
This module provides operations of directed enable graphs.
enabling_analysis
This module computes enabling relations for B operations.
pge_algo
This module contains predictes for model checking B and Event-B models using the partial guard evaluation optimisastion.
ample_sets
This module contains predictes for partial order reduction using the ample sets' theory.
ltl_fairness
This module provides LTL fairness checking on models.
ltl_translate
This module provides utility predicates for pretty-printing LTL and CTL formulae.
ltl_tools
This module provides utility predicates for the LTL and CTL model checkers.
ltl_propositions
This module provides predicates for evaluating atomic and transition prepositions.
ltlc
This is the interface to the LTL model checker's C code.
ltl_verification
This module provides predicates for checking an LTL formula on a concrete path.
ltl2ba
This is the interface to the LTL3BA tool for LTL ---> NBA.
state_space_explorer
This module provides predicates for state space exploration without performing any checks.
safety_mc
This module provides predicates for automata-based model checking of safety properties.
ltl_safety
This module provides predicates for checking whether an LTL formula is a safety property.
ltl
This module provides LTL model checking on models.
disprover
Rodin Prover / Disprover
well_def_analyser
This module computes WD conditions in AST.
well_def_hyps
This module provides hypotheses stack management.
well_def_prover
This module proves WD POs.
atelierb_provers_interface
This module provides an interface to the Atelier-B provers.
state_space_reduction
This module computes state space projections for dot visualizations.
graph_canon
Compute canonical forms of state graphs and store them using nauty C interface.
graph_iso_nauty
Translate a state graph into a form for nauty and insert into internal DB of nauty C-interface.
graphiso
This is the interface to the C code for the symmetry reduction with nauty.
b_machine_identifier_normalization
Normalize all identifiers and strings in the currently loaded B machine. Patterns are preserved using specific prefixes: variables (v), constants (c), deferred sets (s), enumerated elements (e), record fields (f), operation parameters (p), operation return ids (r), operation names (o), local ids (l) e.g. in quantifiers or comprehension sets. Intended to be used for deep learning tasks on B/Event-B machines.
before_after_predicates
This module computes before-after-predicates of B and Event-B actions.
operation_data_generator
This module generates data to train a neural network that predicts the library components that are necessary to synthesize a B operation's substitution for given I/O examples.
symmetry_reduction
Symmetry reduction for synthesis
constraints
This module defines the constraint for synthesizing invariants, preconditions or complete operations using simple I/O examples.
library_setup
This module defines the default library configuration and sets up the selected library from the user used for synthesis.
location_vars_to_program
This module defines the translation from a distribution of location variables to a B/Event-B AST.
b_synthesis
This module contains the synthesis workflow following the approach by Gulwani et.al. using SMT solving
fuzzfile
This module includes a parser for files generated by the fuzz type checker for Z specifications.
subexpressions
This module contains predicates to decompose and operate on Z expressions
zenvironment
This module provides predicates to access a type environment for Z specifications.
schemavars
This module contains code to extract the variables declared and visible in a schema declaration
zparameters
This module provides functionality to replace a Z schema's parameter by expressions
schemaexpansion
This module includes code for expanding Z schemas, i.e. removing references to other schemas by their content and evaluating schema calculus expressions
dependence
This module provides a predicate to find dependencies between Z schemas
z_typechecker
This module contains a type checker for Z specifications, mainly because the types are needed for the translation to B.
ztransformations
This module provides several transformations on the Z syntax tree in order to prepare the translation to B.
consistencycheck
This module provides functionality to check whether the internal data structures of ProZ are consistent.
proz
This is the central ProZ module for translating Z specification into B.
state_viewer_images
This module can provide a Tk graphical representation of a B state.
eval_strings
Tools to evaluate B expressions and predicates passed as strings.
dpllt_preprocessing
This module provides several preprocessing steps for the DPLL(T) based solver such as lifting negations from B operators.
dpllt_pred_to_sat
This module provides the conversion from B predicates to SAT formulae and vice-versa to be used for DPLL(T).
dpllt_settings
This module provides settings for the DPLL(T) solver.
dpllt_sat_solver
This module provides the SAT solver for DPLL(T) implementing CDCL with backjumping.
dpllt_solver
This module provides a DPLL(T) based solver for B.
bmc
A finite-state symbolic model checker based on BMC.
predicate_handling
Handling and creation of predicates used in the symbolic model checker.
solver_handling
Internal data structures for solver / prover
ce_replay
Replay symbolically generated traces.
kinduction
A finite-state symbolic model checker based on k-Induction.
ic3
A symbolic model checker based on IC3.
unsat_core_generalization
Counter example generalization based on unsat cores.
mic_generation
Generation of minimal inductive (sub-)clauses.
coverage_statistics
This module is responsible for computing state space coverage info.
meta_interface
This module provides access and description to a variety of Prolog commands.
visualize_graph
This module generates various dot graphs (state space, single state, transition diagram,...).
reduce_graph_state_space
Various minimization/reduction algorithms for the state space.
dot_graphs_static_analysis
This module provides predicates for printing out graphs in dot-format calculated by computing some of the static analyses used for partial order reduction
state_custom_dot_graph
This module provides a way to generate custom state graphs (using info from DEFINITIONS).
sap
This module contains code to generate test cases based on Event-B or Classical B models
bvisual
Generate a dot visualization of B predicates and expressions.
bvisual_any_maxsolver
Tool for generating dot visualization of B predicates and expressions. Finds a maximally satisfiable subset for predicates.
maxsolver
Finds a maximally satisfiable subset for predicates; used by bvisual_any_maxsolver.
cbc_refinement_checks
This module provides constraint-based checking of B and Event-B refinements.
state_permuter
Computes all permutations of a B state; used by flooding symmetry.
ltsmin
This is the interface to C code for LTSmin integration.
ctl
This module provides CTL model checking on models.
b_show_history
Write animator history into a file in B format.
mcdc_coverage
A module to construct MC/DC coverage criterion predicates and check them in the state space
prologTasks
This module provides the interface to the Tcl/Tk tree_inspector.
tcltk_interface
Interface between the Tcl/Tk GUI, the CLI and the internal modules.
state_space_dijkstra
Tools for finding shortest paths between visited states.
predicate_evaluator
Various tools to analyse conjunctions of predicates textually (along with statistics).
prob_socketserver
The socket server is used to interface to Java and other languages.
logger
This module is responsible for (xml and prolog) logging.
zmq
This is the interface to C code for distributed model checking.
master
This is the interface to C code for distributed model checking.
worker
This is the interface to C code for distributed model checking.
kodkod_test
This is a test engine for the Kodkod translation functionality.
smtlib2_cli
Command line interface and REPL for SMT-LIB 2 files.
smtlib2_interpreter
The SMT-LIB 2 Interpreter - Main Interpreter
smtlib2_environment
The SMT-LIB 2 Interpreter - Environment
smtlib2_translation
The SMT-LIB 2 Interpreter - Translation from SMT-LIB 2 to B
smtlib2_parser
The SMT-LIB 2 Interpreter - Parser
disprover_test_runner
Rodin Prover / Disprover
latex_processor
This module processes Latex Files for ProB commands.
ctigar
An infinite-state symbolic model checker based on CTIGAR.
predicate_abstraction
An abstract domain using predicate abstraction.
compile_time_flags
This module describes the possible compile-time flags of ProB.
pltables_export
This module provides html/latex and codespeed export functionality for the other table modules
pltables_export_tools
Tools used by several of the export modules
pltables_export_html
This module is used to export coverage tables to html.
pltables_export_latex
This module is used to export coverage tables to latex.
pltables_export_xml
This module is used to export coverage tables to xml.
pltables_export_csv
This module is used to export coverage tables to csv.
pltables
This module is used to generate, store and export coverage tables.
coverage_tools
This module automatically generates the SICStus Prolog coverage information reports.
testcases
This module defines the (integration) tests.
test_runner
This module runs the tests stored in testcases.pl.
prob_cov
ProB start file with coverage tests activated. Includes predicates to execute certain tests. Used by Jenkins.