L'obstacle fondamental dans votre approche pour augmenter toutes les valeurs est que l'utilisation de la commande relationnelle dans la promotion (dernière ligne) précise que toutes les valeurs de data'
carte à la même valeur que dans data
sauf à la position index?
.
Une approche est explicitement « itérer » sur la relation pour tous les éléments:
--- ArrayIncrement ---
| ΔArray
---
| dom data = dom data'
| ∀ i:dom data; ΔData ·
| θData = data i ∧ θData' = data' i ∧ Increment
------
Dans la première ligne du corps, nous affirmons que le domaine reste le même, sans qu'il y aurait une infinité de solutions avec éléments supplémentaires.
Dans la ligne suivante, nous configurons les variables pour représenter l'état avant et après à l'index spécifique de façon analogue à la deuxième ligne dans Promote
de votre solution.