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