| adr0 ∈ fs0 ∧ (adr0 = adr ∨ adr0 ∈ ax) ↔ adr0 ∈ fs1 | (ax.toSet ++ adr), (fs0 | (ax.toSet ++ adr))[adr0] = (fs1 | (ax.toSet ++ adr))[adr0] ⊦ fs0[adr].key = fs1[adr].key ∧ keys(fs0, ax) = keys(fs1, ax), (adr0 ∈ fs0 | ax.toSet ↔ adr0 ∈ fs1 | ax.toSet) ∧ (fs0 | ax.toSet)[adr0] = (fs1 | ax.toSet)[adr0] |
⊦ adr ∈ fs | as ↔ adr ∈ fs ∧ adr ∈ as
adr0 ∈ fs0 ∧ (adr0 = adr ∨ adr0 ∈ ax) ↔ adr0 ∈ fs1 ∧ adr0 ∈ ax.toSet ++ adr, (fs0 | (ax.toSet ++ adr))[adr0] = (fs1 | (ax.toSet ++ adr))[adr0] ⊦ (adr0 ∈ fs0 | ax.toSet ↔ adr0 ∈ fs1 | ax.toSet) ∧ (fs0 | ax.toSet)[adr0] = (fs1 | ax.toSet)[adr0], fs0[adr].key = fs1[adr].key ∧ keys(fs0, ax) = keys(fs1, ax)
Used terms: ax.toSet ++ adr, fs1, adr0