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