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