Simplification of set expressions in the current goal
ss
This command launches some simplifications on the set expressions appearing in the goal. Involved mechanisms are much more powerful than the rules from the rule base. This command must therefore make the simplification of the goal better.
Set simplification mainly uses three tools.
The first tool works on the following set and functional operators:
Moreover, it can manage the BOOL set, and some set operations such as set membership. Because of the algorithm complexity, only the set operators are recognised by the second tool:
The third tool recognises the following operators:
It is worthy noting an important limitation of this command : The maximum number of elements of an enumerated set that can be handled by ss is set to ten because of the processing complexity.
Given a proof obligation transformed by command mp into:
Hypothesis ff: INTEGER +-> INTEGER & xx: INTEGER & yy: INTEGER & ff: INTEGER <-> INTEGER & dom(ff) <: INTEGER & ran(ff) <: INTEGER Goal ({2|->3,3|->4}/\{2|->xx})-{yy|->3} = ff
|
ss is applied to simplify the goal.
PRI> ss Begin SimplifySet
|
and the new goal is:
Goal ({2|->3}/\{2|->xx})-{yy|->3} = ff
|
This goal is indeed simpler. Without any hypothesis involving xx and yy, the simplification process cannot go further.