In 2023, the Professional version will be updated twice, through a corrective version in Q1 2023 and an evolutionary version in Q3 2023 with the display of counter-examples in the proof interface. In 2024, the T2 EN50128 and IEC 61508 certified Professional version will be made available, as well as the Community version integrating a RUST code generator.

 

List of corrections for the Professional version Q1 2023:

  • More powerful automatic checking of proof rules Packing of pup file to a project resource
  • Launching bbatch on a given workspace is made easier
  • Archiving in Windows fixed Arguments to the `bb` (loop) command in an interactive proof are now saved in the correct order.
  • Improved type inference in the B compiler
  • Fixed the Linux installer to avoid failures in newer distributions
  • Fixed constant values in the pptranssmt translator
  • The size of the horizontal scroll bar in the proof tree is now correct.
  • XML output from bbatch for the `gs` interactive prover command is now well balanced
  • The GUI does not crash when receiving corrupted XML data from bbatch as part of internal interactions; instead, it produces diagnostic information.
  • Improved assumption selection in the `pptranssmt` translator.
  • `Force(Fast)` is now handled for projects in NG mode (i.e, in `pos` format)
  • The `iterate` operator is now correctly rendered from the proof obligation view in the component editor.
  • Correction in rules created by the SMT hammer in the interactive proof.
  • Improved support for operation calls and inlined imports in NGOP
  • Fixed an encoding issue in the proof mechanism writer `ppTransSmt`
  • Added support for various B operators in the proof mechanism writer `ppTransSmt`
  • Checking for B0 conditions in the type check phase is disabled for system projects.
  • Documentation for Event-B support has been updated with closure implementations (syntax and proof obligations).
  • Error messages displayed in the component editor can be copied to the clipboard.
  • The dialog for saving interactive proofs in the `User_Pass` theory now includes checkboxes for saving to the PMM component file, the PUP component file, or the PatchProver project file.
  • Added setting to display the host name in the main window title
  • Added custom proof obligation generator for optional Event-B proof obligations
  • The user can now undo the closure of the interactive prover (if interactive proof commands have been issued).

List of corrections for the Professional version Q3 2023:

  • Display of counterexamples in the modelling and proof interface. When using the formal B method, design errors correspond to invalid proof obligations. Atelier B automatic provers are not able to identify whether a proof failure is due to a logical error, whereas SMT solvers are able to prove a first-order logic formula but also to refute it and produce a counterexample. These counterexamples can give the user valuable insights into design errors. SMT solvers have been integrated into the most recent version of Atelier B, but only to use their proof capabilities.
Publié le 21/02/2017 |

Cette version contient de nombreux correctifs et plusieurs améliorations. La fonctionnalité le plus marquante est une fonction de visualisation et de gestion des obligations de preuves qui est directement dans l’éditeur de modèle. On retrouve aussi deux nouvelles capacités pour la preuve interactive ainsi qu’un enrichissement de l’outil de gestion des règles de preuves.

Gestion des obligations de preuve dans l’éditeur de modèle

Il y a maintenant une nouvelle possibilité d’explorer la relation entre un modèle B et ses obligations de preuves (OP). Vous pouvez en effet visualiser directement les OP le long du texte source directement dans l’éditeur. Cette possibilité provient des informations de traçabilité des formules que gère le nouveau générateur d’obligation de preuve.

Cette fonction doit être activée dans les préférences de l’éditeur, comme elle peut être lente sur de gros modèles. Une fois ceci fait, deux colonnes apparaissent le long du texte et donnent l’état des OP associées aux lignes visibles d’un part et associées globalement au modèle d’autre part. Le statut de preuve est représenté par des couleurs et il est possible  de regarder une OP particulière en détail.

Quand le modèle est modifié, l’AtelierB lance la régénération des OP ainsi que leurs preuves en mode automatique. Il est ainsi possible de travailler complétement dans l’éditeur tant que la preuve interactive n’est pas nécessaire !

Il est aussi possible d’exploiter la traçabilité complète des formules, c’est-à-dire que vous pouvez vérifier quelles parties du modèle influent sur une PO simplement en sélectionnant le texte du modèle. Il est aussi possible de faire l’inverse en sélectionnant une partie de l’OP afin de visualiser de quelles parties du modèle les formules proviennent. Ces deux fonctions constituent un puissant outil pour comprendre comment les propriétés d’un modèle B sont prouvées (ou réfutées).

Améliorations pour la preuve

Deux nouvelles fonctions pour la preuve interactives ont été implémentées.

Il a toujours été possible de limiter précisément le temps d’exécution du prouveur « PP » en ajoutant un paramètre dans la commande textuelle. Maintenant cela est aussi systématiquement fait avec les commandes de l’interface graphique et il est possible de régler le temps avec la valeur numérique qui se trouve à côté des icônes de lancement. Ceci est important pour limiter le temps de rejeu global d’un projet car le prouveur « PP » peut être lent à s’arrêter.

La deuxième amélioration est la possibilité d’écrire des suites de commande de preuves dans une nouvelle section appelée « User_Tactic » du fichier « PatchProver ». On peut ensuite lancer ces sortes de macro de preuves avec la nouvelle commande « at » (Apply Tactic) durant la preuve interactive. La commande « at » en elle-même disparait de l’historique de preuve en faveur de son contenu. Cela permet de ne pas introduire de problème de rejeu de preuve en cas de modification de la section « User_Tactic ».

Nouvelles possibilités pour l’outil de gestion des règles de preuves (seulement pour l’édition avec maintenance)

Dans l’édition avec maintenance de l’AtelierB se trouve un outil pour aider à démontrer  et valider les règles de preuves qui sont écrites pour rendre possible et rapide la preuve d’un modèle B. Cet outil permet de gérer efficacement le grand nombre de règles de preuve que l’on trouve dans les projets industriels.

Cette nouvelle version apporte une meilleure gestion des règles dupliquées d’un projet. Pour des raisons techniques, une même règle est souvent copiée dans plusieurs fichiers de composant et l’outil peut maintenant trouver automatiquement cet ensemble de règles identiques et permet de les traiter toutes avec une seule action de l’utilisateur.

A été ajouté également un nouveau type de rapport qui présente dans un fichier l’ensemble des règles qui nécessitent encore d’être travaillées. L’outil peut aussi maintenant rechercher et supprimer un ensemble de règles (théories) inutilisé.  Finalement l’outil a une meilleure fonction de tri et d’étiquetage des règles considérées comme invalides lors du travail de vérification.

Pour toute information complémentaire sur les nouvelles fonctions, vous pouvez consulter les notes de version. Vous pouvez aussi contacter directement l’équipe de l’AtelierB à contact@atelierb.matiere-1ere.fr.

Plus de détails dans la note de version