4.51 Simplify Set

Simplification des expressions ensemblistes du but courant

Syntaxe

  ss

Utilisation

Cette commande déclenche un certains nombre de simplifications sur les expressions ensemblistes composant le but. Les mécanismes mis en place sont nettement plus puissants que les règles de la base de règles. Cette commande doit donc améliorer la simplification du but.

Cette simplification ensembliste utilise principalement trois outils.

Le premier outil travaille sur les opérateurs ensemblistes et fonctionnels suivants :

De plus, il est capable de gérer l’ensemble BOOL, et certaines opérations sur l’ensemble telle que l’appartenance à un ensemble.

En raison de la complexité de l’algorithme, seuls les opérateurs ensemblistes sont reconnus par le deuxième outil :

Le troisième outil reconnait les opérateurs :

Remarquons une limitation importante de cette commande : le nombre maximum d’éléments d’un ensemble énuméré gérable par ss est fixé à dix en raison de la compléxité de leur traitement.

Exemple

Soit une obligation de preuve transformée par la commande mp en :


 
    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  
 
 


La commande ss va essayer de simplifier le but.


 
PRI> ss  
Begin SimplifySet  
 
 


et le nouveau but devient :


 
    Goal  
        ({2|->3}/\{2|->xx})-{yy|->3} = ff  
 
 


Cette nouvelle forme du but est effectivement plus simple. Sans avoir d’hypothèses sur les valeurs de xx et yy, il n’est pas possible de continuer les simplifications.