| key1 < key0 ⊦ (key ∈ ri[key0, adr] ∧ key1 < key ↔ key ∈ (ri |> key1)[key0, adr]) ∧ (key ∈ ri[key0, adr] ∧ key1 < key → ri[key0, adr][key] = (ri |> key1)[key0, adr][key]) |
⊦ key ≠ key0 → ri[key0, adr][key] = ri[key]
Used simplifier rules: in-gt: ⊦ key0 ∈ ri |> key1 ↔ key0 ∈ ri ∧ key1 < key0;%at-gt: ⊦ key1 < key0 ∧ key0 ∈ ri → (ri |> key1)[key0] = ri[key0];% ⊦ key ≠ key0 → (key ∈ ri[key0, adr] ↔ key ∈ ri); (s)% ⊦ key ≠ key0 → ri[key0, adr][key] = ri[key]; (s)% ⊦ key ∈ ri[key, adr]; (s)% ⊦ ri[key, adr][key] = adr; (s) Used terms: key, adr, key0, ri |> key1