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