| payload(zbrar, m + 1, n0 + n1) = payload(zbrar, m + 1, n1) ⊕ payload(zbrar, (m + 1) + n1, n0), zbrar[m].entry?, m < # zbrar, m + n0 + n1 < # zbrar ⊦ # zbrar = 0, payload(zbrar, m + 1, n1 + n0)[zbrar[m].key, zbrar[m].adr] = payload(zbrar, m + 1, n1)[zbrar[m].key, zbrar[m].adr] ⊕ payload(zbrar, m + n1 + 1, n0) |
zbrar[m] = mkzentry(key, adr), payload(zbrar, m + 1, n0 + n1) = payload(zbrar, m + 1, n1) ⊕ payload(zbrar, (m + 1) + n1, n0), zbrar[m].entry?, m + n0 + n1 < # zbrar, m < # zbrar ⊦ # zbrar = 0, payload(zbrar, m + 1, n1 + n0)[key, adr] = payload(zbrar, m + 1, n1)[key, adr] ⊕ payload(zbrar, m + n1 + 1, n0)
Used simplifier rules: ⊦ zbr.entry? → (key = zbr.key ∧ adr = zbr.adr ↔ zbr = mkzentry(key, adr)); (elim) Used terms: zbrar[m], key, adr