Match sur une partie du but
Sgoal(p | r )
avec :
Cette commande permet de rechercher un pattern dans le but, et est remplacée par le pattern de remplacement donné en paramètre. Si le pattern est trouvé, les jokers le composant sont instanciés, et Sgoal est remplacé par le pattern de remplacement.
Si le pattern n’est pas trouvé, la commande échoue.
Cette commande est principalement utilisée pour généraliser une suite de commande de preuve a plusieurs obligations de preuve
Soit le but suivant :
Hypothesis
var1 = var2 Goal var1 : fonction[ens1]
|
Dans ce cas, la commande sh(Sgoal( a : b | a)) va être replacée par sh(var1) de la manière suivante :
De la même manière, la commande eh(Sgoal( a : b | a)) va être remplacée par eh(var1), permettant de réécrire le but sous la forme suivante :
Hypothesis
var1 = var2 Goal var2 : fonction[ens1]
|