No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
[[Category:User Manual]] | [[Category:User Manual]] | ||
ProB requires all deferred sets to be given a finite cardinality. If no cardinality is specified, a default size will be used. Also, unless finite bounds can be inferred by the ProB constraint solver, mathematical integers will only be enumerated within <tt>MININT</tt> to <tt>MAXINT</tt> (there is now some support for checking whether such an enumeration did occur, in particular when using the commands in the "Analyse Predicate" sub-menu). | ProB in general requires all deferred sets to be given a finite cardinality. If no cardinality is specified, a default size will be used. Also, unless finite bounds can be inferred by the ProB constraint solver, mathematical integers will only be enumerated within <tt>MININT</tt> to <tt>MAXINT</tt> (there is now some support for checking whether such an enumeration did occur, in particular when using the commands in the "Analyse Predicate" sub-menu). | ||
Other general limitations are: | Other general limitations are: |
ProB in general requires all deferred sets to be given a finite cardinality. If no cardinality is specified, a default size will be used. Also, unless finite bounds can be inferred by the ProB constraint solver, mathematical integers will only be enumerated within MININT to MAXINT (there is now some support for checking whether such an enumeration did occur, in particular when using the commands in the "Analyse Predicate" sub-menu).
Other general limitations are:
Note however, that the transitive closure operator closure1 is fully supported, and hence one can translate an expression closure(e), where e is a binary relation over some domain d, into the expression closure1(e) \/ id(d).
See the page Using ProB with Atelier B for more details.
It is possible to use multiple B machines with ProB. However, ProB may not enforce all of the classical B visibility rules (although we try to). As far as the visibility rules are concerned, it is thus a good idea to check the machines in another B tool, such as Atelier B or the B-Toolkit.
While refinements are supported, the preconditions of operations are not propagated down to refinement machines. This means that you should rewrite the preconditions of operations (and, if necessary, reformulate them in terms of the variables of the refinement machine). Also, the refinement checker does yet check the gluing invariant.
Note however, that for Rodin Event-B models we now support multi-level animation and validation.