68
MGL7160 Méthodes formelles et semi-formelles Méthodologie Roger Villemaire Département d’informatique UQAM 2 avril 2013

MGL7160 Méthodes formelles et semi-formelles - Méthodologie

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: MGL7160 Méthodes formelles et semi-formelles - Méthodologie

MGL7160 Méthodes formelleset

semi-formellesMéthodologie

Roger Villemaire

Département d’informatiqueUQAM

2 avril 2013

Page 2: MGL7160 Méthodes formelles et semi-formelles - Méthodologie

Plan

1 Vérification de logiciels

2 ATP

3 Méthodologie de vérification

Page 3: MGL7160 Méthodes formelles et semi-formelles - Méthodologie

Plan

1 Vérification de logiciels

2 ATP

3 Méthodologie de vérification

Page 4: MGL7160 Méthodes formelles et semi-formelles - Méthodologie

Méthodologie

• Une vérification réussie peut demander un effort important,il est donc important d’appliquer une approchesystématique pour permettre de :

• contrôler l’effort de vérification nécessaire,• éviter d’effectuer des vérifications redondantes,• éviter de faire des vérifications inutiles,• ou encore de bien déterminer la portée de la vérification

effectuée.

Page 5: MGL7160 Méthodes formelles et semi-formelles - Méthodologie

Méthodologie

• Une vérification réussie peut demander un effort important,il est donc important d’appliquer une approchesystématique pour permettre de :

• contrôler l’effort de vérification nécessaire,• éviter d’effectuer des vérifications redondantes,• éviter de faire des vérifications inutiles,• ou encore de bien déterminer la portée de la vérification

effectuée.

Page 6: MGL7160 Méthodes formelles et semi-formelles - Méthodologie

Méthodologie

• Une vérification réussie peut demander un effort important,il est donc important d’appliquer une approchesystématique pour permettre de :

• contrôler l’effort de vérification nécessaire,• éviter d’effectuer des vérifications redondantes,• éviter de faire des vérifications inutiles,• ou encore de bien déterminer la portée de la vérification

effectuée.

Page 7: MGL7160 Méthodes formelles et semi-formelles - Méthodologie

Méthodologie

• Une vérification réussie peut demander un effort important,il est donc important d’appliquer une approchesystématique pour permettre de :

• contrôler l’effort de vérification nécessaire,• éviter d’effectuer des vérifications redondantes,• éviter de faire des vérifications inutiles,• ou encore de bien déterminer la portée de la vérification

effectuée.

Page 8: MGL7160 Méthodes formelles et semi-formelles - Méthodologie

Méthodologie

• Une vérification réussie peut demander un effort important,il est donc important d’appliquer une approchesystématique pour permettre de :

• contrôler l’effort de vérification nécessaire,• éviter d’effectuer des vérifications redondantes,• éviter de faire des vérifications inutiles,• ou encore de bien déterminer la portée de la vérification

effectuée.

Page 9: MGL7160 Méthodes formelles et semi-formelles - Méthodologie

Méthodologie

• Une vérification réussie peut demander un effort important,il est donc important d’appliquer une approchesystématique pour permettre de :

• contrôler l’effort de vérification nécessaire,• éviter d’effectuer des vérifications redondantes,• éviter de faire des vérifications inutiles,• ou encore de bien déterminer la portée de la vérification

effectuée.

Page 10: MGL7160 Méthodes formelles et semi-formelles - Méthodologie

Spécification

• L’approche JML est de considérer, pour un programme,une spécification formée :

• d’invariants, qui contraignent les valeurs des attributs,• de contrats, qui contraignent le comportement des

opérations.

• Un contrat est formé de préconditions, de postconditions etd’un ensemble de références qui peuvent être modifiées.

Page 11: MGL7160 Méthodes formelles et semi-formelles - Méthodologie

Spécification

• L’approche JML est de considérer, pour un programme,une spécification formée :

• d’invariants, qui contraignent les valeurs des attributs,• de contrats, qui contraignent le comportement des

opérations.

• Un contrat est formé de préconditions, de postconditions etd’un ensemble de références qui peuvent être modifiées.

Page 12: MGL7160 Méthodes formelles et semi-formelles - Méthodologie

Spécification

• L’approche JML est de considérer, pour un programme,une spécification formée :

• d’invariants, qui contraignent les valeurs des attributs,• de contrats, qui contraignent le comportement des

opérations.

• Un contrat est formé de préconditions, de postconditions etd’un ensemble de références qui peuvent être modifiées.

Page 13: MGL7160 Méthodes formelles et semi-formelles - Méthodologie

Spécification

• L’approche JML est de considérer, pour un programme,une spécification formée :

• d’invariants, qui contraignent les valeurs des attributs,• de contrats, qui contraignent le comportement des

opérations.

• Un contrat est formé de préconditions, de postconditions etd’un ensemble de références qui peuvent être modifiées.

Page 14: MGL7160 Méthodes formelles et semi-formelles - Méthodologie

Spécification

• L’approche JML est de considérer, pour un programme,une spécification formée :

• d’invariants, qui contraignent les valeurs des attributs,• de contrats, qui contraignent le comportement des

opérations.

• Un contrat est formé de préconditions, de postconditions etd’un ensemble de références qui peuvent être modifiées.

Page 15: MGL7160 Méthodes formelles et semi-formelles - Méthodologie

États observés

• L’approche privilégiée par KeY est celle dite des étatsobservés, où

• chaque opération doit satisfaire ses contrats,• les invariants doivent être vérifiés à l’initialisation du

système,• les invariants doivent être préservés par toutes les

opérations.

Page 16: MGL7160 Méthodes formelles et semi-formelles - Méthodologie

États observés

• L’approche privilégiée par KeY est celle dite des étatsobservés, où

• chaque opération doit satisfaire ses contrats,• les invariants doivent être vérifiés à l’initialisation du

système,• les invariants doivent être préservés par toutes les

opérations.

Page 17: MGL7160 Méthodes formelles et semi-formelles - Méthodologie

États observés

• L’approche privilégiée par KeY est celle dite des étatsobservés, où

• chaque opération doit satisfaire ses contrats,• les invariants doivent être vérifiés à l’initialisation du

système,• les invariants doivent être préservés par toutes les

opérations.

Page 18: MGL7160 Méthodes formelles et semi-formelles - Méthodologie

États observés

• L’approche privilégiée par KeY est celle dite des étatsobservés, où

• chaque opération doit satisfaire ses contrats,• les invariants doivent être vérifiés à l’initialisation du

système,• les invariants doivent être préservés par toutes les

opérations.

Page 19: MGL7160 Méthodes formelles et semi-formelles - Méthodologie

États observés

• L’approche privilégiée par KeY est celle dite des étatsobservés, où

• chaque opération doit satisfaire ses contrats,• les invariants doivent être vérifiés à l’initialisation du

système,• les invariants doivent être préservés par toutes les

opérations.

Page 20: MGL7160 Méthodes formelles et semi-formelles - Méthodologie

Plan

1 Vérification de logiciels

2 ATP

3 Méthodologie de vérification

Page 21: MGL7160 Méthodes formelles et semi-formelles - Méthodologie

Obligations

• L’outil KeY génère automatiquement à partir d’unespécification JML des formules JavaDL.

• KeY utilise des gabarits qui produisent des formules (proofobligations), correspondant à l’approche de vérification desétats observés.

• Il peut donc y avoir des façons différentes de justifier deschoses analogues.

• C’est pourquoi il faut être attentif à la méthodologie devérification utilisée ainsi qu’à ses avantages et limitations.

Page 22: MGL7160 Méthodes formelles et semi-formelles - Méthodologie

Obligations

• L’outil KeY génère automatiquement à partir d’unespécification JML des formules JavaDL.

• KeY utilise des gabarits qui produisent des formules (proofobligations), correspondant à l’approche de vérification desétats observés.

• Il peut donc y avoir des façons différentes de justifier deschoses analogues.

• C’est pourquoi il faut être attentif à la méthodologie devérification utilisée ainsi qu’à ses avantages et limitations.

Page 23: MGL7160 Méthodes formelles et semi-formelles - Méthodologie

Obligations

• L’outil KeY génère automatiquement à partir d’unespécification JML des formules JavaDL.

• KeY utilise des gabarits qui produisent des formules (proofobligations), correspondant à l’approche de vérification desétats observés.

• Il peut donc y avoir des façons différentes de justifier deschoses analogues.

• C’est pourquoi il faut être attentif à la méthodologie devérification utilisée ainsi qu’à ses avantages et limitations.

Page 24: MGL7160 Méthodes formelles et semi-formelles - Méthodologie

Obligations

• L’outil KeY génère automatiquement à partir d’unespécification JML des formules JavaDL.

• KeY utilise des gabarits qui produisent des formules (proofobligations), correspondant à l’approche de vérification desétats observés.

• Il peut donc y avoir des façons différentes de justifier deschoses analogues.

• C’est pourquoi il faut être attentif à la méthodologie devérification utilisée ainsi qu’à ses avantages et limitations.

Page 25: MGL7160 Méthodes formelles et semi-formelles - Méthodologie

Obligations

• L’outil KeY génère automatiquement à partir d’unespécification JML des formules JavaDL.

• KeY utilise des gabarits qui produisent des formules (proofobligations), correspondant à l’approche de vérification desétats observés.

• Il peut donc y avoir des façons différentes de justifier deschoses analogues.

• C’est pourquoi il faut être attentif à la méthodologie devérification utilisée ainsi qu’à ses avantages et limitations.

Page 26: MGL7160 Méthodes formelles et semi-formelles - Méthodologie

Le rôle des invariants

• Les invariants d’instance d’une classe sont des contraintessur les attributs qui doivent être satisfaites sur desinstances “correctes” de la classe.

• Les invariants font donc partie intégrante de la définition dela classe, même si le langage de programmation n’offrepas de support pour eux.

• Néanmoins, lors de la conception du système, lesinvariants sont, souvent implicitement, considérés commeétant satisfaits.

• En particulier, lors de la réalisation des opérations, onprésuppose normalement que les invariants sont satisfaitssur le receveur (self).

• L’opération sera correcte que sur des arguments corrects !

Page 27: MGL7160 Méthodes formelles et semi-formelles - Méthodologie

Le rôle des invariants

• Les invariants d’instance d’une classe sont des contraintessur les attributs qui doivent être satisfaites sur desinstances “correctes” de la classe.

• Les invariants font donc partie intégrante de la définition dela classe, même si le langage de programmation n’offrepas de support pour eux.

• Néanmoins, lors de la conception du système, lesinvariants sont, souvent implicitement, considérés commeétant satisfaits.

• En particulier, lors de la réalisation des opérations, onprésuppose normalement que les invariants sont satisfaitssur le receveur (self).

• L’opération sera correcte que sur des arguments corrects !

Page 28: MGL7160 Méthodes formelles et semi-formelles - Méthodologie

Le rôle des invariants

• Les invariants d’instance d’une classe sont des contraintessur les attributs qui doivent être satisfaites sur desinstances “correctes” de la classe.

• Les invariants font donc partie intégrante de la définition dela classe, même si le langage de programmation n’offrepas de support pour eux.

• Néanmoins, lors de la conception du système, lesinvariants sont, souvent implicitement, considérés commeétant satisfaits.

• En particulier, lors de la réalisation des opérations, onprésuppose normalement que les invariants sont satisfaitssur le receveur (self).

• L’opération sera correcte que sur des arguments corrects !

Page 29: MGL7160 Méthodes formelles et semi-formelles - Méthodologie

Le rôle des invariants

• Les invariants d’instance d’une classe sont des contraintessur les attributs qui doivent être satisfaites sur desinstances “correctes” de la classe.

• Les invariants font donc partie intégrante de la définition dela classe, même si le langage de programmation n’offrepas de support pour eux.

• Néanmoins, lors de la conception du système, lesinvariants sont, souvent implicitement, considérés commeétant satisfaits.

• En particulier, lors de la réalisation des opérations, onprésuppose normalement que les invariants sont satisfaitssur le receveur (self).

• L’opération sera correcte que sur des arguments corrects !

Page 30: MGL7160 Méthodes formelles et semi-formelles - Méthodologie

Le rôle des invariants

• Les invariants d’instance d’une classe sont des contraintessur les attributs qui doivent être satisfaites sur desinstances “correctes” de la classe.

• Les invariants font donc partie intégrante de la définition dela classe, même si le langage de programmation n’offrepas de support pour eux.

• Néanmoins, lors de la conception du système, lesinvariants sont, souvent implicitement, considérés commeétant satisfaits.

• En particulier, lors de la réalisation des opérations, onprésuppose normalement que les invariants sont satisfaitssur le receveur (self).

• L’opération sera correcte que sur des arguments corrects !

Page 31: MGL7160 Méthodes formelles et semi-formelles - Méthodologie

Le rôle des invariants

• Les invariants d’instance d’une classe sont des contraintessur les attributs qui doivent être satisfaites sur desinstances “correctes” de la classe.

• Les invariants font donc partie intégrante de la définition dela classe, même si le langage de programmation n’offrepas de support pour eux.

• Néanmoins, lors de la conception du système, lesinvariants sont, souvent implicitement, considérés commeétant satisfaits.

• En particulier, lors de la réalisation des opérations, onprésuppose normalement que les invariants sont satisfaitssur le receveur (self).

• L’opération sera correcte que sur des arguments corrects !

Page 32: MGL7160 Méthodes formelles et semi-formelles - Méthodologie

Le rôle des invariants en KeY

• Conformément à cette vision des choses, le système KeYajoute les invariants aux préconditions lors de lavérification d’un contrat.

• Le choix des invariants est configurable au moment duchoix du contrat (onglet “Assumed Invariants”).

• Comme on l’a déjà vu, KeY ajoute déjà aux contrats lesinvariants implicites suivants.

• self est créé et non-nul,• les arguments de l’opération sont créés et non-nuls.

Page 33: MGL7160 Méthodes formelles et semi-formelles - Méthodologie

Le rôle des invariants en KeY

• Conformément à cette vision des choses, le système KeYajoute les invariants aux préconditions lors de lavérification d’un contrat.

• Le choix des invariants est configurable au moment duchoix du contrat (onglet “Assumed Invariants”).

• Comme on l’a déjà vu, KeY ajoute déjà aux contrats lesinvariants implicites suivants.

• self est créé et non-nul,• les arguments de l’opération sont créés et non-nuls.

Page 34: MGL7160 Méthodes formelles et semi-formelles - Méthodologie

Le rôle des invariants en KeY

• Conformément à cette vision des choses, le système KeYajoute les invariants aux préconditions lors de lavérification d’un contrat.

• Le choix des invariants est configurable au moment duchoix du contrat (onglet “Assumed Invariants”).

• Comme on l’a déjà vu, KeY ajoute déjà aux contrats lesinvariants implicites suivants.

• self est créé et non-nul,• les arguments de l’opération sont créés et non-nuls.

Page 35: MGL7160 Méthodes formelles et semi-formelles - Méthodologie

Le rôle des invariants en KeY

• Conformément à cette vision des choses, le système KeYajoute les invariants aux préconditions lors de lavérification d’un contrat.

• Le choix des invariants est configurable au moment duchoix du contrat (onglet “Assumed Invariants”).

• Comme on l’a déjà vu, KeY ajoute déjà aux contrats lesinvariants implicites suivants.

• self est créé et non-nul,• les arguments de l’opération sont créés et non-nuls.

Page 36: MGL7160 Méthodes formelles et semi-formelles - Méthodologie

Le rôle des invariants en KeY

• Conformément à cette vision des choses, le système KeYajoute les invariants aux préconditions lors de lavérification d’un contrat.

• Le choix des invariants est configurable au moment duchoix du contrat (onglet “Assumed Invariants”).

• Comme on l’a déjà vu, KeY ajoute déjà aux contrats lesinvariants implicites suivants.

• self est créé et non-nul,• les arguments de l’opération sont créés et non-nuls.

Page 37: MGL7160 Méthodes formelles et semi-formelles - Méthodologie

Le rôle des invariants en KeY

• Conformément à cette vision des choses, le système KeYajoute les invariants aux préconditions lors de lavérification d’un contrat.

• Le choix des invariants est configurable au moment duchoix du contrat (onglet “Assumed Invariants”).

• Comme on l’a déjà vu, KeY ajoute déjà aux contrats lesinvariants implicites suivants.

• self est créé et non-nul,• les arguments de l’opération sont créés et non-nuls.

Page 38: MGL7160 Méthodes formelles et semi-formelles - Méthodologie

Plan

1 Vérification de logiciels

2 ATP

3 Méthodologie de vérification

Page 39: MGL7160 Méthodes formelles et semi-formelles - Méthodologie

Invariants

• Il est donc recommandé de mettre au clair, sous formed’invariants, toute restriction importante pour comprendrele sens ou pour réaliser le système.

• Au niveau de la vérification formelle, ceci aura comme effetde centraliser ces contraintes et donc de simplifier lespréconditions des contrats.

Page 40: MGL7160 Méthodes formelles et semi-formelles - Méthodologie

Invariants

• Il est donc recommandé de mettre au clair, sous formed’invariants, toute restriction importante pour comprendrele sens ou pour réaliser le système.

• Au niveau de la vérification formelle, ceci aura comme effetde centraliser ces contraintes et donc de simplifier lespréconditions des contrats.

Page 41: MGL7160 Méthodes formelles et semi-formelles - Méthodologie

Invariants

• Il est donc recommandé de mettre au clair, sous formed’invariants, toute restriction importante pour comprendrele sens ou pour réaliser le système.

• Au niveau de la vérification formelle, ceci aura comme effetde centraliser ces contraintes et donc de simplifier lespréconditions des contrats.

Page 42: MGL7160 Méthodes formelles et semi-formelles - Méthodologie

Exemple d’invariants

public class Camion {.../*@ public instance invariant

prochaineLivraison < noLivraisonsMax;

public instance invariantprochaineLivraison >= 0;

public instance invariantlivraisons.length == noLivraisonsMax;

@*/}

Page 43: MGL7160 Méthodes formelles et semi-formelles - Méthodologie

Vérification des invariants

• Il est aussi nécessaire de s’assure que les invariants sontsatisfaits.

• Ceci est particulièrement vrai lorsque les invariants serventà justifier les contrats des opérations :

• Un invariant qui est faux pourrait même justifier n’importequel contrat !

Page 44: MGL7160 Méthodes formelles et semi-formelles - Méthodologie

Vérification des invariants

• Il est aussi nécessaire de s’assure que les invariants sontsatisfaits.

• Ceci est particulièrement vrai lorsque les invariants serventà justifier les contrats des opérations :

• Un invariant qui est faux pourrait même justifier n’importequel contrat !

Page 45: MGL7160 Méthodes formelles et semi-formelles - Méthodologie

Vérification des invariants

• Il est aussi nécessaire de s’assure que les invariants sontsatisfaits.

• Ceci est particulièrement vrai lorsque les invariants serventà justifier les contrats des opérations :

• Un invariant qui est faux pourrait même justifier n’importequel contrat !

Page 46: MGL7160 Méthodes formelles et semi-formelles - Méthodologie

Vérification des invariants

• Il est aussi nécessaire de s’assure que les invariants sontsatisfaits.

• Ceci est particulièrement vrai lorsque les invariants serventà justifier les contrats des opérations :

• Un invariant qui est faux pourrait même justifier n’importequel contrat !

Page 47: MGL7160 Méthodes formelles et semi-formelles - Méthodologie

KeY

• Key permet de vérifier qu’un invariant est satisfait aprèsl’appel d’une opération.

• En fait, “PreservesInv” génère un nouveau contrat enconservant la précondition du contrat actuel et en prenantl’invariant comme postcondition.

Page 48: MGL7160 Méthodes formelles et semi-formelles - Méthodologie

KeY

• Key permet de vérifier qu’un invariant est satisfait aprèsl’appel d’une opération.

• En fait, “PreservesInv” génère un nouveau contrat enconservant la précondition du contrat actuel et en prenantl’invariant comme postcondition.

Page 49: MGL7160 Méthodes formelles et semi-formelles - Méthodologie

KeY

• Key permet de vérifier qu’un invariant est satisfait aprèsl’appel d’une opération.

• En fait, “PreservesInv” génère un nouveau contrat enconservant la précondition du contrat actuel et en prenantl’invariant comme postcondition.

Page 50: MGL7160 Méthodes formelles et semi-formelles - Méthodologie

Méthodologie

• Concrètement, notre méthode d’analyse des programmesconsistera à

• rédiger des invariants qui décrivent les propriétés naturellesdes instances,

• rédiger des contrats qui décrivent le comportement desopérations.

• Faire vérifier par KeY que• les invariants sont préservés par les opérations,• les contrats sont satisfaits par les méthodes.• À chaque fois, il sera nécessaire de choisir les invariants

pertinents comme préconditions.

Page 51: MGL7160 Méthodes formelles et semi-formelles - Méthodologie

Méthodologie

• Concrètement, notre méthode d’analyse des programmesconsistera à

• rédiger des invariants qui décrivent les propriétés naturellesdes instances,

• rédiger des contrats qui décrivent le comportement desopérations.

• Faire vérifier par KeY que• les invariants sont préservés par les opérations,• les contrats sont satisfaits par les méthodes.• À chaque fois, il sera nécessaire de choisir les invariants

pertinents comme préconditions.

Page 52: MGL7160 Méthodes formelles et semi-formelles - Méthodologie

Méthodologie

• Concrètement, notre méthode d’analyse des programmesconsistera à

• rédiger des invariants qui décrivent les propriétés naturellesdes instances,

• rédiger des contrats qui décrivent le comportement desopérations.

• Faire vérifier par KeY que• les invariants sont préservés par les opérations,• les contrats sont satisfaits par les méthodes.• À chaque fois, il sera nécessaire de choisir les invariants

pertinents comme préconditions.

Page 53: MGL7160 Méthodes formelles et semi-formelles - Méthodologie

Méthodologie

• Concrètement, notre méthode d’analyse des programmesconsistera à

• rédiger des invariants qui décrivent les propriétés naturellesdes instances,

• rédiger des contrats qui décrivent le comportement desopérations.

• Faire vérifier par KeY que• les invariants sont préservés par les opérations,• les contrats sont satisfaits par les méthodes.• À chaque fois, il sera nécessaire de choisir les invariants

pertinents comme préconditions.

Page 54: MGL7160 Méthodes formelles et semi-formelles - Méthodologie

Méthodologie

• Concrètement, notre méthode d’analyse des programmesconsistera à

• rédiger des invariants qui décrivent les propriétés naturellesdes instances,

• rédiger des contrats qui décrivent le comportement desopérations.

• Faire vérifier par KeY que• les invariants sont préservés par les opérations,• les contrats sont satisfaits par les méthodes.• À chaque fois, il sera nécessaire de choisir les invariants

pertinents comme préconditions.

Page 55: MGL7160 Méthodes formelles et semi-formelles - Méthodologie

Méthodologie

• Concrètement, notre méthode d’analyse des programmesconsistera à

• rédiger des invariants qui décrivent les propriétés naturellesdes instances,

• rédiger des contrats qui décrivent le comportement desopérations.

• Faire vérifier par KeY que• les invariants sont préservés par les opérations,• les contrats sont satisfaits par les méthodes.• À chaque fois, il sera nécessaire de choisir les invariants

pertinents comme préconditions.

Page 56: MGL7160 Méthodes formelles et semi-formelles - Méthodologie

Méthodologie

• Concrètement, notre méthode d’analyse des programmesconsistera à

• rédiger des invariants qui décrivent les propriétés naturellesdes instances,

• rédiger des contrats qui décrivent le comportement desopérations.

• Faire vérifier par KeY que• les invariants sont préservés par les opérations,• les contrats sont satisfaits par les méthodes.• À chaque fois, il sera nécessaire de choisir les invariants

pertinents comme préconditions.

Page 57: MGL7160 Méthodes formelles et semi-formelles - Méthodologie

Méthodologie

• Concrètement, notre méthode d’analyse des programmesconsistera à

• rédiger des invariants qui décrivent les propriétés naturellesdes instances,

• rédiger des contrats qui décrivent le comportement desopérations.

• Faire vérifier par KeY que• les invariants sont préservés par les opérations,• les contrats sont satisfaits par les méthodes.• À chaque fois, il sera nécessaire de choisir les invariants

pertinents comme préconditions.

Page 58: MGL7160 Méthodes formelles et semi-formelles - Méthodologie

Aspects techniques (avant la preuve)

• KeY génère des obligations en Java-DL, la logiquedynamique de l’outil.

• Il est nécessaire de bien observer la formule produite,puisqu’il peut y avoir des nuances qui auront un impactimportant sur la vérification.

• Il est important de bien comprendre le contenu de laformule en terme d’information. Par exemple :

• quelles sont les hypothèses sur les références (attributs dureceveur, arguments).

Page 59: MGL7160 Méthodes formelles et semi-formelles - Méthodologie

Aspects techniques (avant la preuve)

• KeY génère des obligations en Java-DL, la logiquedynamique de l’outil.

• Il est nécessaire de bien observer la formule produite,puisqu’il peut y avoir des nuances qui auront un impactimportant sur la vérification.

• Il est important de bien comprendre le contenu de laformule en terme d’information. Par exemple :

• quelles sont les hypothèses sur les références (attributs dureceveur, arguments).

Page 60: MGL7160 Méthodes formelles et semi-formelles - Méthodologie

Aspects techniques (avant la preuve)

• KeY génère des obligations en Java-DL, la logiquedynamique de l’outil.

• Il est nécessaire de bien observer la formule produite,puisqu’il peut y avoir des nuances qui auront un impactimportant sur la vérification.

• Il est important de bien comprendre le contenu de laformule en terme d’information. Par exemple :

• quelles sont les hypothèses sur les références (attributs dureceveur, arguments).

Page 61: MGL7160 Méthodes formelles et semi-formelles - Méthodologie

Aspects techniques (avant la preuve)

• KeY génère des obligations en Java-DL, la logiquedynamique de l’outil.

• Il est nécessaire de bien observer la formule produite,puisqu’il peut y avoir des nuances qui auront un impactimportant sur la vérification.

• Il est important de bien comprendre le contenu de laformule en terme d’information. Par exemple :

• quelles sont les hypothèses sur les références (attributs dureceveur, arguments).

Page 62: MGL7160 Méthodes formelles et semi-formelles - Méthodologie

Aspects techniques (avant la preuve)

• KeY génère des obligations en Java-DL, la logiquedynamique de l’outil.

• Il est nécessaire de bien observer la formule produite,puisqu’il peut y avoir des nuances qui auront un impactimportant sur la vérification.

• Il est important de bien comprendre le contenu de laformule en terme d’information. Par exemple :

• quelles sont les hypothèses sur les références (attributs dureceveur, arguments).

Page 63: MGL7160 Méthodes formelles et semi-formelles - Méthodologie

Aspects techniques (après la preuve)

• Lorsque la vérification échoue, il est aussi importantd’interpréter les feuilles (séquents) ouvertes. Par exemple :

• N’y a-t-il pas des hypothèses trop générales (a>=b plutôtque a=b) ?

• N’y a-t-il pas des contraintes manquantes (pas decontrainte sur a,b) ?

• Y a-t-il un lien entre les hypothèses et les conclusions duséquent ?

• Est-ce que le séquent est vide, ou clairementnon-démontrable ?

Page 64: MGL7160 Méthodes formelles et semi-formelles - Méthodologie

Aspects techniques (après la preuve)

• Lorsque la vérification échoue, il est aussi importantd’interpréter les feuilles (séquents) ouvertes. Par exemple :

• N’y a-t-il pas des hypothèses trop générales (a>=b plutôtque a=b) ?

• N’y a-t-il pas des contraintes manquantes (pas decontrainte sur a,b) ?

• Y a-t-il un lien entre les hypothèses et les conclusions duséquent ?

• Est-ce que le séquent est vide, ou clairementnon-démontrable ?

Page 65: MGL7160 Méthodes formelles et semi-formelles - Méthodologie

Aspects techniques (après la preuve)

• Lorsque la vérification échoue, il est aussi importantd’interpréter les feuilles (séquents) ouvertes. Par exemple :

• N’y a-t-il pas des hypothèses trop générales (a>=b plutôtque a=b) ?

• N’y a-t-il pas des contraintes manquantes (pas decontrainte sur a,b) ?

• Y a-t-il un lien entre les hypothèses et les conclusions duséquent ?

• Est-ce que le séquent est vide, ou clairementnon-démontrable ?

Page 66: MGL7160 Méthodes formelles et semi-formelles - Méthodologie

Aspects techniques (après la preuve)

• Lorsque la vérification échoue, il est aussi importantd’interpréter les feuilles (séquents) ouvertes. Par exemple :

• N’y a-t-il pas des hypothèses trop générales (a>=b plutôtque a=b) ?

• N’y a-t-il pas des contraintes manquantes (pas decontrainte sur a,b) ?

• Y a-t-il un lien entre les hypothèses et les conclusions duséquent ?

• Est-ce que le séquent est vide, ou clairementnon-démontrable ?

Page 67: MGL7160 Méthodes formelles et semi-formelles - Méthodologie

Aspects techniques (après la preuve)

• Lorsque la vérification échoue, il est aussi importantd’interpréter les feuilles (séquents) ouvertes. Par exemple :

• N’y a-t-il pas des hypothèses trop générales (a>=b plutôtque a=b) ?

• N’y a-t-il pas des contraintes manquantes (pas decontrainte sur a,b) ?

• Y a-t-il un lien entre les hypothèses et les conclusions duséquent ?

• Est-ce que le séquent est vide, ou clairementnon-démontrable ?

Page 68: MGL7160 Méthodes formelles et semi-formelles - Méthodologie

Aspects techniques (après la preuve)

• Lorsque la vérification échoue, il est aussi importantd’interpréter les feuilles (séquents) ouvertes. Par exemple :

• N’y a-t-il pas des hypothèses trop générales (a>=b plutôtque a=b) ?

• N’y a-t-il pas des contraintes manquantes (pas decontrainte sur a,b) ?

• Y a-t-il un lien entre les hypothèses et les conclusions duséquent ?

• Est-ce que le séquent est vide, ou clairementnon-démontrable ?