| referenced-adrs(ax, ri) = adr ' ⊦ ∃ ax0, ax1. ax = ax0 + referenced-adrs(ax, ri) + ax1 ∧ referenced-adrs(ax0, ri) = [] ∧ referenced-adrs(ax1, ri) = [] ∧ adr ∈ ri |
referenced-adrs(adr0 + 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) ⊦ ∃ ax2, ax1. adr0 + ax0 = ax2 + referenced-adrs(adr0 + ax0, ri) + ax1 ∧ referenced-adrs(ax2, ri) = [] ∧ referenced-adrs(ax1, ri) = [] ∧ adr ∈ ri
Used simplifier rules: referenced-adrs-base: ⊦ referenced-adrs([], ri) = [];%address-list freely generated by [], +;;% ⊦ adr ' ≠ []; (s)