| referenced-adrs(ax2, ri) = ax5 + ax1, adr0 ∈ ri, referenced-adrs(ax2, ri) = ax5 + ax1 → (∃ ax4, ax3. ax2 = ax4 + ax3 ∧ referenced-adrs(ax4, ri) = ax5 ∧ referenced-adrs(ax3, ri) = ax1) ⊦ ∃ ax, ax0. adr0 ' + ax2 = ax + ax0 ∧ referenced-adrs(ax, ri) = adr0 ' + ax5 ∧ referenced-adrs(ax0, ri) = ax1 |
adr0 ∈ ri ⊦ ∃ ax1, ax3. adr0 ' + ax + ax0 = ax1 + ax3 ∧ referenced-adrs(ax1, ri) = adr0 ' + referenced-adrs(ax, ri) ∧ referenced-adrs(ax3, ri) = referenced-adrs(ax0, ri)
Used simplifier rules: referenced-adrs-app: ⊦ referenced-adrs(ax0 + ax1, ri) = referenced-adrs(ax0, ri) + referenced-adrs(ax1, ri);% ⊦ ax + ax0 = ax + ax1 ↔ ax0 = ax1; (s)%a: ⊦ (ax + ax0) + ax1 = ax + ax0 + ax1; from specification list[address-list-set]